Klíče AWS můžete bezpečně uložit do přihlašovacích údajů Jenkins. Pokud chcete interagovat s AWS ze svého serveru Jenkins, můžete své uživatelské klíče AWS IAM bezpečně uložit v Jenkins, nikoli otevřeně používat klíče ve vašem Jenkins Pipeline. Plugin Jenkins „CloudBees AWS Credentials“ umožňuje ukládat přihlašovací údaje AWS IAM v rámci rozhraní Jenkins Credentials API. Tyto přihlašovací údaje pak můžeme použít v našem kanálu a vložit je do kanálu pomocí kroku „withAWS“. Chcete-li použít krok „withAWS“, musíme nainstalovat plugin „AWS Steps Plugin“.
V tomto článku nainstalujeme plugin „CloudBees AWS Credentials“ a pomocí tohoto pluginu uložíme tajný klíč a přístupový klíč uživatele AWS IAM v Jenkins. Nainstalujeme „AWS Steps Plugin“, abychom mohli použít „awsStep“ k vložení pověření, které jsme vytvořili. Provedeme operace S3 Upload Object a Download Object z kanálu, abychom otestovali pověření, které jsme vytvořili.
Předpoklady
- Uživatel AWS IAM s přístupovým klíčem a tajným klíčem s přístupem pro čtení a zápis do S3 Buckets (Kliknutím sem se dozvíte, jak vytvořit uživatele IAM na AWS).
- Bucket S3 (Kliknutím sem se dozvíte, jak vytvořit Bucket S3 na AWS).
- Jenkins Server (Chcete-li se naučit vytvořit Jenkins Server, vyhledejte „Jak nainstalovat Jenkins pomocí válečného souboru na instanci AWS EC2 Ubuntu?“)
Co budeme dělat?
- Nainstalujte plugin Cloudbees AWS Credentials.
- Uložte přístupové a tajné klíče AWS v Jenkins Credentials.
- Nainstalujte si plugin AWS Steps.
- Vytvořte kanál a otestujte pověření, které jsme vytvořili.
Instalovat plugin Cloudbees AWS Credentials
Přihlaste se do Jenkins na http://
Tady mám http://52.87.233.129:8080/jenkins/
Ovládací panel uvidíte následovně. Klikněte na "Manage Jenkins" v levém panelu.
Zde pod "Konfigurace systému" klikněte na "Spravovat pluginy" a nainstalujte požadovaný plugin.
Uvidíte 4 karty, Aktualizace, Dostupné, Nainstalované a Pokročilé. Klepnutím na kartu „Dostupné“ vyhledejte plugin.
Vyhledejte „cloudbees secret manager“ ve vyhledávacím poli na kartě „Available“. Zaškrtněte políčko u výsledku pluginu „Cloudbees AWS Credentials“, který získáte, a kliknutím na „Instalovat bez restartu“ nainstalujte plugin bez restartování Jenkinse.
Jakmile je plugin nainstalován, zobrazí se následující zpráva „Úspěch“.
Ukládání přístupových a tajných klíčů AWS v Jenkins Credentials
Nyní jsme připraveni uložit přihlašovací údaje AWS.
Vraťte se na hlavní panel a klikněte na „Spravovat Jenkinse“.
Nyní klikněte na "Spravovat přihlašovací údaje" v části "Zabezpečení" a uložte tajný klíč AWS a přístupový klíč.
Klikněte na „globální“ v části „Obchody v rozsahu Jenkins“ --> „Přidat přihlašovací údaje“.
Na této stránce budete moci ukládat tajemství. Klikněte na rozevírací seznam Druh a vyberte AWS. Zadejte název tajných klíčů, popis, ID přístupového klíče a tajný přístupový klíč. Klepnutím na OK uložte tajemství.
Můžete vidět, že Tajemství je nyní k dispozici.
Instalovat plugin AWS Steps
Dalším krokem je instalace pluginu „Pipeline AWS Steps“. Vraťte se na hlavní panel a klikněte na Spravovat Jenkins --> Spravovat pluginy.
Na kartě „Dostupné“ vyhledejte „Kroky AWS“. Vyberte plugin „Pipeline:AWS Steps“ a klikněte na „Instalovat bez restartu“. Tím se plugin nainstaluje bez restartování Jenkinse.
Jakmile je plugin úspěšně nainstalován, zobrazí se následující zpráva Success.
Vytvořte kanál a otestujte pověření, které jsme vytvořili.
Nyní vytvoříme novou úlohu. V tomto úkolu se pokusíme použít tajemství, které jsme vytvořili.
Vraťte se na hlavní panel a klikněte na „Nové položky“.
Zadejte název úlohy a jako typ úlohy vyberte „Pipeline“. Klikněte na „Ok“, tím se vytvoří úloha typu Pipeline.
Klikněte na „Build Triggers“, přejděte dolů na „Pipeline“, vyberte „Pipeline script“ a do textového pole přidejte následující kód.
Toto je potrubí s 1 fází „testovacích pověření AWS“. V tomto kroku použijeme „withAWS“ a zde uvedeme naše tajné jméno. Uvnitř vytvoříme ukázkový soubor „hello.txt“ se zprávou „ahoj Jenkinsi“. Tento soubor bude poté nahrán do kbelíku „devopslee“ S3 na mém účtu.
Místo devopslee je třeba zadat název vašeho segmentu.
Abychom zjistili, zda je soubor nahrán, pokusíme se jej stáhnout jako „downloadedHello.txt“ a vytisknout pomocí příkazu „cat“.
Pokud byly všechny tyto kroky úspěšné, znamená to, že jsme dokázali úspěšně použít náš tajný klíč a přístupový klíč pomocí pověření, které jsme vytvořili.
pipeline { agent any stages { stage('test AWS credentials') { steps { withAWS(credentials: 'jenkins-test-user', region: 'us-east-1') { sh 'echo "hello Jenkins">hello.txt' s3Upload acl: 'Private', bucket: 'devopslee', file: 'hello.txt' s3Download bucket: 'devopslee', file: 'downloadedHello.txt', path: 'hello.txt' sh 'cat downloadedHello.txt' } } } } }
Chcete-li nyní otestovat výše uvedené potrubí, přejděte do potrubí a klikněte na „Vytvořit nyní“. Tím potrubí spustíte.
Klikněte na položku Historie sestavení --> Výstup konzoly.
Zde ve výstupu konzole můžete vidět, že soubor byl úspěšně vytvořen, nahrán, stažen a přečten.
To znamená, že jsme byli schopni úspěšně ověřit bucket S3 pomocí přístupového klíče a tajného klíče, které jsme uložili do přihlašovacích údajů.
Závěr
V tomto článku jsme do Jenkins nainstalovali pluginy Cloudbees AWS Credentials a AWS Steps Plugin. Uložili jsme tajné a přístupové klíče uživatele AWS IAM v Jenkins pomocí Jenkins Credentials. Také jsme vytvořili Jenkins Pipeline, kde jsme testovali pověření, které jsme vytvořili nahráním a stažením objektu do bucketu S3.