GNU/Linux >> Linux の 問題 >  >> Linux

AWSユーザーアクセスキーとシークレットキーをJenkinsに保存する方法

AWSキーをJenkinsクレデンシャルに安全に保存できます。 JenkinsサーバーからAWSとやり取りする場合は、Jenkinsパイプラインのキーを公然と使用するのではなく、AWSIAMユーザーキーをJenkinsに安全に保存できます。 「CloudBeesAWSクレデンシャル」Jenkinsプラグインを使用すると、AWSIAMユーザークレデンシャルをJenkinsクレデンシャルAPI内に保存できます。次に、これらのクレデンシャルをパイプラインで使用し、「withAWS」ステップを使用してパイプラインに挿入できます。 「withAWS」ステップを使用するには、「AWSステッププラグイン」プラグインをインストールする必要があります。

この記事では、「CloudBees AWS Credentials」プラグインをインストールし、このプラグインを使用してAWSIAMユーザーのシークレットキーとアクセスキーをJenkinsに保存します。 「AWSStepsPlugin」をインストールして、「awsStep」を使用して作成したクレデンシャルを挿入できるようにします。パイプライン内からS3オブジェクトのアップロードとオブジェクトのダウンロード操作を実行して、作成したクレデンシャルをテストします。

前提条件
  1. S3バケットへの読み取り/書き込みアクセス権を持つアクセスキーとシークレットキーを持つAWSIAMユーザー(AWSでIAMユーザーを作成する方法については、ここをクリックしてください)。
  2. S3バケット(AWSでS3バケットを作成する方法については、ここをクリックしてください)。
  3. Jenkinsサーバー(Jenkinsサーバーの作成方法については、「AWS EC2 Ubuntuインスタンスにwarファイルを使用してJenkinsをインストールする方法」を検索してください)

何をしますか?

  1. CloudbeesAWSクレデンシャルプラグインをインストールします。
  2. AWSアクセスキーとシークレットキーをJenkinsクレデンシャルに保存します。
  3. AWSステッププラグインをインストールします。
  4. パイプラインを作成し、作成した資格情報をテストします。

CloudbeesAWSクレデンシャルプラグインをインストールします

http:// :8080 / jenkins

でJenkinsにログインします

ここに、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バケットにアップロードおよびダウンロードして作成したクレデンシャルをテストしました。


Linux
  1. Linuxでユーザーパスワードの有効期限とエージングを管理する方法

  2. 新しいMySQLユーザーを追加してアクセス権限を付与する方法

  3. Gpgの秘密鍵のパスフレーズを正しく変更するにはどうすればよいですか?

  1. Windows10およびWSL2でLinuxファイルシステムにアクセスする方法

  2. Linuxでユーザーグループを作成および削除する方法

  3. JenkinsをCloudFormationおよびStepFunctionsと統合する方法

  1. Kubernetesシークレット–シークレットを作成、使用、アクセスする方法

  2. Sshアクセスで新しいユーザーを作成する方法は?

  3. Linuxでユーザーをロックおよびロック解除する方法