Slide 1

Slide 1 text

IAMポリシーの Effect(Allow/Deny)について、 改めて理解する 2025.02.25 JAWS-UG 名古屋 2月会「アクセス権限管理の 解体新書」 KDDIアジャイル開発センター 名古屋オフィス 鈴木 正樹

Slide 2

Slide 2 text

1 KDDI Agile Development Center Corporation 自己紹介 ◼ 氏名:鈴木 正樹 ◼ 所属:KDDIアジャイル開発センター(KAG) 名古屋オフィス ◼ 役割:クラウドアーキテクト & バックエンドエンジニア AWS(特にサーバーレスやInfrastructure as Code)が大好きで、主にそれらに関する 情報発信を積極的に行っています。 好きなサービスはAWS LambdaとAWS CDKで、主にJAWS-UG名古屋 & JAWS-UG CDK支部で活動。 ◼ Certification: ◼ AWS Solution Architect Associate(2023) ◼ AWS Community Builder(2023~) ◼ : @makky12(SUZUKI Masaki@クラウドエンジニア) ◼ Blog:https://makky12.hatenablog.com/

Slide 3

Slide 3 text

2 KDDI Agile Development Center Corporation 本日のアジェンダ • 初めに • Effectの判定について(IAMポリシー単体) • Effectの判定について(AWS全体) • まとめ & 告知

Slide 4

Slide 4 text

3 KDDI Agile Development Center Corporation 注意事項 ※IAM = Identity and Access Management の略です。(以後「IAM」と記載します) お話しすること • IAMポリシーの「Effect」による許可/拒否判定について • 複数サービスにまたがった際の許可/拒否判定について お話ししないこと • IAMポリシー、および許可/拒否判定に関係するサービスの詳細説明 その他 • 発表資料・発言内容は、すべて個人の見解・知見になります • IAMの正式な情報は、AWS公式サイトをご確認ください ◦ IAMはAWSセキュリティの基本&とても重要な要素になります

Slide 5

Slide 5 text

社外秘X 4 KDDI Agile Development Center Corporation はじめに

Slide 6

Slide 6 text

5 KDDI Agile Development Center Corporation はじめに 今回は、IAMポリシーの「Effect」についてお話しします。 IAMポリシーの「Effect」について、こう思ったことはないですか? ◦ Allow(許可)とDeny(拒否)を同時に定義した場合、アクセス権限はどうなるの? ◦ Effectを指定しなかったPrincipal(ユーザー、AWSサービスなど)のアクセス権限はどうなるの? ◦ S3バケットのリソースポリシーを設定したら、自分もS3にアクセスできなくなった… { "Version": "2012-10-17", "Statement": { “Effect”: “Allow”, // ←これ "Principal": { "AWS": "arn:aws:iam::123456789012:user/makky12” }, "Action": ["s3:GetObject", "s3:PutObject"], "Resource": "arn:aws:s3:::example-bucket/*" } }

Slide 7

Slide 7 text

社外秘X 6 KDDI Agile Development Center Corporation Effectの判定について(IAMポリシー単体)

Slide 8

Slide 8 text

7 KDDI Agile Development Center Corporation Effectの判定について(IAMポリシー単体) ※いきなり結論 結論から言うと、IAMポリシー単体では、下記の優先順位でEffectの判定が実施される 優先度:高 1. “Effect”: “Deny” が定義されている ⇒ アクセス拒否(=「明示的拒否」) 2. “Effect”: “Allow” が定義されている ⇒ アクセス許可 3. そのIAMポリシー以降の処理フロー(後で述べます)で判定処理がある ⇒ 以降の処理フローの結果次第 4. 1~3のどれにも該当せず ⇒ アクセス拒否(=「暗黙の拒否」) 優先度:低 IAMポリシー単体でのアクセス制御のポイントは下記の通り ◦ アクセスを許可したい場合は、“Effect”: “Allow” を定義する ◦ “Effect”: “Allow” が定義されていない場合、基本的にアクセス拒否される(暗黙の拒否) ◦ 絶対にアクセスを拒否したい場合は、“Effect”: “Deny” を定義する(明示的拒否)

Slide 9

Slide 9 text

社外秘X 8 KDDI Agile Development Center Corporation Effectの判定について(AWS全体)

Slide 10

Slide 10 text

9 KDDI Agile Development Center Corporation Effectの判定について(AWS全体) AWS全体でのEffectの判定フローは、AWS公式ドキュメントに記載がある(※1) ◦ AWS エンフォースメントコードロジックがリクエストを評価してアクセスを許可または拒否する方法 AWS全体でのEffectの判定フローのポイントとしては、以下の通り ◦ いずれかのポリシーで1つでも“Effect”: “Deny” が定義されているものがあれば、アクセス拒否となる。 ◦ 優先順位は AWS Organizationのポリシー → 単体ポリシー となっている ◦ ポリシーの種類の優先順位は、リソースポリシー → アイデンティティポリシー となっている • AWS Organization/単体ポリシー共に ※1:判定フローを日本語訳したものを公開しているブログもあります。 ◦ AWS「ポリシーの評価論理フローチャート」(日本語版)

Slide 11

Slide 11 text

社外秘X 10 KDDI Agile Development Center Corporation まとめ

Slide 12

Slide 12 text

11 KDDI Agile Development Center Corporation まとめ AWS単体でのEffectの判定には、優先順位がある ◦ Deny → Allow の順に優先順位が高い ◦ アクセス許可したい場合は、”Effect”: “Allow” のみ定義する ◦ ”Effect”: “Allow” がないポリシーでは、基本的にアクセス拒否される AWS全体でのEffect判定フローを理解する ◦ “Effect”: “Deny” が定義されているポリシーが1つでもあれば、アクセス拒否となる。 ◦ AWS Organizationのポリシー、リソースポリシーが優先される 迷ったら、AWS公式ドキュメントのEffect判定フローを確認する ◦ AWS エンフォースメントコードロジックがリクエストを評価してアクセスを許可または拒否する方法 (再掲)

Slide 13

Slide 13 text

札幌オフィス SAPPORO OFFICE 秋田オフィス AKITA OFFICE 高崎オフィス TAKASAKI OFFICE 金沢オフィス KANAZAWA OFFICE 舞鶴オフィス MAIZURU OFFICE 広島オフィス HIROSHIMA OFFICE 福岡オフィス FUKUOKA OFFICE 那覇オフィス NAHA OFFICE 仙台オフィス SENDAI OFFICE 東京本社 TOKYO MAIN OFFICE 三島オフィス MISHIMA OFFICE 名古屋オフィス NAGOYA OFFICE 大阪オフィス OSAKA OFFICE

Slide 14

Slide 14 text

採用募集中! エンジニア・デザイナー

Slide 15

Slide 15 text

14 KDDI Agile Development Center Corporation 告知 2/27(木)弊社開催の「KAGのLT会 #3」でLTします(オンライン) ◦ Amazon Aurora のバージョンアップ手法について話します(BuriKaigi2025でお話しした内容の抜粋版です) ◦ URL:https://kddi-agile.connpass.com/event/345657/

Slide 16

Slide 16 text

Be a Change Leader. アジャイルに力を与え 共に成長し続ける社会を創る