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

IAM JSON ポリシーと仲良くなろう

mai miya
January 25, 2025

IAM JSON ポリシーと仲良くなろう

mai miya

January 25, 2025
Tweet

More Decks by mai miya

Other Decks in Technology

Transcript

  1. ©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度目の熊本!祖母の生まれた土地です! 画像
  2. ©Fusic Co., Ltd. 5 完全に理解しなくてもいい、けれど… IAMポリシーをスラスラ書きたい 生成AIを活用して、 必要なポリシーを作成できる やっぱり、IAMと仲良くなりたい! 0から自力で書くことはほとんどないはず。

    AIを頼ると、書き方のヒントはくれる。 - 微妙に間違っていることがある。 - 実現したい要件をAIに与えるのが難しいこともある。 - うまくいかないループにハマることもある。 でも・・・ 単純に、おもしろい! IAMのドキュメントは読んでて楽しい
  3. ©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/
  4. ©Fusic Co., Ltd. 7 IAMポリシーと仲良くなりたい IAMポリシーをスラスラ書きたい re:Invent 2024で Data perimeter

    challenge [REPEAT] 【SEC307-R2】 というハンズオンセッションに参加! 復習記事も書きました! - “できること”を知っていると、やっぱり嬉しい - 動いたからヨシ、ではないようにしたい - ポリシーをうまく操れるようになりたい ・・・という気持ちに!
  5. ©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時に指定
  6. ©Fusic Co., Ltd. 11 IAMポリシーの種類 ポリシータイプ ◼ 対象 IAMユーザー、グループ、ロール ◼

    特徴 ユーザーやロールに直接アタッチして、そのアイ デンティティが実行できるアクションを制御する。 ◼ 使用例 Lambda関数の実行ロール 開発者のIAMユーザーに特定のリソースへの アクセス権を付与。 アイデンティティベースポリシー 例: IAMロールにアタッチするIAMポリシー。
  7. ©Fusic Co., Ltd. 12 IAMポリシーの種類 ポリシータイプ ◼ 対象 AWSリソース S3バケット、KMSカスタマーマネージドキー、API

    Gatewayリソース、VPCエンドポイントなど ◼ 特徴 リソース自体にアタッチ、アクセスを制御する。 他のアカウントやIAMロールに対するアクセス権限を付与 することが可能。 ◼ 使用例 S3バケットにクロスアカウントアクセスを許可 API Gatewayに特定IPのみからのアクセスを許可 リソースベースポリシー 例: S3バケットポリシー
  8. ©Fusic Co., Ltd. 13 IAMポリシーの種類 ポリシータイプ ◼ 対象 AWS Organizations内のアカウントやOU(組織単位)

    ◼ 特徴 アカウントやOU全体に対してサービスやアクショ ンを制御。 Allowポリシーだけでなく、Denyを強制するポリシーとし ても使用可能。 ◼ 使用例 組織全体で「EC2インスタンスの削除を許可しな い」などを設定。 SCP( Service Control Policy ) 例: S3バケットの削除を禁止するSCP
  9. ©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)
  10. ©Fusic Co., Ltd. 18 IAM JSON ポリシーの構造 IAM JSON ポリシーの構造を知る

    https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/ reference_policies_elements.html を見よう どんな要素があって、どう書くんだっけ?? 「IAM JSON ポリシー要素のリファレンス」
  11. ©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 ポリシー要素のリファレンス」
  12. ©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 を見よう アクション、リソースタイプ、条件キーの書き方記載あり! 辞書のように使えるドキュメントです。
  13. ©Fusic Co., Ltd. 23 実際、どう書く? 実践 IAM ポリシー 最初に話したように、 0ベースで自力で書くことはないし

    正しい書き方に則って、期待する制御ができればそれで良いと思っています。
  14. ©Fusic Co., Ltd. 24 実際、どう書く? 実践 IAM ポリシー - IaCにポリシーを書き残す場合

    => マネコンでまず試す - 公式ツールを活用する - 生成AIを活用する
  15. ©Fusic Co., Ltd. 26 IAM Policy Generator(作る時) 実践 IAM ポリシー

    https://awspolicygen.s3.amazonaws.com/policygen.html AWS公式のポリシー作成ツール GUIで簡単にポリシーを生成できる
  16. ©Fusic Co., Ltd. 27 IAM Policy Generator (作る時) 実践 IAM

    ポリシー https://awspolicygen.s3.amazonaws.com/policygen.html
  17. ©Fusic Co., Ltd. 28 IAM Policy Simulator (試す時) 実践 IAM

    ポリシー https://policysim.aws.amazon.com/ AWS公式のポリシーテストツール GUIで簡単にポリシーを検証できる
  18. ©Fusic Co., Ltd. 29 IAM Policy Simulator (試す時) 実践 IAM

    ポリシー https://policysim.aws.amazon.com/
  19. ©Fusic Co., Ltd. 30 生成AIに頼る 実践 IAM ポリシー 正直、これが一番多い ヒントをくれる。(大事!)

    よく分からなかったり、うまくいかなかったり… そんな時は、生成された記述をもとにドキュメントを見ればOK DynamoDBのリソースポリシー例 Lambdaの実行ロール例(ポリシー + 信頼関係) Lambda関数のコード例 【出力】
  20. ©Fusic Co., Ltd. 31 基本構造やドキュメントの在処が分かっていると嬉しい まとめ 便利ツールに頼る ChatGPT, Amazon Q,

    Copilot, 公式ツール … 検証する 動かしてみる 微調整は自分の基礎知識や ドキュメントをもとに行う このフェーズを いかに速くできるか! IAM は知れば知るほど仲良くなれる
  21. ©Fusic Co., Ltd. 32 Thank You We are Hiring! https://recruit.fusic.co.jp/

    ご清聴いただきありがとうございました