Upgrade to Pro — share decks privately, control downloads, hide ads and more …

IAMポリシーのAllow/Denyについて、改めて理解する

Makky12
February 25, 2025

 IAMポリシーのAllow/Denyについて、改めて理解する

2025/02/25(火)開催の JAWS「JAWS-UG 名古屋 2月会『アクセス権限管理の解体新書』」における私のLT「IAMポリシーのAllow/Denyについて、改めて理解する」の発表資料になります。 #jawsug_nagoya

https://jawsug-nagoya.connpass.com/event/342964/

Makky12

February 25, 2025
Tweet

More Decks by Makky12

Other Decks in Technology

Transcript

  1. 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/
  2. 2 KDDI Agile Development Center Corporation 本日のアジェンダ • 初めに •

    Effectの判定について(IAMポリシー単体) • Effectの判定について(AWS全体) • まとめ & 告知
  3. 3 KDDI Agile Development Center Corporation 注意事項 ※IAM = Identity

    and Access Management の略です。(以後「IAM」と記載します) お話しすること • IAMポリシーの「Effect」による許可/拒否判定について • 複数サービスにまたがった際の許可/拒否判定について お話ししないこと • IAMポリシー、および許可/拒否判定に関係するサービスの詳細説明 その他 • 発表資料・発言内容は、すべて個人の見解・知見になります • IAMの正式な情報は、AWS公式サイトをご確認ください ◦ IAMはAWSセキュリティの基本&とても重要な要素になります
  4. 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/*" } }
  5. 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” を定義する(明示的拒否)
  6. 9 KDDI Agile Development Center Corporation Effectの判定について(AWS全体) AWS全体でのEffectの判定フローは、AWS公式ドキュメントに記載がある(※1) ◦ AWS

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

    → Allow の順に優先順位が高い ◦ アクセス許可したい場合は、”Effect”: “Allow” のみ定義する ◦ ”Effect”: “Allow” がないポリシーでは、基本的にアクセス拒否される AWS全体でのEffect判定フローを理解する ◦ “Effect”: “Deny” が定義されているポリシーが1つでもあれば、アクセス拒否となる。 ◦ AWS Organizationのポリシー、リソースポリシーが優先される 迷ったら、AWS公式ドキュメントのEffect判定フローを確認する ◦ AWS エンフォースメントコードロジックがリクエストを評価してアクセスを許可または拒否する方法 (再掲)
  8. 札幌オフィス 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
  9. 14 KDDI Agile Development Center Corporation 告知 2/27(木)弊社開催の「KAGのLT会 #3」でLTします(オンライン) ◦

    Amazon Aurora のバージョンアップ手法について話します(BuriKaigi2025でお話しした内容の抜粋版です) ◦ URL:https://kddi-agile.connpass.com/event/345657/