状況
CI のデプロイ用ロールで ECS のサービス更新が失敗した。エラーは not authorized to perform: ecs:UpdateService … because no identity-based policy allows the ecs:UpdateService action。チャットで「とりあえず AdministratorAccess を付けて」と言われた。
対応する順番として、最も適切なものは?
- Aエラー文から操作名・対象リソース・拒否の種類を読む
- BAdministratorAccess をロールに付ける
- Cそれでも拒否されたら、SCP など別の層を確かめる
- Dその操作と対象だけを許可するポリシーを足して再実行する
正答
- B → A → D → C
- A → D → C → B
- D → C → A → B
- C → A → B → D
解説
まずエラー文を読む(A)。操作は ecs:UpdateService、拒否の種類は no identity-based policy allows で、ロールの IAM ポリシーに許可が無いだけだと分かる。それなら、その操作と対象のサービスに限った許可を足して再実行する(D)。それでも拒否されるなら、エラー文の種類が変わっているはずなので、SCP やアクセス許可の境界など別の層を確かめる(C)。AdministratorAccess(B)は CI のロールにすべての操作を許すことになり、CI の認証情報が悪用されたときの被害が最大になるので付けない。権限を広げる前に、何が足りないかを特定する。
この問題を含む AWS のテストを制限時間つきで解く
AWSクイズへ