Share
Embed
IAM JSON ポリシーと仲良くなろう
2025/01/25
JAWS-UG熊本reboot
https://jawsug-kumamoto.connpass.com/event/337992/
maimyyym
January 25, 2025
Transcript
33 slides
-
©Fusic Co., Ltd. 0 IAM JSON ポリシーと仲良くなろう 2025.01.25 Mai Miyazaki
@maimyyym JAWS-UG 熊本 reboot -
©Fusic Co., Ltd. 1 Introduction 宮 崎 真 衣 M
A I M I YA Z A K I HN: mai (@maimyyym ) 株式会社Fusic 事業本部 技術創造部門 / エンジニア ◉ I am - IDDM(1型糖尿病) 3歳発症 - 元百貨店スタッフ(Beauty Counselor) - 2023年10月 Fusic入社 ◉ Skill - AWS / Python / TypeScript / PHP(Laravel) - Interested in: Security, Identity & Compliance ◉ Comment - 人生で2〜3度目の熊本!祖母の生まれた土地です! 画像 -
©Fusic Co., Ltd. 2 CONTENTS 目次 1. IAMポリシーをスラスラ書きたい 2. ポリシータイプ
3. IAM JSONポリシー 4. 実践IAMポリシー 5. まとめ -
©Fusic Co., Ltd. 4 IAM ポリシーを書くのが難しい IAMポリシーをスラスラ書きたい ポリシーによって書き方が違うが、 何がどう違うかイマイチ理解していない どのドキュメントを見れば
解決するか分からない 権限エラーの原因が探りにくい -
©Fusic Co., Ltd. 5 完全に理解しなくてもいい、けれど… IAMポリシーをスラスラ書きたい 生成AIを活用して、 必要なポリシーを作成できる やっぱり、IAMと仲良くなりたい! 0から自力で書くことはほとんどないはず。
AIを頼ると、書き方のヒントはくれる。 - 微妙に間違っていることがある。 - 実現したい要件をAIに与えるのが難しいこともある。 - うまくいかないループにハマることもある。 でも・・・ 単純に、おもしろい! IAMのドキュメントは読んでて楽しい -
©Fusic Co., Ltd. 6 IAMポリシーと仲良くなりたい IAMポリシーをスラスラ書きたい re:Invent 2024で Data perimeter
challenge [REPEAT] 【SEC307-R2】 というハンズオンセッションに参加! 【Data Perimeterの詳細はこちら】 細かなアクセス制御を行うポリシーを実装するハンズオン https://aws.amazon.com/identity/data-perimeters-on-aws/ -
©Fusic Co., Ltd. 7 IAMポリシーと仲良くなりたい IAMポリシーをスラスラ書きたい re:Invent 2024で Data perimeter
challenge [REPEAT] 【SEC307-R2】 というハンズオンセッションに参加! 復習記事も書きました! - “できること”を知っていると、やっぱり嬉しい - 動いたからヨシ、ではないようにしたい - ポリシーをうまく操れるようになりたい ・・・という気持ちに! -
©Fusic Co., Ltd. 10 IAMポリシーの種類 ポリシータイプ 使用できるポリシータイプ https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/access_policies.html アイデンティティベースポリシー リソースベースポリシー
アクセス許可の境界 SCP RCP ACL セッションポリシー 唯一、JSON構造を 使用しないポリシータイプ CLIまたはAPIのみで AssumeRole時に指定 -
©Fusic Co., Ltd. 11 IAMポリシーの種類 ポリシータイプ ◼ 対象 IAMユーザー、グループ、ロール ◼
特徴 ユーザーやロールに直接アタッチして、そのアイ デンティティが実行できるアクションを制御する。 ◼ 使用例 Lambda関数の実行ロール 開発者のIAMユーザーに特定のリソースへの アクセス権を付与。 アイデンティティベースポリシー 例: IAMロールにアタッチするIAMポリシー。 -
©Fusic Co., Ltd. 12 IAMポリシーの種類 ポリシータイプ ◼ 対象 AWSリソース S3バケット、KMSカスタマーマネージドキー、API
Gatewayリソース、VPCエンドポイントなど ◼ 特徴 リソース自体にアタッチ、アクセスを制御する。 他のアカウントやIAMロールに対するアクセス権限を付与 することが可能。 ◼ 使用例 S3バケットにクロスアカウントアクセスを許可 API Gatewayに特定IPのみからのアクセスを許可 リソースベースポリシー 例: S3バケットポリシー -
©Fusic Co., Ltd. 13 IAMポリシーの種類 ポリシータイプ ◼ 対象 AWS Organizations内のアカウントやOU(組織単位)
◼ 特徴 アカウントやOU全体に対してサービスやアクショ ンを制御。 Allowポリシーだけでなく、Denyを強制するポリシーとし ても使用可能。 ◼ 使用例 組織全体で「EC2インスタンスの削除を許可しな い」などを設定。 SCP( Service Control Policy ) 例: S3バケットの削除を禁止するSCP -
©Fusic Co., Ltd. 14 IAMポリシーの種類 ポリシータイプ ◼ 対象 AWS Organizations内のリソース
現時点で対応:S3, STS, KMS, SQS, Secrets Manager ◼ 特徴 組織内の AWS リソースに対する最大許可を制御。 データ境界(Data Perimeters)を一元的に確立できる ◼ 使用例 組織内のAmazon S3バケットに対して、組織外のプリンシ パルからのアクセスを禁止。 個々のバケットポリシーで許可されていても、組織外から のアクセスを一括して制限できる。 RCP( Resource Control Policy ) 例: 組織外からのS3アクセスを禁止するRCP 2024年11月にリリース! re:Inventでさっそくトライ! (Data Perimeter Challenge) -
©Fusic Co., Ltd. 15 ざっくりまとめる ポリシータイプ 何に、を制御 何が、を制御 個別での定義 リソースベースポリシー
アイデンティティベース ポリシー 組織全体で定義 RCP SCP -
©Fusic Co., Ltd. 18 IAM JSON ポリシーの構造 IAM JSON ポリシーの構造を知る
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/ reference_policies_elements.html を見よう どんな要素があって、どう書くんだっけ?? 「IAM JSON ポリシー要素のリファレンス」 -
©Fusic Co., Ltd. 19 (例) Statementの構造を見てみる IAM JSON ポリシーの構造を知る 1
Effect - 必須 - Allow / Deny - ポリシーの動作を制御 2 Principal - リソースベースポリシーで必須 - アイデンティティベースポリシーでは使えない - 権限制御の対象(プリンシパル)を指定 3 Action - 必須 - 許可または禁止するAWSサービスの操作を指定 - 例: "s3:GetObject", "ec2:DescribeInstances" 4 Resource - 必須 - ARNでリソースを指定 / ワイルドカードも使える - アクションを適用する対象リソースを指定する 5 Condition - オプション - 条件キーでより細かな制御を実装できる - 例: aws:SourceIp, aws:RequestTag 詳しくはドキュメント! 「IAM JSON ポリシー要素のリファレンス」 -
©Fusic Co., Ltd. 20 IAM JSON ポリシーの構造 IAM JSON ポリシーの構造を知る
「サービス認可リファレンス」 結局、何を使えばいいか分からない https://docs.aws.amazon.com/ja_jp/service- authorization/latest/reference/reference_policies_ actions-resources-contextkeys.html を見よう アクション、リソースタイプ、条件キーの書き方記載あり! 辞書のように使えるドキュメントです。 -
©Fusic Co., Ltd. 21 IAM JSON ポリシーの構造 IAM JSON ポリシーの構造を知る
「サービス認可リファレンス」 -
©Fusic Co., Ltd. 23 実際、どう書く? 実践 IAM ポリシー 最初に話したように、 0ベースで自力で書くことはないし
正しい書き方に則って、期待する制御ができればそれで良いと思っています。 -
©Fusic Co., Ltd. 24 実際、どう書く? 実践 IAM ポリシー - IaCにポリシーを書き残す場合
=> マネコンでまず試す - 公式ツールを活用する - 生成AIを活用する -
©Fusic Co., Ltd. 26 IAM Policy Generator(作る時) 実践 IAM ポリシー
https://awspolicygen.s3.amazonaws.com/policygen.html AWS公式のポリシー作成ツール GUIで簡単にポリシーを生成できる -
©Fusic Co., Ltd. 27 IAM Policy Generator (作る時) 実践 IAM
ポリシー https://awspolicygen.s3.amazonaws.com/policygen.html -
©Fusic Co., Ltd. 28 IAM Policy Simulator (試す時) 実践 IAM
ポリシー https://policysim.aws.amazon.com/ AWS公式のポリシーテストツール GUIで簡単にポリシーを検証できる -
©Fusic Co., Ltd. 29 IAM Policy Simulator (試す時) 実践 IAM
ポリシー https://policysim.aws.amazon.com/ -
©Fusic Co., Ltd. 30 生成AIに頼る 実践 IAM ポリシー 正直、これが一番多い ヒントをくれる。(大事!)
よく分からなかったり、うまくいかなかったり… そんな時は、生成された記述をもとにドキュメントを見ればOK DynamoDBのリソースポリシー例 Lambdaの実行ロール例(ポリシー + 信頼関係) Lambda関数のコード例 【出力】 -
©Fusic Co., Ltd. 31 基本構造やドキュメントの在処が分かっていると嬉しい まとめ 便利ツールに頼る ChatGPT, Amazon Q,
Copilot, 公式ツール … 検証する 動かしてみる 微調整は自分の基礎知識や ドキュメントをもとに行う このフェーズを いかに速くできるか! IAM は知れば知るほど仲良くなれる -
©Fusic Co., Ltd. 32 Thank You We are Hiring! https://recruit.fusic.co.jp/
ご清聴いただきありがとうございました