SlideShare a Scribd company logo
1 of 69
Download to read offline
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する
Presented by JAWS-UG 初心者支部
~最小権限の原則を実装ってどゆこと?~
担当:おーたけ(JAWS-UG 初心者支部 卒業生)
https://jaws-ug.doorkeeper.jp/events/118447
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/
個人活動
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
ハンズオンの流れ
① 仕込み
↓ ・ CloudFormationでEC2インスタンスをデプロイする
↓
② 学習
↓ ・『最小権限の原則』を理解する
↓
③ 実習 その1
↓ ・AWS CLI を活用する
↓
④ 実習 その2
↓ ・AWS CloudTrail を活用する
↓
⑤ まとめ
結果が反映されるまで
15~20分くらいかかる
※おーたけ調べ
それでは『① 仕込み』から。
① 仕込み
CloudFormationでEC2インスタンスをデプロイ
0) AWS Management Console にログイン
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
【確認ポイント】
・Administrator権限のIAMユーザー
・リージョンは『東京』を選択
① 仕込み
CloudFormationでEC2インスタンスをデプロイ
0) Amazon EC2 のキーペアを確認
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
【確認ポイント】
・任意のキーペアがあること
⇒ 無い場合はキーペアを作ろう
右上のボタン →
今回は名前を『jd2021-wa-iam-policy』で作成
※名前は任意でOK
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
別タブで開きましょう
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
① 仕込み
CloudFormationでEC2インスタンスをデプロイ
3) スタックの作成
① 仕込み
CloudFormationでEC2インスタンスをデプロイ
3) スタックの作成
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
【確認ポイント】
・EC2のキーペアを指定
① 仕込み
CloudFormationでEC2インスタンスをデプロイ
3) スタックの作成
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
① 仕込み
CloudFormationでEC2インスタンスをデプロイ
3) スタックの作成
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
突然ですがハンズオン成功祈願のお時間です。
(前編)
① 仕込み
ハンズオン成功祈願(前編)~AWSCloudShell で 3連続アッパー!!~
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
何も考えず下記コマンドを3回連続で実行
$ aws accessanalyzer list-analyzers
このアイコンをクリック!
AWS CloudShellを起動
(初回実行は起動完了まで少々待つ)
別に他のコマンドでも
OKなんですけどね。
スタック作成に戻ろう。
※成功祈願(前編)は完了
① 仕込み
CloudFormationでEC2インスタンスをデプロイ
3) スタックの作成
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
① 仕込み
CloudFormationでEC2インスタンスをデプロイ
3) スタックの作成
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
スタックの作成が完了するまでしばし待つ
突然ですがハンズオン成功祈願のお時間です。
(後編)
① 仕込み
ハンズオン成功祈願(後編)~AWSCloudShell で 3連続アッパー!!~
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
何も考えず下記コマンドを3回連続で実行
$ aws accessanalyzer list-analyzers
このアイコンをクリック!
AWS CloudShellを起動
(初回実行は起動完了まで少々待つ)
別に他のコマンドでも
OKなんですけどね。
再掲
EC2インスタンスを停止しよう。
※成功祈願(後編)は完了
① 仕込み
CloudFormationでEC2インスタンスをデプロイ
4) デプロイしたEC2インスタンスを停止
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
EC2インスタンスを停止
(手順は割愛)
以上で『① 仕込み』は完了
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
ハンズオンの流れ
① 仕込み
↓ ・ CloudFormationでEC2インスタンスをデプロイする
↓
② 学習
↓ ・『最小権限の原則』を理解する
↓
③ 実習 その1
↓ ・AWS CLI を活用する
↓
④ 実習 その2
↓ ・AWS CloudTrail を活用する
↓
⑤ まとめ
結果が反映されるまで
15~20分くらいかかる
※おーたけ調べ
次に『② 学習』へ。
② 学習
『最小権限の原則』を理解する
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
https://aws.amazon.com/jp/architecture/well-architected/
② 学習
『最小権限の原則』を理解する
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
https://wa.aws.amazon.com/index.ja.html
クリックすると、、、
② 学習
『最小権限の原則』を理解する
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
ベストプラクティス
最小権限のアクセスを付与する:
特定の条件下で特定の AWS リソースに対する特定のアクションを行えるよ
うにして、ID に必要なアクセスのみを付与します。グループと ID 属性を利用
して、個々のユーザーのアクセス許可を定義するのではなく、規模に応じて
アクセス許可を動的に設定します。たとえば、開発者のグループに、扱うプ
ロジェクトのリソースのみを管理することを許可できます。これにより、開発
者がグループから削除されると、アクセスポリシーに変更を加えることなく、
そのグループがどこでアクセスコントロールに使用されたかを問わず、開発
者のアクセスが取り消されます。
② 学習
『最小権限の原則』を理解する
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
ベストプラクティス
最小権限のアクセスを付与する:
特定の条件下で特定の AWS リソースに対する特定のアクションを行えるようにして、ID に必要なアクセスのみを付与します。グループ
と ID 属性を利用して、個々のユーザーのアクセス許可を定義するのではなく、規模に応じてアクセス許可を動的に設定します。たとえ
ば、開発者のグループに、扱うプロジェクトのリソースのみを管理することを許可できます。これにより、開発者がグループから削除さ
れると、アクセスポリシーに変更を加えることなく、そのグループがどこでアクセスコントロールに使用されたかを問わず、開発者のアク
セスが取り消されます。
改善計画
・最小権限ポリシーを実装する: IAM グループおよびロールに最小権限のアクセスポリシーを割り当てて、定義したユーザーのロール
または機能を反映します。
・必要でないアクセス許可を削除する: 不要なアクセス許可を削除して、最小権限を実装します。
・アクセス許可の境界を考慮する: アクセス許可の境界は、アイデンティティベースのポリシーが IAM エンティティに付与できるアクセス
許可の上限を設定する管理ポリシーを使用するための高度な機能です。エンティティのアクセス許可の境界では、アイデンティティベー
スのポリシーとそのアクセス許可の境界の両方で許可されているアクションのみを実行できます。
・アクセス許可のリソースタグを検討する: タグを使用して、タグ付けをサポートする AWS リソースへのアクセスを制御できます。また、
IAM ユーザーとロールにタグ付けして、ユーザーがアクセスできる内容を制御することもできます。
ベストプラクティスの具体的な解釈(考え方)
ベストプラクティスを実現するための具体的な対応策
② 学習
『最小権限の原則』を実装する
下記の3点を定義する必要あり
1) アクセス権限が必要となる条件 ⇒ 役割(ロール)
2) 実行する具体的なアクション ⇒ API
3) 操作対象のAWSリソース ⇒ ARN(AWS Resource Name)
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
あの
権限
その
権限
この
権限
『この人に与える権限は何?』
特定ユーザーに様々な権限が集まる
ま
ぜ
る
な
危
険
『この人が担う役割は何?』 ⇒ 『その役割に必要な権限は何?』
あの
権限
その
権限
この
権限
『役割』
状況で切り替え
あの
役割
その
役割
この
役割
ロールごとに必要な権限を割り当てる
まずはココの定義から
ば
ら
し
て
安
心
考え方は理解できましたか?
(で、具体的にどうやるの?)
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
ハンズオンの流れ
① 仕込み
↓ ・ CloudFormationでEC2インスタンスをデプロイする
↓
② 学習
↓ ・『最小権限の原則』を理解する
↓
③ 実習 その1
↓ ・AWS CLI を活用する
↓
④ 実習 その2
↓ ・AWS CloudTrail を活用する
↓
⑤ まとめ
結果が反映されるまで
15~20分くらいかかる
※おーたけ調べ
『③ 実習 その1』
最小権限の実装にトライ!
※習うより慣れろ!
③ 実習 その1
まずは役割(ロール)を定義
役割:EC2インスタンスの運用
1) AWS Management Console にて、EC2やVPCなどサービスの状態や設定値を確認(目視)
API:閲覧に関係するもの全般
ARN:特に制限なし
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
③ 実習 その1
AWS IAM にてロールを作成
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
③ 実習 その1
AWS IAM にてロールを作成
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
AWS管理ポリシー
『ReadOnlyAccess』
③ 実習 その1
AWS IAM にてロールを作成
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
特になし
今回は『EC2-Management』
心を込めてポチッ。
③ 実習 その1
スイッチロールしてみよう
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
クリック!
③ 実習 その1
スイッチロールしてみよう
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
ロール名が表示
権限不足にて
起動に失敗する
③ 実習 その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リソース
③ 実習 その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
要追加
③ 実習 その1
カスタムポリシーを作成する
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
EC2インスタンスの起動と停止に
必要なアクションのみを指定する
最小権限の実装を阻む壁
(ぶっちゃけ面倒)
【朗報】
AWS CloudShell + AWS CLI
↑
この組み合わせが超便利
③ 実習 その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 似てるので類推可能
③ 実習 その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 を実行してみよう
③ 実習 その1
カスタムポリシーを作成する(再挑戦)
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
2つだけ許可
③ 実習 その1
カスタムポリシーを作成する(再挑戦)
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
対象のAWSリソースを
絞るときはARNを指定
特になし
今回は『EC2-Management-Policy』
③ 実習 その1
カスタムポリシーをロールにアタッチする
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
フィルタを使って見つけ出す
③ 実習 その1
スイッチロールしてみよう(再挑戦)
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
ロール名が表示
EC2インスタンスの
起動に成功する
都度AWS CLIで再現するの面倒じゃね?
(CloudFormationが絡むと心が折れそう)
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
ハンズオンの流れ
① 仕込み
↓ ・ CloudFormationでEC2インスタンスをデプロイする
↓
② 学習
↓ ・『最小権限の原則』を理解する
↓
③ 実習 その1
↓ ・AWS CLI を活用する
↓
④ 実習 その2
↓ ・AWS CloudTrail を活用する
↓
⑤ まとめ
結果が反映されるまで
15~20分くらいかかる
※おーたけ調べ
『④ 実習 その2』
もっと楽なやり方がいい!
※必要は発明の母
④ 実習 その2
AWS CloudTrail を活用する
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
画面操作=APIの実行
(画面の操作履歴=APIの実行履歴)
↓
『どんなAPIを実行されたのか?』は
イベント履歴から判明するのでは!?
④ 実習 その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ポリシーに反映
④ 実習 その2
AWS CloudTrail を活用する
お題:CloudFormationでEC2インスタンスをデプロイするのに必要な権限は何?
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
Launch Stack
スタック作成時に使用されたAPIの実行履歴は
AWS CloudTrail のイベント履歴に記録されている
⇒ でも、どうやって発掘するの!?
【再び朗報】
ハンズオン成功祈願しましたよね?
↓
実はあれ ここ掘れワンワン的イベント です。
※便宜上『マーカーイベント』と呼びます
④ 実習 その2
AWS CloudTrail を活用する
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
何も考えず3回連続で実行したコマンド
イベント名=ListAnalyzers
$ aws accessanalyzer list-analyzers
マーカーイベント
発掘したいイベント(API)はこの隙間に眠っている!
④ 実習 その2
AWS CloudTrail を活用する
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
④ 実習 その2
AWS CloudTrail を活用する
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
マーカーイベント
ユーザー名とイベントソースを眺めて
関連しそうなイベント(API)を発掘する
④ 実習 その2
AWS CloudTrail を活用する
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
イベントソースより AWS CloudShell のものと判断
→ スタック作成とは無関係なので無視でOKなハズ(仮説)
イベントソースよりEC2のものと判断
→ IAMポリシーのビジュアルエディタで発見できず
→ 一旦無視していいんじゃね?(仮説)
仮説が正しいかどうかは
実際に試して確認すること!
④ 実習 その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』を利用
さらに追加
あとは君の目で確かめてくれ!
(俺たちの戦いはこれからだ!)
作成したものはちゃんと削除すること!
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)にアタッチ
IAMポリシー解答編 ~たぶんこんな感じ~
同じCloudFormationテンプレートを使ってスタックを作成してみる
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
スイッチロールは忘れずに!
【注意】同じスタック名は使えないので別な名前を指定
作成できるかな?
ハンズオンの後片付け
作成したものは削除しよう
・CloudFormationのスタックを削除
→ 作成したEC2インスタンスやSecurityGroupが削除されます
・IAMロールやIAMポリシー を削除
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
One more things…
おまけ ~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 パイプラインを使用しない場合は、通常無効
になっている特権アクセスメカニズムを適切に提供するために必
要な制御とプロセスを決定します。
おまけ ~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 を利用した方が捗る
ケースもあるので、使い方はよく吟味しよう。
ワイルドカードは要注意!
おまけ ~TIPSのような何か~
AWS CloudTrail はとにかく面倒 実は奥が深い
・イベント履歴に記録されないAPIがある
・ユーザーガイドなどに一切の説明のないAPIがある
JAWS DAYS 2021 Hands-on
Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~
Presented by JAWS-UG 初心者支部
記録され方はAPIコールの状況により様々
(次回作のネタかな?)
おまけ ~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 初心者支部
資料
資料
資料 動画
資料
情報が古かったり、ミスがそのままの場合もあるのでご注意を!
おしまい。

More Related Content

What's hot

AWS Black Belt Online Seminar 2017 IoT向け最新アーキテクチャパターン
AWS Black Belt Online Seminar 2017 IoT向け最新アーキテクチャパターンAWS Black Belt Online Seminar 2017 IoT向け最新アーキテクチャパターン
AWS Black Belt Online Seminar 2017 IoT向け最新アーキテクチャパターンAmazon Web Services Japan
 
Security Night #1 AWSのセキュリティアプローチとTLS
Security Night #1 AWSのセキュリティアプローチとTLSSecurity Night #1 AWSのセキュリティアプローチとTLS
Security Night #1 AWSのセキュリティアプローチとTLShkiriyam
 
初心者向けWebinar AWS上でのネットワーク構築
初心者向けWebinar AWS上でのネットワーク構築初心者向けWebinar AWS上でのネットワーク構築
初心者向けWebinar AWS上でのネットワーク構築Amazon Web Services Japan
 
170311 JAWS days 2017 fintech
170311 JAWS days 2017 fintech170311 JAWS days 2017 fintech
170311 JAWS days 2017 fintechToshihide Atsumi
 
ユーザーからみたre:Inventのこれまでと今後
ユーザーからみたre:Inventのこれまでと今後ユーザーからみたre:Inventのこれまでと今後
ユーザーからみたre:Inventのこれまでと今後Recruit Technologies
 
これでAWSマスター!? 初心者向けAWS簡単講座
これでAWSマスター!? 初心者向けAWS簡単講座これでAWSマスター!? 初心者向けAWS簡単講座
これでAWSマスター!? 初心者向けAWS簡単講座Serverworks Co.,Ltd.
 
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めようAWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めようAmazon Web Services Japan
 
いまさら聞けないAWSクラウド - Java Festa 2013
いまさら聞けないAWSクラウド - Java Festa 2013いまさら聞けないAWSクラウド - Java Festa 2013
いまさら聞けないAWSクラウド - Java Festa 2013SORACOM, INC
 
Introduction to New CloudWatch Agent
Introduction to New CloudWatch AgentIntroduction to New CloudWatch Agent
Introduction to New CloudWatch AgentNoritaka Sekiyama
 
セキュリティの基本とAWSでのセキュリティ対策をフルコースで味あう
セキュリティの基本とAWSでのセキュリティ対策をフルコースで味あうセキュリティの基本とAWSでのセキュリティ対策をフルコースで味あう
セキュリティの基本とAWSでのセキュリティ対策をフルコースで味あうShinodaYukihiro
 
初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しようAmazon Web Services Japan
 
Amazon guard duty_security_recap
Amazon guard duty_security_recapAmazon guard duty_security_recap
Amazon guard duty_security_recapTomoaki Sakatoku
 
AWS監視ソフトウェアの決定版 Hinemosが実現するAWS統合監視の全て
AWS監視ソフトウェアの決定版 Hinemosが実現するAWS統合監視の全てAWS監視ソフトウェアの決定版 Hinemosが実現するAWS統合監視の全て
AWS監視ソフトウェアの決定版 Hinemosが実現するAWS統合監視の全てHinemos
 
AWS Black Belt Online Seminar 2017 初心者向け クラウドコンピューティング はじめの一歩
AWS Black Belt Online Seminar 2017  初心者向け クラウドコンピューティング はじめの一歩AWS Black Belt Online Seminar 2017  初心者向け クラウドコンピューティング はじめの一歩
AWS Black Belt Online Seminar 2017 初心者向け クラウドコンピューティング はじめの一歩Amazon Web Services Japan
 
スタートアップならおさえておきたいAWS(Amazon Web Services)入門 2限目:基本構成とピーク対策編
スタートアップならおさえておきたいAWS(Amazon Web Services)入門  2限目:基本構成とピーク対策編スタートアップならおさえておきたいAWS(Amazon Web Services)入門  2限目:基本構成とピーク対策編
スタートアップならおさえておきたいAWS(Amazon Web Services)入門 2限目:基本構成とピーク対策編schoowebcampus
 
AWS Blackbelt 2015シリーズ AWS Support / Trusted Advisor
AWS Blackbelt 2015シリーズ AWS Support / Trusted AdvisorAWS Blackbelt 2015シリーズ AWS Support / Trusted Advisor
AWS Blackbelt 2015シリーズ AWS Support / Trusted AdvisorAmazon Web Services Japan
 
JAWS DAYS 2017 [AWSワークショップ] AWS初心者いらっしゃい
JAWS DAYS 2017 [AWSワークショップ] AWS初心者いらっしゃいJAWS DAYS 2017 [AWSワークショップ] AWS初心者いらっしゃい
JAWS DAYS 2017 [AWSワークショップ] AWS初心者いらっしゃいiwata jaws-ug
 

What's hot (20)

AWS Black Belt Online Seminar 2017 IoT向け最新アーキテクチャパターン
AWS Black Belt Online Seminar 2017 IoT向け最新アーキテクチャパターンAWS Black Belt Online Seminar 2017 IoT向け最新アーキテクチャパターン
AWS Black Belt Online Seminar 2017 IoT向け最新アーキテクチャパターン
 
AWS Support
AWS SupportAWS Support
AWS Support
 
Security Night #1 AWSのセキュリティアプローチとTLS
Security Night #1 AWSのセキュリティアプローチとTLSSecurity Night #1 AWSのセキュリティアプローチとTLS
Security Night #1 AWSのセキュリティアプローチとTLS
 
初心者向けWebinar AWS上でのネットワーク構築
初心者向けWebinar AWS上でのネットワーク構築初心者向けWebinar AWS上でのネットワーク構築
初心者向けWebinar AWS上でのネットワーク構築
 
170311 JAWS days 2017 fintech
170311 JAWS days 2017 fintech170311 JAWS days 2017 fintech
170311 JAWS days 2017 fintech
 
ユーザーからみたre:Inventのこれまでと今後
ユーザーからみたre:Inventのこれまでと今後ユーザーからみたre:Inventのこれまでと今後
ユーザーからみたre:Inventのこれまでと今後
 
これでAWSマスター!? 初心者向けAWS簡単講座
これでAWSマスター!? 初心者向けAWS簡単講座これでAWSマスター!? 初心者向けAWS簡単講座
これでAWSマスター!? 初心者向けAWS簡単講座
 
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めようAWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
 
いまさら聞けないAWSクラウド - Java Festa 2013
いまさら聞けないAWSクラウド - Java Festa 2013いまさら聞けないAWSクラウド - Java Festa 2013
いまさら聞けないAWSクラウド - Java Festa 2013
 
AWS Black Belt Online Seminar Antipattern
AWS Black Belt Online Seminar AntipatternAWS Black Belt Online Seminar Antipattern
AWS Black Belt Online Seminar Antipattern
 
Introduction to New CloudWatch Agent
Introduction to New CloudWatch AgentIntroduction to New CloudWatch Agent
Introduction to New CloudWatch Agent
 
AWS Organizations
AWS OrganizationsAWS Organizations
AWS Organizations
 
セキュリティの基本とAWSでのセキュリティ対策をフルコースで味あう
セキュリティの基本とAWSでのセキュリティ対策をフルコースで味あうセキュリティの基本とAWSでのセキュリティ対策をフルコースで味あう
セキュリティの基本とAWSでのセキュリティ対策をフルコースで味あう
 
初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう
 
Amazon guard duty_security_recap
Amazon guard duty_security_recapAmazon guard duty_security_recap
Amazon guard duty_security_recap
 
AWS監視ソフトウェアの決定版 Hinemosが実現するAWS統合監視の全て
AWS監視ソフトウェアの決定版 Hinemosが実現するAWS統合監視の全てAWS監視ソフトウェアの決定版 Hinemosが実現するAWS統合監視の全て
AWS監視ソフトウェアの決定版 Hinemosが実現するAWS統合監視の全て
 
AWS Black Belt Online Seminar 2017 初心者向け クラウドコンピューティング はじめの一歩
AWS Black Belt Online Seminar 2017  初心者向け クラウドコンピューティング はじめの一歩AWS Black Belt Online Seminar 2017  初心者向け クラウドコンピューティング はじめの一歩
AWS Black Belt Online Seminar 2017 初心者向け クラウドコンピューティング はじめの一歩
 
スタートアップならおさえておきたいAWS(Amazon Web Services)入門 2限目:基本構成とピーク対策編
スタートアップならおさえておきたいAWS(Amazon Web Services)入門  2限目:基本構成とピーク対策編スタートアップならおさえておきたいAWS(Amazon Web Services)入門  2限目:基本構成とピーク対策編
スタートアップならおさえておきたいAWS(Amazon Web Services)入門 2限目:基本構成とピーク対策編
 
AWS Blackbelt 2015シリーズ AWS Support / Trusted Advisor
AWS Blackbelt 2015シリーズ AWS Support / Trusted AdvisorAWS Blackbelt 2015シリーズ AWS Support / Trusted Advisor
AWS Blackbelt 2015シリーズ AWS Support / Trusted Advisor
 
JAWS DAYS 2017 [AWSワークショップ] AWS初心者いらっしゃい
JAWS DAYS 2017 [AWSワークショップ] AWS初心者いらっしゃいJAWS DAYS 2017 [AWSワークショップ] AWS初心者いらっしゃい
JAWS DAYS 2017 [AWSワークショップ] AWS初心者いらっしゃい
 

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

【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発lalha
 
[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight
[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight
[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonightAmazon Web Services Japan
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)Daisuke Ikeda
 
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門Amazon Web Services Japan
 
OpsWorks aws-cli#11
OpsWorks aws-cli#11OpsWorks aws-cli#11
OpsWorks aws-cli#11Yuta Shimada
 
AWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターンAWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターンseiichi arai
 
20140924イグレックcioセミナーpublic
20140924イグレックcioセミナーpublic20140924イグレックcioセミナーpublic
20140924イグレックcioセミナーpublicjunkoy66
 
Japan Container Day 2018
Japan Container Day 2018Japan Container Day 2018
Japan Container Day 2018Yoshio Terada
 
20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrail20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrailAmazon Web Services Japan
 
MSPとしてのオペチー向けReadOnly IAMポリシー
MSPとしてのオペチー向けReadOnly IAMポリシーMSPとしてのオペチー向けReadOnly IAMポリシー
MSPとしてのオペチー向けReadOnly IAMポリシーMakoto Miida
 
【HinemosWorld2014】A1-4_クラウドコントロールの最強タッグ Hinemosジョブ管理機能×コマンドラインツール
【HinemosWorld2014】A1-4_クラウドコントロールの最強タッグ Hinemosジョブ管理機能×コマンドラインツール【HinemosWorld2014】A1-4_クラウドコントロールの最強タッグ Hinemosジョブ管理機能×コマンドラインツール
【HinemosWorld2014】A1-4_クラウドコントロールの最強タッグ Hinemosジョブ管理機能×コマンドラインツールHinemos
 
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことAWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことKeisuke Nishitani
 
CloudFront最近の事例と間違った使い方
CloudFront最近の事例と間違った使い方CloudFront最近の事例と間違った使い方
CloudFront最近の事例と間違った使い方Hirokazu Ouchi
 
第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報Midori Oge
 
JAWS DAYS 2015 OpsWorks Aceに聞け
JAWS DAYS 2015 OpsWorks Aceに聞けJAWS DAYS 2015 OpsWorks Aceに聞け
JAWS DAYS 2015 OpsWorks Aceに聞け晋也 古渡
 
AWS_reInforce_2022_reCap_Ja.pdf
AWS_reInforce_2022_reCap_Ja.pdfAWS_reInforce_2022_reCap_Ja.pdf
AWS_reInforce_2022_reCap_Ja.pdfHayato Kiriyama
 
Aws tools for power shellをつかいこなそう
Aws tools for power shellをつかいこなそうAws tools for power shellをつかいこなそう
Aws tools for power shellをつかいこなそうGenta Watanabe
 
AWS Black Belt Online Seminar - Amazon Lightsail
AWS Black Belt Online Seminar - Amazon Lightsail AWS Black Belt Online Seminar - Amazon Lightsail
AWS Black Belt Online Seminar - Amazon Lightsail Amazon Web Services Japan
 

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

Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)
 
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
 
[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight
[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight
[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
 
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
 
OpsWorks aws-cli#11
OpsWorks aws-cli#11OpsWorks aws-cli#11
OpsWorks aws-cli#11
 
AWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターンAWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターン
 
20140924イグレックcioセミナーpublic
20140924イグレックcioセミナーpublic20140924イグレックcioセミナーpublic
20140924イグレックcioセミナーpublic
 
20211109 bleaの使い方(基本編)
20211109 bleaの使い方(基本編)20211109 bleaの使い方(基本編)
20211109 bleaの使い方(基本編)
 
Japan Container Day 2018
Japan Container Day 2018Japan Container Day 2018
Japan Container Day 2018
 
20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrail20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrail
 
MSPとしてのオペチー向けReadOnly IAMポリシー
MSPとしてのオペチー向けReadOnly IAMポリシーMSPとしてのオペチー向けReadOnly IAMポリシー
MSPとしてのオペチー向けReadOnly IAMポリシー
 
【HinemosWorld2014】A1-4_クラウドコントロールの最強タッグ Hinemosジョブ管理機能×コマンドラインツール
【HinemosWorld2014】A1-4_クラウドコントロールの最強タッグ Hinemosジョブ管理機能×コマンドラインツール【HinemosWorld2014】A1-4_クラウドコントロールの最強タッグ Hinemosジョブ管理機能×コマンドラインツール
【HinemosWorld2014】A1-4_クラウドコントロールの最強タッグ Hinemosジョブ管理機能×コマンドラインツール
 
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことAWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべこと
 
CloudFront最近の事例と間違った使い方
CloudFront最近の事例と間違った使い方CloudFront最近の事例と間違った使い方
CloudFront最近の事例と間違った使い方
 
第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報
 
JAWS DAYS 2015 OpsWorks Aceに聞け
JAWS DAYS 2015 OpsWorks Aceに聞けJAWS DAYS 2015 OpsWorks Aceに聞け
JAWS DAYS 2015 OpsWorks Aceに聞け
 
AWS_reInforce_2022_reCap_Ja.pdf
AWS_reInforce_2022_reCap_Ja.pdfAWS_reInforce_2022_reCap_Ja.pdf
AWS_reInforce_2022_reCap_Ja.pdf
 
Aws tools for power shellをつかいこなそう
Aws tools for power shellをつかいこなそうAws tools for power shellをつかいこなそう
Aws tools for power shellをつかいこなそう
 
AWS Black Belt Online Seminar - Amazon Lightsail
AWS Black Belt Online Seminar - Amazon Lightsail AWS Black Belt Online Seminar - Amazon Lightsail
AWS Black Belt Online Seminar - Amazon Lightsail
 

Recently uploaded

クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑Akihiro Kadohata
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptxssuserbefd24
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計atsushi061452
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521Satoshi Makita
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)keikoitakurag
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員Sadaomi Nishi
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose EstimationToru Tamaki
 
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayersToru Tamaki
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )iwashiira2ctf
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdfAyachika Kitazaki
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一瑛一 西口
 

Recently uploaded (11)

クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
 
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 

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

  • 1. JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する Presented by JAWS-UG 初心者支部 ~最小権限の原則を実装ってどゆこと?~ 担当:おーたけ(JAWS-UG 初心者支部 卒業生) https://jaws-ug.doorkeeper.jp/events/118447
  • 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. JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 ハンズオンの流れ ① 仕込み ↓ ・ CloudFormationでEC2インスタンスをデプロイする ↓ ② 学習 ↓ ・『最小権限の原則』を理解する ↓ ③ 実習 その1 ↓ ・AWS CLI を活用する ↓ ④ 実習 その2 ↓ ・AWS CloudTrail を活用する ↓ ⑤ まとめ 結果が反映されるまで 15~20分くらいかかる ※おーたけ調べ
  • 5. ① 仕込み CloudFormationでEC2インスタンスをデプロイ 0) AWS Management Console にログイン JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 【確認ポイント】 ・Administrator権限のIAMユーザー ・リージョンは『東京』を選択
  • 6. ① 仕込み CloudFormationでEC2インスタンスをデプロイ 0) Amazon EC2 のキーペアを確認 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 【確認ポイント】 ・任意のキーペアがあること ⇒ 無い場合はキーペアを作ろう 右上のボタン → 今回は名前を『jd2021-wa-iam-policy』で作成 ※名前は任意でOK
  • 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. JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 ① 仕込み CloudFormationでEC2インスタンスをデプロイ 3) スタックの作成
  • 9. ① 仕込み CloudFormationでEC2インスタンスをデプロイ 3) スタックの作成 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 【確認ポイント】 ・EC2のキーペアを指定
  • 10. ① 仕込み CloudFormationでEC2インスタンスをデプロイ 3) スタックの作成 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部
  • 11. ① 仕込み CloudFormationでEC2インスタンスをデプロイ 3) スタックの作成 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部
  • 13. ① 仕込み ハンズオン成功祈願(前編)~AWSCloudShell で 3連続アッパー!!~ JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 何も考えず下記コマンドを3回連続で実行 $ aws accessanalyzer list-analyzers このアイコンをクリック! AWS CloudShellを起動 (初回実行は起動完了まで少々待つ) 別に他のコマンドでも OKなんですけどね。
  • 15. ① 仕込み CloudFormationでEC2インスタンスをデプロイ 3) スタックの作成 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部
  • 16. ① 仕込み CloudFormationでEC2インスタンスをデプロイ 3) スタックの作成 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 スタックの作成が完了するまでしばし待つ
  • 18. ① 仕込み ハンズオン成功祈願(後編)~AWSCloudShell で 3連続アッパー!!~ JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 何も考えず下記コマンドを3回連続で実行 $ aws accessanalyzer list-analyzers このアイコンをクリック! AWS CloudShellを起動 (初回実行は起動完了まで少々待つ) 別に他のコマンドでも OKなんですけどね。 再掲
  • 20. ① 仕込み CloudFormationでEC2インスタンスをデプロイ 4) デプロイしたEC2インスタンスを停止 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 EC2インスタンスを停止 (手順は割愛)
  • 22. JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 ハンズオンの流れ ① 仕込み ↓ ・ CloudFormationでEC2インスタンスをデプロイする ↓ ② 学習 ↓ ・『最小権限の原則』を理解する ↓ ③ 実習 その1 ↓ ・AWS CLI を活用する ↓ ④ 実習 その2 ↓ ・AWS CloudTrail を活用する ↓ ⑤ まとめ 結果が反映されるまで 15~20分くらいかかる ※おーたけ調べ
  • 24. ② 学習 『最小権限の原則』を理解する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 https://aws.amazon.com/jp/architecture/well-architected/
  • 25. ② 学習 『最小権限の原則』を理解する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 https://wa.aws.amazon.com/index.ja.html クリックすると、、、
  • 26. ② 学習 『最小権限の原則』を理解する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 ベストプラクティス 最小権限のアクセスを付与する: 特定の条件下で特定の AWS リソースに対する特定のアクションを行えるよ うにして、ID に必要なアクセスのみを付与します。グループと ID 属性を利用 して、個々のユーザーのアクセス許可を定義するのではなく、規模に応じて アクセス許可を動的に設定します。たとえば、開発者のグループに、扱うプ ロジェクトのリソースのみを管理することを許可できます。これにより、開発 者がグループから削除されると、アクセスポリシーに変更を加えることなく、 そのグループがどこでアクセスコントロールに使用されたかを問わず、開発 者のアクセスが取り消されます。
  • 27. ② 学習 『最小権限の原則』を理解する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 ベストプラクティス 最小権限のアクセスを付与する: 特定の条件下で特定の AWS リソースに対する特定のアクションを行えるようにして、ID に必要なアクセスのみを付与します。グループ と ID 属性を利用して、個々のユーザーのアクセス許可を定義するのではなく、規模に応じてアクセス許可を動的に設定します。たとえ ば、開発者のグループに、扱うプロジェクトのリソースのみを管理することを許可できます。これにより、開発者がグループから削除さ れると、アクセスポリシーに変更を加えることなく、そのグループがどこでアクセスコントロールに使用されたかを問わず、開発者のアク セスが取り消されます。 改善計画 ・最小権限ポリシーを実装する: IAM グループおよびロールに最小権限のアクセスポリシーを割り当てて、定義したユーザーのロール または機能を反映します。 ・必要でないアクセス許可を削除する: 不要なアクセス許可を削除して、最小権限を実装します。 ・アクセス許可の境界を考慮する: アクセス許可の境界は、アイデンティティベースのポリシーが IAM エンティティに付与できるアクセス 許可の上限を設定する管理ポリシーを使用するための高度な機能です。エンティティのアクセス許可の境界では、アイデンティティベー スのポリシーとそのアクセス許可の境界の両方で許可されているアクションのみを実行できます。 ・アクセス許可のリソースタグを検討する: タグを使用して、タグ付けをサポートする AWS リソースへのアクセスを制御できます。また、 IAM ユーザーとロールにタグ付けして、ユーザーがアクセスできる内容を制御することもできます。 ベストプラクティスの具体的な解釈(考え方) ベストプラクティスを実現するための具体的な対応策
  • 28. ② 学習 『最小権限の原則』を実装する 下記の3点を定義する必要あり 1) アクセス権限が必要となる条件 ⇒ 役割(ロール) 2) 実行する具体的なアクション ⇒ API 3) 操作対象のAWSリソース ⇒ ARN(AWS Resource Name) JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 あの 権限 その 権限 この 権限 『この人に与える権限は何?』 特定ユーザーに様々な権限が集まる ま ぜ る な 危 険 『この人が担う役割は何?』 ⇒ 『その役割に必要な権限は何?』 あの 権限 その 権限 この 権限 『役割』 状況で切り替え あの 役割 その 役割 この 役割 ロールごとに必要な権限を割り当てる まずはココの定義から ば ら し て 安 心
  • 30. JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 ハンズオンの流れ ① 仕込み ↓ ・ CloudFormationでEC2インスタンスをデプロイする ↓ ② 学習 ↓ ・『最小権限の原則』を理解する ↓ ③ 実習 その1 ↓ ・AWS CLI を活用する ↓ ④ 実習 その2 ↓ ・AWS CloudTrail を活用する ↓ ⑤ まとめ 結果が反映されるまで 15~20分くらいかかる ※おーたけ調べ
  • 32. ③ 実習 その1 まずは役割(ロール)を定義 役割:EC2インスタンスの運用 1) AWS Management Console にて、EC2やVPCなどサービスの状態や設定値を確認(目視) API:閲覧に関係するもの全般 ARN:特に制限なし JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部
  • 33. ③ 実習 その1 AWS IAM にてロールを作成 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部
  • 34. ③ 実習 その1 AWS IAM にてロールを作成 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 AWS管理ポリシー 『ReadOnlyAccess』
  • 35. ③ 実習 その1 AWS IAM にてロールを作成 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 特になし 今回は『EC2-Management』 心を込めてポチッ。
  • 36. ③ 実習 その1 スイッチロールしてみよう JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 クリック!
  • 37. ③ 実習 その1 スイッチロールしてみよう JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 ロール名が表示 権限不足にて 起動に失敗する
  • 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. ③ 実習 その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. ③ 実習 その1 カスタムポリシーを作成する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 EC2インスタンスの起動と停止に 必要なアクションのみを指定する 最小権限の実装を阻む壁 (ぶっちゃけ面倒)
  • 41. 【朗報】 AWS CloudShell + AWS CLI ↑ この組み合わせが超便利
  • 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. ③ 実習 その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. ③ 実習 その1 カスタムポリシーを作成する(再挑戦) JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 2つだけ許可
  • 45. ③ 実習 その1 カスタムポリシーを作成する(再挑戦) JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 対象のAWSリソースを 絞るときはARNを指定 特になし 今回は『EC2-Management-Policy』
  • 46. ③ 実習 その1 カスタムポリシーをロールにアタッチする JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 フィルタを使って見つけ出す
  • 47. ③ 実習 その1 スイッチロールしてみよう(再挑戦) JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 ロール名が表示 EC2インスタンスの 起動に成功する
  • 49. JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 ハンズオンの流れ ① 仕込み ↓ ・ CloudFormationでEC2インスタンスをデプロイする ↓ ② 学習 ↓ ・『最小権限の原則』を理解する ↓ ③ 実習 その1 ↓ ・AWS CLI を活用する ↓ ④ 実習 その2 ↓ ・AWS CloudTrail を活用する ↓ ⑤ まとめ 結果が反映されるまで 15~20分くらいかかる ※おーたけ調べ
  • 51. ④ 実習 その2 AWS CloudTrail を活用する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 画面操作=APIの実行 (画面の操作履歴=APIの実行履歴) ↓ 『どんなAPIを実行されたのか?』は イベント履歴から判明するのでは!?
  • 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. ④ 実習 その2 AWS CloudTrail を活用する お題:CloudFormationでEC2インスタンスをデプロイするのに必要な権限は何? JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 Launch Stack スタック作成時に使用されたAPIの実行履歴は AWS CloudTrail のイベント履歴に記録されている ⇒ でも、どうやって発掘するの!?
  • 55. ④ 実習 その2 AWS CloudTrail を活用する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 何も考えず3回連続で実行したコマンド イベント名=ListAnalyzers $ aws accessanalyzer list-analyzers マーカーイベント 発掘したいイベント(API)はこの隙間に眠っている!
  • 56. ④ 実習 その2 AWS CloudTrail を活用する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部
  • 57. ④ 実習 その2 AWS CloudTrail を活用する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 マーカーイベント ユーザー名とイベントソースを眺めて 関連しそうなイベント(API)を発掘する
  • 58. ④ 実習 その2 AWS CloudTrail を活用する JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 イベントソースより AWS CloudShell のものと判断 → スタック作成とは無関係なので無視でOKなハズ(仮説) イベントソースよりEC2のものと判断 → IAMポリシーのビジュアルエディタで発見できず → 一旦無視していいんじゃね?(仮説) 仮説が正しいかどうかは 実際に試して確認すること!
  • 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』を利用 さらに追加
  • 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. IAMポリシー解答編 ~たぶんこんな感じ~ 同じCloudFormationテンプレートを使ってスタックを作成してみる JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 スイッチロールは忘れずに! 【注意】同じスタック名は使えないので別な名前を指定 作成できるかな?
  • 63. ハンズオンの後片付け 作成したものは削除しよう ・CloudFormationのスタックを削除 → 作成したEC2インスタンスやSecurityGroupが削除されます ・IAMロールやIAMポリシー を削除 JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部
  • 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. おまけ ~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. おまけ ~TIPSのような何か~ AWS CloudTrail はとにかく面倒 実は奥が深い ・イベント履歴に記録されないAPIがある ・ユーザーガイドなどに一切の説明のないAPIがある JAWS DAYS 2021 Hands-on Well-ArchitectedなIAMポリシーに挑戦する ~最小権限の原則を実装ってどゆこと?~ Presented by JAWS-UG 初心者支部 記録され方はAPIコールの状況により様々 (次回作のネタかな?)
  • 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 初心者支部 資料 資料 資料 動画 資料 情報が古かったり、ミスがそのままの場合もあるのでご注意を!