AWSキーをJenkinsクレデンシャルに安全に保存できます。 JenkinsサーバーからAWSとやり取りする場合は、Jenkinsパイプラインのキーを公然と使用するのではなく、AWSIAMユーザーキーをJenkinsに安全に保存できます。 「CloudBeesAWSクレデンシャル」Jenkinsプラグインを使用すると、AWSIAMユーザークレデンシャルをJenkinsクレデンシャルAPI内に保存できます。次に、これらのクレデンシャルをパイプラインで使用し、「withAWS」ステップを使用してパイプラインに挿入できます。 「withAWS」ステップを使用するには、「AWSステッププラグイン」プラグインをインストールする必要があります。
この記事では、「CloudBees AWS Credentials」プラグインをインストールし、このプラグインを使用してAWSIAMユーザーのシークレットキーとアクセスキーをJenkinsに保存します。 「AWSStepsPlugin」をインストールして、「awsStep」を使用して作成したクレデンシャルを挿入できるようにします。パイプライン内からS3オブジェクトのアップロードとオブジェクトのダウンロード操作を実行して、作成したクレデンシャルをテストします。
- S3バケットへの読み取り/書き込みアクセス権を持つアクセスキーとシークレットキーを持つAWSIAMユーザー(AWSでIAMユーザーを作成する方法については、ここをクリックしてください)。
- S3バケット(AWSでS3バケットを作成する方法については、ここをクリックしてください)。
- Jenkinsサーバー(Jenkinsサーバーの作成方法については、「AWS EC2 Ubuntuインスタンスにwarファイルを使用してJenkinsをインストールする方法」を検索してください)
何をしますか?
- CloudbeesAWSクレデンシャルプラグインをインストールします。
- AWSアクセスキーとシークレットキーをJenkinsクレデンシャルに保存します。
- AWSステッププラグインをインストールします。
- パイプラインを作成し、作成した資格情報をテストします。
CloudbeesAWSクレデンシャルプラグインをインストールします
http://
ここに、http://52.87.233.129:8080 / jenkins /
があります。ダッシュボードは次のように表示されます。左側のパネルで[Jenkinsの管理]をクリックします。
ここで、[システム構成]の下の[プラグインの管理]をクリックして、必要なプラグインをインストールします。
[更新]、[利用可能]、[インストール済み]、[詳細]の4つのタブが表示されます。 [利用可能]タブをクリックして、プラグインを検索します。
[利用可能]タブの下の検索ボックスで「cloudbeesシークレットマネージャー」を検索します。取得したプラグインの結果「CloudbeesAWSクレデンシャル」のチェックボックスをオンにし、「再起動せずにインストール」をクリックして、Jenkinsを再起動せずにプラグインをインストールします。
プラグインをインストールすると、次のような「成功」メッセージが表示されます。
AWSアクセスキーとシークレットキーをJenkinsクレデンシャルに保存する
これで、AWSクレデンシャルを保存する準備が整いました。
メインダッシュボードに戻り、[Jenkinsの管理]をクリックします。
次に、[セキュリティ]の下の[認証情報の管理]をクリックして、AWSシークレットキーとアクセスキーを保存します。
[Jenkinsを対象とするストア]->[資格情報の追加]の下にある[グローバル]をクリックします。
このページでは、秘密を保存することができます。 [種類]ドロップダウンをクリックして、[AWS]を選択します。シークレットの名前、説明、アクセスキーID、およびシークレットアクセスキーを指定します。 [OK]をクリックしてシークレットを保存します。
シークレットが利用可能になったことを確認できます。
AWSステッププラグインをインストール
次のステップは、「PipelineAWSSteps」プラグインをインストールすることです。メインダッシュボードに戻り、[Jenkinsの管理]->[プラグインの管理]をクリックします。
[Available]タブで、[AWSSteps]を検索します。プラグイン「パイプライン:AWSステップ」を選択し、「再起動せずにインストール」をクリックします。これにより、Jenkinsを再起動せずにプラグインがインストールされます。
プラグインが正常にインストールされると、次のような成功メッセージが表示されます。
パイプラインを作成し、作成した資格情報をテストします。
それでは、新しいジョブを作成しましょう。このジョブでは、作成したシークレットを使用しようとします。
メインダッシュボードに戻り、[新しいアイテム]をクリックします。
ジョブに名前を付け、ジョブのタイプとして「パイプライン」を選択します。「OK」をクリックすると、パイプラインタイプのジョブが作成されます。
[ビルドトリガー]をクリックし、[パイプライン]まで下にスクロールして、[パイプラインスクリプト]を選択し、テキストボックスに次のコードを追加します。
これは、1段階の「AWSクレデンシャルのテスト」を備えたパイプラインです。このステップでは、「withAWS」を使用して、ここでシークレット名を指定します。その中に、「helloJenkins」メッセージを含むサンプルファイル「hello.txt」を作成します。このファイルは、私のアカウントの「devopslee」S3バケットにアップロードされます。
devopsleeではなくバケット名を指定する必要があります。
ファイルがアップロードされているかどうかを確認するために、「downloadedHello.txt」としてダウンロードし、「cat」コマンドを使用して印刷しようとします。
これらの手順がすべて成功した場合は、作成したクレデンシャルを使用してシークレットキーとアクセスキーを正常に使用できたことを意味します。
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' } } } } }
次に、上記のパイプラインをテストするには、パイプラインに移動して[今すぐビルド]をクリックします。これにより、パイプラインが実行されます。
[ビルド履歴]->[コンソール出力]をクリックします。
ここで、コンソール出力で、ファイルが正常に作成、アップロード、ダウンロード、および読み取られたことを確認できます。
これは、クレデンシャルに保存したアクセスキーとシークレットを使用してS3バケットを正常に認証できたことを意味します。
この記事では、CloudbeesAWSクレデンシャルとAWSStepsプラグインプラグインをJenkinsにインストールしました。 AWS IAMユーザーのシークレットキーとアクセスキーを、Jenkinsクレデンシャルを使用してJenkinsに保存しました。また、Jenkinsパイプラインを作成し、オブジェクトをS3バケットにアップロードおよびダウンロードして作成したクレデンシャルをテストしました。