JenkinsでAWS Parameter Storeを使う


AWS Parameter Store


AWSシステムマネージャのParameter Store機能は、構成データとパスワードを管理するための安全な階層型ストレージを提供します.パスワード、データベース文字列、ライセンスコードなどのパラメータ値としてデータを格納できます.値は、純粋なテキストまたは暗号化されたデータとして保存できます.パラメータを作成するときに、指定した一意の名前を使用して、スクリプト、コマンド、SSMドキュメント、構成および自動化ワークフローでシステムマネージャパラメータを参照できます.젠킨스によってCI / CDを構築するには、jwt secret keyおよびFirebase admin sdk情報をスプリングに入力し、AWS Parameter Storeを使用することを試みる必要がある.

プロセス


まず、プロセス全体をリストします.
シーケンスプロシージャ1 aws IAM鍵アカウント作成と権限設定2 aws KMS対称鍵生成3 AWS Parameter Storeパラメータ生成4 jenkins AWS Parameter Store Build Wrapper pluginインストール5 jenkins上でaws Crementies登録6ライン作成

1.AWS IAM鍵アカウントを作成し、権限を設定する


まず、アカウントを作成し、ジェンキンスがAWSパラメータストレージにアクセスできるように適切な権限を追加する必要があります.アカウントは、Access KeyおよびSecret Access Keyの鍵を提供するように作成される.

パラメータストアにアクセスするには、AmazonSSMFullAccessを追加します.

2.AWS KMS対称鍵の生成


これらのパラメータを暗号化および管理する場合は、まずKMSクラウドサービスから対称鍵を生成する必要があります.(有料です.)
暗号化によってパラメータを管理したくない場合(無料で使用したい場合)は、2番目と3番目のプロセスをスキップします.

対称キーを使用して作成する必要があります.

対称鍵を作成するときに、管理者を登録し、最初のプロセスで作成したアカウントを対応する対称鍵マネージャに登録する必要があります.

3.パラメータ格納値の作成


次に、複数のアプリケーションに参照するパラメータを作成する必要があります.

「作成」ボタンをクリックします.

3-1. パスの指定



パラメータパスを指定します.パラメータパスを/{project_name}/{type}_{profile}/{key}形式で指定しました.
プロファイルがtestdev、およびprodの場合、対応するパラメータを指定できます.

3-2を暗号化するかどうかを指定します


パラメータ値を暗号化するかどうかによって、この部分は少し離れています.暗号化せずに無料で使用する場合は、「タイプ」で문자열を選択し、暗号化する場合は보안 문자열を選択します.문자열が選択されている場合、パラメータパスに対応する値をテキストセクションに入力するだけです.
選択보안 문자열 KMS 키 소스から別のアカウントを選択し、KMS 키 IDの部分に暗号化するKMS対称鍵のARNを貼り付けます.ARNはAWS KMSで確認できます.

4.Jenkins AWS Parameter Store Builder Wrapper pluginのインストール

withAWSParameterStoreを使用するには、ジェンキンスにAWS Parameter Store Build Wrapper pluginをインストールする必要があります.
ジェンキンスの管理->管理プラグインに移動して、このプラグインをインストールします.

5.ジェンキンスにaws証明書を登録する


ジェンキンスは、ステップ1で登録したAWSアカウントを使用してパラメータストアにアクセスします.そのため、aws Credentialsに登録してください.
移動젠킨스 관리->Manage Credentials、クリックAdd Credentials
これにより、最初のステップでは、awsアカウントの作成時に送信されるアクセスキーと秘密アクセスキーを入力し、IDを指定することで、ジェンキンスからawsパラメータストアにアクセスできます.

6.パイプラインの作成

stage('test aws parameter store') {
           steps {
               withAWSParameterStore(credentialsId: 'my-aws', 
               path: "/all-knu/firebase_${env.PROFILE}",
               naming: 'basename',
               regionName: 'ap-northeast-2') { 
                            echo "${env.ADMINSDK}"
                            writeFile file: 'test.json', text: "${env.ADMINSDK}"
                   }
           }
       }
パラメータパスを入力し、reginNameを指定してください.env.{parameter_key}でアクセスできます.
オプションの詳細はhttps://www.jenkins.io/doc/pipeline/steps/aws-parameter-store/で確認してください.