理系学生日記

おまえはいつまで学生気分なのか

ECR への PUSH を行うための最低限のIAM Policy

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 については、特定のリポジトリに対してのみ許可すれば良いと思っていましたが、 対象リソースを "*" にしないとエラーとなりました。へー。