CircleCI_setting_with_AWS_ECR
AWS ECRを利用したCircleCIの構築
実現したいこと
- AWS ECR に 開発環境で利用している docker image をアップロードする
- アップロードしたイメージを pull して CircleCIを実行
概要
お勧めするのアプローチは、OpenID Connect(OIDC)を使用して AWS ECR からイメージをプルすることです。
- メリット
- セキュリティの向上:
- OIDC 認証を利用することで、CircleCI の設定や環境変数に直接 AWS の認証情報を保存することが避けられ、漏洩のリスクを低減できます。
- クレデンシャル管理の簡素化:
- OIDC により、CircleCI は認証プロセスを自動的に管理し、AWS のクレデンシャルを手動で管理しローテーションする必要がなくなります。
- **きめ細かなアクセスコントロール:
- **OIDC 認証に IAM ロールを関連付けることで、CircleCI がECR イメージを取り込む際に付与する権限を厳密にコントロールし、最小特権を確保することが可能です。
- セキュリティの向上:
やり方
前提
CLI
- Docker CLI がインストールされている
- AWS CLI がインストールされている
AWS Configure
- AWS CLI のアクセスキーを管理者に発行してもらう必要がある
AWS ECR権限
- ロールを作成してもらう必要がある
その他
- GibHub に CircleCI が連携されている
- AWS で CircleCI を信頼できる ID プロバイダとして設定されている
Docker image を用意
Docker ファイルを作成する
image をタグづけして作成する
任意のリージョンの ECR リポジトリから、プライベート イメージをプルできます。 ただし、最高のエクスペリエンスを得るために、
us-east-1リージョンにイメージのコピーを作成し、そのus-east-1のイメージを Docker Executor に指定することを強くお勧めします。 CircleCI のジョブ実行インフラストラクチャはus-east-1リージョンにあります。 そのため、us-east-1のイメージを使用すると、環境のスピンアップ プロセスにかかる時間が短縮されます。
参考
AWSにリポジトリを作成する
参考
AWS ECR にdocker image を配置する
参考
- AWS ECR から OIDC でイメージをプルする方法 - CircleCI
- Moving an image through its lifecycle in Amazon ECR - Amazon ECR