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

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

Avatar for mai miya mai miya
January 25, 2025

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

Avatar for mai miya

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/

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