Slide 1

Slide 1 text

【オフライン世界最速?】 
 AWS re:Inforce 2024 re:Cap セミナー 
 IAM Access Analyzerのアップデートを語ります
 クラスメソッド株式会社 AWS事業本部 | 平木 佳介
 
 
 1

Slide 2

Slide 2 text

自己紹介 2 ~$ whoami
 平木佳介 (Hiraki Keisuke) 
 ~$
 ~$ jobs
 [2]+ 実行中 クラスメソッド(株)AWS事業本部コンサルティング部 
 ~$
 ~$ groups
 ソリューションアーキテクト 
 ~$
 ~$ cat 平木佳介.conf | grep 趣味
 趣味: 旅行/推し事 
 ~$
 ~$ cat 平木佳介.conf | grep 好きなAWSサービス
 好きなAWSサービス : AWS Security Hub 


Slide 3

Slide 3 text

3 人生初 海外&AWSイベント参加しました

Slide 4

Slide 4 text

4 キーノートや様々なセッションなどにも現地参加


Slide 5

Slide 5 text

5 私たちは、ゼロトラストをさらに簡単かつ コスト効率の高いものにするための機 能に投資している
 
 ゼロトラストには、詳細かつきめ細かい アクセス制御、継続的な検証、最小限 の特権アクセスを備えた強力なIDおよ びアクセス管理システムも必要
 
 多くの組織は、ワークロードとデータを ハイブリッド環境で使用しているため、 統一したセキュリティポリシーを維持す ることが困難になっている(翻訳)


Slide 6

Slide 6 text

6 IAM Access Analyzer のアップデート IAM Access Analyzerが
 未使用のアクセスに対する
 推奨事項をプレビュー表示
 IAM Access Analyzerのカスタムポリシー チェックでパブリックと重要リソースアクセ スのチェックが追加


Slide 7

Slide 7 text

7 未使用のアクセスの推奨事項プレビュー表示 (preview) IAM Access Analyzerが
 未使用のアクセスに対する
 推奨事項をプレビュー表示
 IAM Access Analyzerの
 「未使用のアクセス」にて、どのように 修正すべきかの推奨事項が表示
 
 検出結果タイプが2種類に分かれる
 ● 未使用のロール/パスワード/アク セスキー
 ● 未使用の許可
 
 最小権限の設定に役立つ。


Slide 8

Slide 8 text

8 未使用のアクセスの推奨事項プレビュー表示 (preview)

Slide 9

Slide 9 text

9 未使用のアクセスの推奨事項プレビュー表示 (preview) 未使用の許可


Slide 10

Slide 10 text

10 未使用のアクセスの推奨事項プレビュー表示 (preview) 未使用の許可


Slide 11

Slide 11 text

11 未使用のアクセスの推奨事項プレビュー表示 (preview) 未使用のロール


Slide 12

Slide 12 text

12 カスタムポリシーチェックにアクセスチェックの更新 (preview) IAM Access Analyzerのカスタムポリシー チェックでパブリックと重要リソースアクセ スのチェックが追加
 自動推論を利用してパブリックアクセ スや重要リソースアクセスに関するポ リシー変更をチェックが可能
 
 ● CheckNoPublicAccess(New)
 ● CheckAccessNotGranted (Update)
 
 コマンドラインまたはAPI経由で呼び出し、 チェック結果は「PASS」「FAIL」のいずれかと なる


Slide 13

Slide 13 text

13 カスタムポリシーチェックにアクセスチェックの更新 (preview) CheckNoPublicAccess CheckAccessNotGranted PASS FAIL PASS FAIL Q. パブリックアクセスがあるか
 YES
 NO
 YES
 NO
 Q. 特定リソースへの
 アクセス許可があるか


Slide 14

Slide 14 text

14 カスタムポリシーチェックにアクセスチェックの更新 (preview) CheckNoPublicAccess
 ~$ cat < bucket-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::your-bucket-name/*" } ] } EOF ~$ ~$ aws accessanalyzer check-no-public-access \ --policy-document file://bucket-policy.json \ --resource-type AWS::S3::Bucket --output json { "result": "FAIL", "message": "The resource policy grants public access for the given resource type.", "reasons": [ { "description": "Public access granted in the following statement with index: 0.", "statementIndex": 0 } ] } ~$ cat < bucket-policy-new.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::your-bucket-name/*" } ] } EOF ~$ ~$ aws accessanalyzer check-no-public-access \ --policy-document file://bucket-policy-new.json \ --resource-type AWS::S3::Bucket --output json { "result": "PASS", "message": "The resource policy does not grant public access for the given resource type." } FAIL
 PASS


Slide 15

Slide 15 text

15 カスタムポリシーチェックにアクセスチェックの更新 (preview) CheckAccessNotGranted
 ~$ cat < iam-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::your-bucket-name/*" } ] } EOF ~$ ~$ aws accessanalyzer check-access-not-granted --policy-document file://iam-policy.json \ --access resources="arn:aws:s3:::your-bucket-name/*" \ --policy-type IDENTITY_POLICY --output json { "result": "FAIL", "message": "The policy document grants access to perform one or more of the listed actions or resources.", "reasons": [ { "description": "One or more of the listed actions or resources in the statement with index: 0.", "statementIndex": 0 } ] } ~$ cat < iam-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::your-bucket-name/*" } ] } EOF ~$ ~$ aws accessanalyzer check-access-not-granted --policy-document file://iam-policy.json \ --access resources="arn:aws:s3:::recap-securebucket/*" \ --policy-type IDENTITY_POLICY --output json { "result": "PASS", "message": "The policy document does not grant access to perform the listed actions or resources." } FAIL
 PASS


Slide 16

Slide 16 text

16 まとめ & 注意事項 ● 未使用のアクセスの推奨事項のプレビュー表示
 ○ 未使用のアクセスを活用し、さらにどのように対処すべきかが一目瞭然となった
 ○ 今後のIAMロール、ユーザ周りの棚卸の基準にも有効活用できそう
 ● カスタムポリシーチェック
 ● 事前にポリシーのチェックを行うことで不用意なパブリック公開を避け、アクセスさせた くないリソースへの権限チェックに活用可能
 ● CI/CDなどに組み込むことで自動化も可能
 
 注意事項
 ● 未使用のアクセスの料金には要注意(1つのIAMロール・ユーザ毎に課金が発生)
 ● 2つのアップデートともにプレビュー版のため仕様が変更となる可能性あり


Slide 17

Slide 17 text

17