【GitLab】GitLab CIでAWS CLI の名前付きプロファイルを用いる方法
ローカル環境で、AWS CLIの名前付きプロファイルを用いる際に生成されるファイルには、「config」ファイルと「credentials」ファイルがあります。
GitLab CIの Settings > CI/CD > Variables から上記のファイルに相当するファイルを用意します。
~/.aws/config ファイルに相当するファイルの作成
キー(Key)には「AWS_CONFIG_FILE」と入力します。
バリュー(Value)には下の画像のように、プロファイル名(profile name)とサーバーの地域(region)、outputなどを設定しておきます。
ここは、ローカル上の ~/.aws/config ファイルを参考にしてみてもいいと思います。
タイプ(Type)は「File」を選びます。
~/.aws/credentials ファイルに相当するファイルの作成
キー(Key)には「AWS_SHARED_CREDENTIALS_FILE」と入力します。
バリュー(Value)には下の画像のように、プロファイル名(profile name)とAWS CLI用のアクセスキー(aws_access_key_id)、シークレットアクセスキー(aws_secret_access_key)を設定します。
ここも同様に、ローカル上の ~/.aws/credentials ファイルを参考にしてみてもいいと思います。
タイプ(Type)は「File」を選びます。
以上で設定は完了となります。
後書き
あとは、ローカル上でAWSのプロファイルを選択するときのように、GitLab-ci.yml上のコマンドラインで、以下のように使うことが可能です。
export AWS_PROFILE=<profilename>
ちなみに、名前付きプロファイルを用いない方法については、GitLabの公式ドキュメントに記載があります。
参考資料
- AWS CLI の名前付きプロファイル
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-profiles.html - Deploying from GitLab CI to multiple AWS accounts
https://producement.com/blog/deploying-from-gitlab-ci-to-multiple-aws-accounts/ - Deploy to AWS from GitLab CI/CD
https://docs.gitlab.com/ee/ci/cloud_deployment/