373 words
2 minutes
AWSのPolicy周り何もわからない
2024-09-30

AWS何もわからない#

何もわからないけれど、解決するまでに至った手順をとりあえず書いておきます。

不要なことや、余計な権限があるかもしれないけれど今は許して。

Trust Policy#

とりあえずECSとECRにアクセスするためのトラストポリシーを作成する。IAMポリシーとは別物らしいのだけれど全然わからない。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

ChatGPTにいわれるがまま、上のように書いたけれどそもそもほぼデフォルト感があるのでわざわざ作る必要がなかった気もする。

IAMポリシー#

ChatGPTにきいたらECSClusterECRAccessPolicyっていう名前がいいよといわれたので、いわれるがままに作成。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecr:GetAuthorizationToken",
        "ecr:BatchCheckLayerAvailability",
        "ecr:GetDownloadUrlForLayer",
        "ecr:BatchGetImage",
        "ecr:DescribeRepositories",
        "ecr:ListImages",
        "ecr:InitiateLayerUpload",
        "ecr:UploadLayerPart",
        "ecr:CompleteLayerUpload",
        "ecr:PutImage"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ecs:CreateCluster",
        "ecs:DeleteCluster",
        "ecs:DescribeClusters",
        "ecs:UpdateCluster",
        "ecs:ListClusters",
        "ecs:CreateService",
        "ecs:DeleteService",
        "ecs:DescribeServices",
        "ecs:UpdateService",
        "ecs:ListServices",
        "ecs:RegisterTaskDefinition",
        "ecs:DeregisterTaskDefinition",
        "ecs:DescribeTaskDefinition",
        "ecs:ListTaskDefinitions",
        "ecs:RunTask",
        "ecs:StopTask",
        "ecs:ListTasks",
        "ecs:DescribeTasks",
        "ecs:UpdateServicePrimaryTaskSet",
        "ecs:CreateTaskSet",
        "ecs:DeleteTaskSet",
        "ecs:DescribeTaskSets"
      ],
      "Resource": "*"
    }
  ]
}

こうやるとECSとECRのすべてのリソースに対して上記の権限がついてしまうので、若干強すぎる気がしなくもない。

で、ECRにイメージをプッシュするだけでもとりあえず、

{
  "ecr:InitiateLayerUpload",
  "ecr:UploadLayerPart",
  "ecr:CompleteLayerUpload",
  "ecr:PutImage"
}

あたりが必要だったのだが、ここまで細かく分ける必要はあるのかなという印象。

AWSのPolicy周り何もわからない
https://fuwari.vercel.app/posts/2024/09/aws_policy/
Author
tkgling
Published at
2024-09-30