LoginSignup
0
0

More than 1 year has passed since last update.

AWSに複数環境で自動デプロイの権限設定

Last updated at Posted at 2021-09-14

背景

  • AWS上にECRとECSでバックエンドサービスを構築している
  • one clickでコードデプロイを実施したい
  • 開発環境と本番環境は別のAWSアカウントになる

内容

AWS CodeBuildとは

  • 完全マネージド型のビルドサービス
  • ソースコードをコンパイルする
  • 単体テスト
  • デプロイ

buildspec.yml

  • 単体テスト実施
  • docker image build
  • ECRへpush

問題

deploy_aws.drawio (1).png

  • 開発アカウントのCodeBuildから本番アカウントのECRへプッシュする時に、権限設定が必要

対策

本番アカウントの側

  • ECRリポジトリにアクセス許可を追加する
    • 開発アカウントのputimage権限を許可する
{ 
  "Version": "2008-10-17", 
  "Statement": [ 
    { 
      "Sid": "AllowPushPull", 
      "Effect": "Allow", 
      "Principal": { 
        “AWS”: “arn:aws:iam::開発アカウントID" 
      }, 
      "Action": [ 
        ......
        "ecr:PutImage", 
        "ecr:UploadLayerPart" 
      ] 
    } 
  ] 
} 


開発アカウントの側

  • ビルドプロジェクトのサービスロールに、STSとECR操作権限を追加する
sts-policy:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
        { 
            "Sid": "VisualEditor1", 
            "Effect": "Allow", 
            "Action": [ 
                "sts:AssumeRole" 
            ], 
            “Resource”: “arn:aws:iam::開発アカウントID:role/service-role/ロール名" 
        } 
    ] 
} 


ECRへpush権限:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
        { 
            "Sid": "VisualEditor0", 
            "Effect": "Allow", 
            "Action": [ 
                ....
                "ecr:PutImage", 
                ......
            ], 
            “Resource”: “arn:aws:ecr:ap-northeast-1:本番アカウントID:repository/リポジトリ名" 
        }, 
        { 
            "Sid": "VisualEditor1", 
            "Effect": "Allow", 
            "Action": "ecr:GetAuthorizationToken", 
            "Resource": "*" 
        } 
    ] 
} 



0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0