ターゲット
- Jenkinsでaws-cliを使いたい人
- Jenkinsののったインスタンス上にprofileの設定を、aws-cliで残したくない人
設定手順
IAM
- aws-cliで利用するアクセスキーとシークレットアクセスキーを発行するため、IAMでユーザを作成します。
- Jenkinsの認証時報の設定でアクセスキーIDおよびシークレットアクセスキーは利用しますので、「プログラムによるアクセス」はチェック。
refs: https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_users_create.html
Install aws-cli
- Jenkinsが動作しているインスタンスに aws-cli をインストールする。
- Jenkinsのインスタンスは、JenkinsにG-Suiteアカウントでログインするで作成したインスタンスの為、Ubuntuを前提に記載してます。
- その他OSの場合は、AWS CLI バージョン 2 のインストール、更新、およびアンインストールを参照
sudo apt install -y awscli
aws --version
# aws-cli/1.18.69 Python/3.8.5 Linux/5.4.0-1045-aws botocore/1.16.19
Plugin Install
refs: https://plugins.jenkins.io/aws-credentials/
Create Credentials
- Credentials画面(Jenkinsの管理 > Manage Credentiaals)で、aws-cliの認証情報を設定する。
ビルド実行
- Credentialの設定が済んだら以下のようにパイプラインを設定し、ビルド実行し動作の確認を行います。
pipeline {
agent any
stages {
stage("s3 ls") {
steps {
withCredentials(
[[
$class: 'AmazonWebServicesCredentialsBinding',
credentialsId: 'sandbox',
accessKeyVariable: 'AWS_ACCESS_KEY_ID',
secretKeyVariable: 'AWS_SECRET_ACCESS_KEY'
]]
) {
sh '''
aws s3 ls
'''
}
}
}
}
}
- 設定したCredentialのAWSアカウントのS3バケット一覧が出力されれば成功です。