Categories
Tags
Alamofire Android AppStoreConnect AWS Bun C++ cAdvisor CFW Cloudflare Cloudflare Access Cloudflare KV Cloudflare Tunnel Cloudflare Workers D1 Deno DevContainer Discord Docker ECR ECS Edizon Emulator EmuMMC Fastlane Firestore Frida Ghidra Git GitHub GitHub Actions GitLab GPG Grafana HACGUI Heroku Homebrew Hono IDA Pro iOS IPSwitch Jailbreak Javascript JSON JWT LanPlay Linode macOS Mirakurun MongoDB NestJS NextJS Nintendo Nintendo Switch NodeJS PHP PostgreSQL Prisma Programming Prometheus Python React Realm RealmSwift Ruby Salmon Run Salmonia3+ Shogi Sideload Snap Splatoon Splatoon2 Splatoon3 SSH Stable Diffusion Starlight Swift Swift Package SwiftUI Switch TensorRT Turf War Typescript TypeScript Ubuntu Ubuntu Server VNC VPN VSCode Vue WARP Wireguard XCode Xcode yarn zsh 家電 横歩取り
373 words
2 minutes
AWSのPolicy周り何もわからない
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/