Cointaner Image の CD 用に ECR へ PUSH するための最低限の IAM Policy がどうなるのかを検証してまいりました。おそらくは以下が最低限の IAM Policy になりそうです。 このうちのどの action を許可しない場合であっても、イメージの PUSH はエラーになります。
data "aws_iam_policy_document" "this" { statement { sid = "AllowPushImage" effect = "Allow" actions = [ "ecr:BatchCheckLayerAvailability", "ecr:PutImage", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart", "ecr:CompleteLayerUpload" ] resources = [ var.repository_arn ] } statement { sid = "AllowLoginToECR" effect = "Allow" actions = [ "ecr:GetAuthorizationToken" ] resources = ["*"] } }
ecr:GetAuthorizationToken
については、特定のリポジトリに対してのみ許可すれば良いと思っていましたが、
対象リソースを "*"
にしないとエラーとなりました。へー。