Successfully reported this slideshow.

JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する 〜最小権限の原則を実装ってどゆこと?〜

2

Share

1 of 69
1 of 69

JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する 〜最小権限の原則を実装ってどゆこと?〜

2

Share

Download to read offline

JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する 〜最小権限の原則を実装ってどゆこと?〜

JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する 〜最小権限の原則を実装ってどゆこと?〜

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する 〜最小権限の原則を実装ってどゆこと?〜

  1. 1. JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する Presented by JAWS-UG 初心者支部 ~最小権限の原則を実装ってどゆこと?~ 担当:おーたけ(JAWS-UG 初心者支部 卒業生) https://jaws-ug.doorkeeper.jp/events/118447
  2. 2. JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 自己紹介 名前:おーたけ 職歴:とある電機メーカー 業務歴:社製ft ServerとかHAクラスタリングSWとか開発 ⇒ なんやかんやあってAWSJとのアライアンス業務 JAWS-UG歴:初心者支部の勉強会に3回くらい参加 ⇒ ご縁があって(?) Security-JAWS のコアメンバ 好きなAWSサービス:Amazon S3 詳しくは個人サポーターページにて ⇒ https://jawsdays2021.jaws-ug.jp/individual-supporter/ SORACOM UG Tokyo https://www.facebook.com/soracomug/ Security-JAWS https://s-jaws.doorkeeper.jp/ コミュニティ放送部 https://community-bc.connpass.com/ 個人活動
  3. 3. JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 ハンズオンの流れ ① 仕込み ↓ ・ CloudFormationでEC2インスタンスをデプロイする ↓ ② 学習 ↓ ・『最小権限の原則』を理解する ↓ ③ 実習 その1 ↓ ・AWS CLI を活用する ↓ ④ 実習 その2 ↓ ・AWS CloudTrail を活用する ↓ ⑤ まとめ 結果が反映されるまで 15~20分くらいかかる ※おーたけ調べ
  4. 4. それでは『① 仕込み』から。
  5. 5. ① 仕込み CloudFormationでEC2インスタンスをデプロイ 0) AWS Management Console にログイン JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 【確認ポイント】 ・Administrator権限のIAMユーザー ・リージョンは『東京』を選択
  6. 6. ① 仕込み CloudFormationでEC2インスタンスをデプロイ 0) Amazon EC2 のキーペアを確認 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 【確認ポイント】 ・任意のキーペアがあること ⇒ 無い場合はキーペアを作ろう 右上のボタン → 今回は名前を『jd2021-wa-iam-policy』で作成 ※名前は任意でOK
  7. 7. JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 ① 仕込み CloudFormationでEC2インスタンスをデプロイ 1) ユーザーガイドのテンプレートを拝借 https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide /sample-templates-services-ap-northeast-1.html#w2aac35c38c13c13 Launch Stack 別タブで開きましょう
  8. 8. JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 ① 仕込み CloudFormationでEC2インスタンスをデプロイ 3) スタックの作成
  9. 9. ① 仕込み CloudFormationでEC2インスタンスをデプロイ 3) スタックの作成 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 【確認ポイント】 ・EC2のキーペアを指定
  10. 10. ① 仕込み CloudFormationでEC2インスタンスをデプロイ 3) スタックの作成 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部
  11. 11. ① 仕込み CloudFormationでEC2インスタンスをデプロイ 3) スタックの作成 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部
  12. 12. 突然ですがハンズオン成功祈願のお時間です。 (前編)
  13. 13. ① 仕込み ハンズオン成功祈願(前編)~AWSCloudShell で 3連続アッパー!!~ JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 何も考えず下記コマンドを3回連続で実行 $ aws accessanalyzer list-analyzers このアイコンをクリック! AWS CloudShellを起動 (初回実行は起動完了まで少々待つ) 別に他のコマンドでも OKなんですけどね。
  14. 14. スタック作成に戻ろう。 ※成功祈願(前編)は完了
  15. 15. ① 仕込み CloudFormationでEC2インスタンスをデプロイ 3) スタックの作成 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部
  16. 16. ① 仕込み CloudFormationでEC2インスタンスをデプロイ 3) スタックの作成 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 スタックの作成が完了するまでしばし待つ
  17. 17. 突然ですがハンズオン成功祈願のお時間です。 (後編)
  18. 18. ① 仕込み ハンズオン成功祈願(後編)~AWSCloudShell で 3連続アッパー!!~ JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 何も考えず下記コマンドを3回連続で実行 $ aws accessanalyzer list-analyzers このアイコンをクリック! AWS CloudShellを起動 (初回実行は起動完了まで少々待つ) 別に他のコマンドでも OKなんですけどね。 再掲
  19. 19. EC2インスタンスを停止しよう。 ※成功祈願(後編)は完了
  20. 20. ① 仕込み CloudFormationでEC2インスタンスをデプロイ 4) デプロイしたEC2インスタンスを停止 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 EC2インスタンスを停止 (手順は割愛)
  21. 21. 以上で『① 仕込み』は完了
  22. 22. JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 ハンズオンの流れ ① 仕込み ↓ ・ CloudFormationでEC2インスタンスをデプロイする ↓ ② 学習 ↓ ・『最小権限の原則』を理解する ↓ ③ 実習 その1 ↓ ・AWS CLI を活用する ↓ ④ 実習 その2 ↓ ・AWS CloudTrail を活用する ↓ ⑤ まとめ 結果が反映されるまで 15~20分くらいかかる ※おーたけ調べ
  23. 23. 次に『② 学習』へ。
  24. 24. ② 学習 『最小権限の原則』を理解する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 https://aws.amazon.com/jp/architecture/well-architected/
  25. 25. ② 学習 『最小権限の原則』を理解する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 https://wa.aws.amazon.com/index.ja.html クリックすると、、、
  26. 26. ② 学習 『最小権限の原則』を理解する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 ベストプラクティス 最小権限のアクセスを付与する: 特定の条件下で特定の AWS リソースに対する特定のアクションを行えるよ うにして、ID に必要なアクセスのみを付与します。グループと ID 属性を利用 して、個々のユーザーのアクセス許可を定義するのではなく、規模に応じて アクセス許可を動的に設定します。たとえば、開発者のグループに、扱うプ ロジェクトのリソースのみを管理することを許可できます。これにより、開発 者がグループから削除されると、アクセスポリシーに変更を加えることなく、 そのグループがどこでアクセスコントロールに使用されたかを問わず、開発 者のアクセスが取り消されます。
  27. 27. ② 学習 『最小権限の原則』を理解する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 ベストプラクティス 最小権限のアクセスを付与する: 特定の条件下で特定の AWS リソースに対する特定のアクションを行えるようにして、ID に必要なアクセスのみを付与します。グループ と ID 属性を利用して、個々のユーザーのアクセス許可を定義するのではなく、規模に応じてアクセス許可を動的に設定します。たとえ ば、開発者のグループに、扱うプロジェクトのリソースのみを管理することを許可できます。これにより、開発者がグループから削除さ れると、アクセスポリシーに変更を加えることなく、そのグループがどこでアクセスコントロールに使用されたかを問わず、開発者のアク セスが取り消されます。 改善計画 ・最小権限ポリシーを実装する: IAM グループおよびロールに最小権限のアクセスポリシーを割り当てて、定義したユーザーのロール または機能を反映します。 ・必要でないアクセス許可を削除する: 不要なアクセス許可を削除して、最小権限を実装します。 ・アクセス許可の境界を考慮する: アクセス許可の境界は、アイデンティティベースのポリシーが IAM エンティティに付与できるアクセス 許可の上限を設定する管理ポリシーを使用するための高度な機能です。エンティティのアクセス許可の境界では、アイデンティティベー スのポリシーとそのアクセス許可の境界の両方で許可されているアクションのみを実行できます。 ・アクセス許可のリソースタグを検討する: タグを使用して、タグ付けをサポートする AWS リソースへのアクセスを制御できます。また、 IAM ユーザーとロールにタグ付けして、ユーザーがアクセスできる内容を制御することもできます。 ベストプラクティスの具体的な解釈(考え方) ベストプラクティスを実現するための具体的な対応策
  28. 28. ② 学習 『最小権限の原則』を実装する 下記の3点を定義する必要あり 1) アクセス権限が必要となる条件 ⇒ 役割(ロール) 2) 実行する具体的なアクション ⇒ API 3) 操作対象のAWSリソース ⇒ ARN(AWS Resource Name) JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 あの 権限 その 権限 この 権限 『この人に与える権限は何?』 特定ユーザーに様々な権限が集まる ま ぜ る な 危 険 『この人が担う役割は何?』 ⇒ 『その役割に必要な権限は何?』 あの 権限 その 権限 この 権限 『役割』 状況で切り替え あの 役割 その 役割 この 役割 ロールごとに必要な権限を割り当てる まずはココの定義から ば ら し て 安 心
  29. 29. 考え方は理解できましたか? (で、具体的にどうやるの?)
  30. 30. JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 ハンズオンの流れ ① 仕込み ↓ ・ CloudFormationでEC2インスタンスをデプロイする ↓ ② 学習 ↓ ・『最小権限の原則』を理解する ↓ ③ 実習 その1 ↓ ・AWS CLI を活用する ↓ ④ 実習 その2 ↓ ・AWS CloudTrail を活用する ↓ ⑤ まとめ 結果が反映されるまで 15~20分くらいかかる ※おーたけ調べ
  31. 31. 『③ 実習 その1』 最小権限の実装にトライ! ※習うより慣れろ!
  32. 32. ③ 実習 その1 まずは役割(ロール)を定義 役割:EC2インスタンスの運用 1) AWS Management Console にて、EC2やVPCなどサービスの状態や設定値を確認(目視) API:閲覧に関係するもの全般 ARN:特に制限なし JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部
  33. 33. ③ 実習 その1 AWS IAM にてロールを作成 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部
  34. 34. ③ 実習 その1 AWS IAM にてロールを作成 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 AWS管理ポリシー 『ReadOnlyAccess』
  35. 35. ③ 実習 その1 AWS IAM にてロールを作成 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 特になし 今回は『EC2-Management』 心を込めてポチッ。
  36. 36. ③ 実習 その1 スイッチロールしてみよう JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 クリック!
  37. 37. ③ 実習 その1 スイッチロールしてみよう JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 ロール名が表示 権限不足にて 起動に失敗する
  38. 38. ③ 実習 その1 役割:EC2インスタンスの運用 ⇒ EC2-Management 1) AWS Management Console にて、EC2やVPCなどサービスの状態や設定値を確認(目視) API:閲覧に関係するもの全般 ⇒ ReadOnlyAccess ARN:特に制限なし JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 IAM Policyの中身 { "Version": "2012-10-17", "Statement": [ { "Action": [ (略) "ec2:Describe*", "ec2:Get*", "ec2:SearchTransitGatewayRoutes", "ec2messages:Get*", (略) ], "Effect": "Allow", "Resource": "*" } ] } EC2の閲覧系全般 すべてのAWSリソース
  39. 39. ③ 実習 その1 役割:EC2インスタンスの運用 ⇒ EC2-Management 1) AWS Management Console にて、EC2やVPCなどサービスの状態や設定値を確認(目視) 2) EC2インスタンスの起動と停止(手動実行) API:閲覧に関係するもの全般 + EC2インスタンスの起動と停止 ⇒ ReadOnlyAccess + カスタムポリシー ARN:特に制限なし JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 New 要追加
  40. 40. ③ 実習 その1 カスタムポリシーを作成する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 EC2インスタンスの起動と停止に 必要なアクションのみを指定する 最小権限の実装を阻む壁 (ぶっちゃけ面倒)
  41. 41. 【朗報】 AWS CloudShell + AWS CLI ↑ この組み合わせが超便利
  42. 42. ③ 実習 その1 AWS CLI を活用する 画面操作の洗い出し ・EC2インスタンスの起動 ・EC2インスタンスの停止 ↓ AWS CLI で再現 ・aws ec2 start-instances ・aws ec2 stop-instances ↓ IAMポリシーに反映 ・EC2 : StartInstances ・EC2 : StopInstances JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 命名規則は比較的シンプル (眺めて傾向をつかもう) https://awscli.amazonaws.com/v2/documentation/api/latest/index.html インスタンスの起動と停止 ・start-instances ・stop-instances 似てるので類推可能
  43. 43. ③ 実習 その1 AWS CLI を活用する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 $ aws start-instances --instance-ids <インスタンスID> $ echo $? $ aws stop-instances --instance-ids <インスタンスID> $ echo $? EC2インスタンスの起動 EC2インスタンスの停止 スイッチロールする前の状態に戻る まずはAdministrator権限のIAMユーザーに戻る ⇒ AWS CloudShellから AWS CLI を実行してみよう
  44. 44. ③ 実習 その1 カスタムポリシーを作成する(再挑戦) JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 2つだけ許可
  45. 45. ③ 実習 その1 カスタムポリシーを作成する(再挑戦) JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 対象のAWSリソースを 絞るときはARNを指定 特になし 今回は『EC2-Management-Policy』
  46. 46. ③ 実習 その1 カスタムポリシーをロールにアタッチする JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 フィルタを使って見つけ出す
  47. 47. ③ 実習 その1 スイッチロールしてみよう(再挑戦) JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 ロール名が表示 EC2インスタンスの 起動に成功する
  48. 48. 都度AWS CLIで再現するの面倒じゃね? (CloudFormationが絡むと心が折れそう)
  49. 49. JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 ハンズオンの流れ ① 仕込み ↓ ・ CloudFormationでEC2インスタンスをデプロイする ↓ ② 学習 ↓ ・『最小権限の原則』を理解する ↓ ③ 実習 その1 ↓ ・AWS CLI を活用する ↓ ④ 実習 その2 ↓ ・AWS CloudTrail を活用する ↓ ⑤ まとめ 結果が反映されるまで 15~20分くらいかかる ※おーたけ調べ
  50. 50. 『④ 実習 その2』 もっと楽なやり方がいい! ※必要は発明の母
  51. 51. ④ 実習 その2 AWS CloudTrail を活用する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 画面操作=APIの実行 (画面の操作履歴=APIの実行履歴) ↓ 『どんなAPIを実行されたのか?』は イベント履歴から判明するのでは!?
  52. 52. ④ 実習 その2 AWS CloudTrail を活用する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 ■ AWS CLI を活用 画面操作の洗い出し ↓ AWS CLI で再現 ↓ IAMポリシーに反映 ■ AWS CloudTrail を活用 画面操作の洗い出し&実行 ↓ AWS CloudTrail から発掘 ↓ IAMポリシーに反映
  53. 53. ④ 実習 その2 AWS CloudTrail を活用する お題:CloudFormationでEC2インスタンスをデプロイするのに必要な権限は何? JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 Launch Stack スタック作成時に使用されたAPIの実行履歴は AWS CloudTrail のイベント履歴に記録されている ⇒ でも、どうやって発掘するの!?
  54. 54. 【再び朗報】 ハンズオン成功祈願しましたよね? ↓ 実はあれ ここ掘れワンワン的イベント です。 ※便宜上『マーカーイベント』と呼びます
  55. 55. ④ 実習 その2 AWS CloudTrail を活用する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 何も考えず3回連続で実行したコマンド イベント名=ListAnalyzers $ aws accessanalyzer list-analyzers マーカーイベント 発掘したいイベント(API)はこの隙間に眠っている!
  56. 56. ④ 実習 その2 AWS CloudTrail を活用する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部
  57. 57. ④ 実習 その2 AWS CloudTrail を活用する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 マーカーイベント ユーザー名とイベントソースを眺めて 関連しそうなイベント(API)を発掘する
  58. 58. ④ 実習 その2 AWS CloudTrail を活用する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 イベントソースより AWS CloudShell のものと判断 → スタック作成とは無関係なので無視でOKなハズ(仮説) イベントソースよりEC2のものと判断 → IAMポリシーのビジュアルエディタで発見できず → 一旦無視していいんじゃね?(仮説) 仮説が正しいかどうかは 実際に試して確認すること!
  59. 59. ④ 実習 その2 役割:EC2インスタンスの運用 ⇒ EC2-Management 1) AWS Management Console にて、EC2やVPCなどサービスの状態や設定値を確認(目視) 2) EC2インスタンスの起動と停止(手動実行) 3) CloudFormation でEC2インスタンスのデプロイ API:閲覧に関係するもの全般 + EC2インスタンスの起動と停止 + スタック作成※ ⇒ ReadOnlyAccess + カスタムポリシー + カスタムポリシー ARN:特に制限なし JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 New ※サンプルのテンプレート『EC2SecurityGroupSample』を利用 さらに追加
  60. 60. あとは君の目で確かめてくれ! (俺たちの戦いはこれからだ!) 作成したものはちゃんと削除すること!
  61. 61. IAMポリシー解答編 ~たぶんこんな感じ~ JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 イベントソース イベント名 ec2.amazonaws.com AuthorizeSecurityGroupIngress CreateSecurityGroup CreateTags RunInstances cloudformation.amazonaws.com DescribeStackEvents DescribeStacks ListStacks CreateStack EC2-Management-Policy_CreateSecurityGroupSample { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "ec2:AuthorizeSecurityGroupIngress", "cloudformation:ListStacks", "cloudformation:DescribeStackEvents", "cloudformation:CreateStack", "ec2:CreateSecurityGroup", "ec2:CreateTags", "ec2:RunInstances", "cloudformation:DescribeStacks" ], "Resource": "*" } ] } ※AWS IAMのビジュアルエディタで作成した結果 IAMロール(EC2-Management)にアタッチ
  62. 62. IAMポリシー解答編 ~たぶんこんな感じ~ 同じCloudFormationテンプレートを使ってスタックを作成してみる JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 スイッチロールは忘れずに! 【注意】同じスタック名は使えないので別な名前を指定 作成できるかな?
  63. 63. ハンズオンの後片付け 作成したものは削除しよう ・CloudFormationのスタックを削除 → 作成したEC2インスタンスやSecurityGroupが削除されます ・IAMロールやIAMポリシー を削除 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部
  64. 64. One more things…
  65. 65. おまけ ~TIPSのような何か~ AWS管理ポリシー ReadOnlyAccess は安全? JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 IAM Policyの中身 { "Version": "2012-10-17", "Statement": [ { "Action": [ (略) "ec2:Describe*", "ec2:Get*", "ec2:SearchTransitGatewayRoutes", "ec2messages:Get*", (略) ], "Effect": "Allow", "Resource": "*" } ] } 閲覧系全般 すべてのAWSリソース 必要が無いデータにもアクセス可能! ⇒ 情報漏洩のリスクと考えることができる AWS Well-Architected フレームワーク SEC 8: 保管時のデータをどのように保護していますか? ベストプラクティス 人をデータから遠ざけるメカニズムを使用する: 通常の運用状況で、すべてのユーザーが機密データおよびシス テムに直接アクセスできないようにします。たとえば、クエリを実 行するデータストアに直接アクセスする代わりにダッシュボードを 提供します。CI/CD パイプラインを使用しない場合は、通常無効 になっている特権アクセスメカニズムを適切に提供するために必 要な制御とプロセスを決定します。
  66. 66. おまけ ~TIPSのような何か~ 厳密には最小権限のIAMポリシーとは『最も絞り込んだ権限』 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 例)許可:特定のEC2インスタンスの起動/停止のみ { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances" ], "Resource": "*" } ] } 【 改善ポイント】 AWSリソースはARNで明示すべし ピンポイントな操作は AWS CLI が捗るやつ! 【注意】 CloudWatch での監視やパフォーマンス分析など AWS ManagementConsole を利用した方が捗る ケースもあるので、使い方はよく吟味しよう。 ワイルドカードは要注意!
  67. 67. おまけ ~TIPSのような何か~ AWS CloudTrail はとにかく面倒 実は奥が深い ・イベント履歴に記録されないAPIがある ・ユーザーガイドなどに一切の説明のないAPIがある JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 記録され方はAPIコールの状況により様々 (次回作のネタかな?)
  68. 68. おまけ ~TIPSのような何か~ 過去資料ですが、関連しそうなので。 JAWS DAYS 2017 【Deep Diveセッション】IAM 権限をこえて ~第二部 policyたち~ JAWS DAYS 2019 【AWSセキュリティ入門】 徒然なるままに責任共有モデルの下から上までそこはかとなく解説 JAWS DAYS 2020 要件定義完了までに一度はやっておきたいAWS Well-Architected Frameworkを使ったレビューのコツ ~やってみてわかった十二の気付き~ JAWS-UG 朝会#13 Permission Boundary をやっと理解できたので誰か聞いてくれ(仮) JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 資料 資料 資料 動画 資料 情報が古かったり、ミスがそのままの場合もあるのでご注意を!
  69. 69. おしまい。

×