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

AWS re:Inforce 2024 re:Cap セミナー ~IAM Access Ana...

平木佳介
June 17, 2024
590

AWS re:Inforce 2024 re:Cap セミナー ~IAM Access Analyzerのアップデートを語ります~

【オフライン世界最速?】 AWS re:Inforce 2024 re:Cap セミナー

平木佳介

June 17, 2024
Tweet

Transcript

  1. 【オフライン世界最速?】 
 AWS re:Inforce 2024 re:Cap セミナー 
 IAM Access

    Analyzerのアップデートを語ります
 クラスメソッド株式会社 AWS事業本部 | 平木 佳介
 
 
 1
  2. 自己紹介 2 ~$ whoami
 平木佳介 (Hiraki Keisuke) 
 ~$
 ~$

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

  3. 6 IAM Access Analyzer のアップデート IAM Access Analyzerが
 未使用のアクセスに対する
 推奨事項をプレビュー表示


    IAM Access Analyzerのカスタムポリシー チェックでパブリックと重要リソースアクセ スのチェックが追加

  4. 7 未使用のアクセスの推奨事項プレビュー表示 (preview) IAM Access Analyzerが
 未使用のアクセスに対する
 推奨事項をプレビュー表示
 IAM Access

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

  5. 12 カスタムポリシーチェックにアクセスチェックの更新 (preview) IAM Access Analyzerのカスタムポリシー チェックでパブリックと重要リソースアクセ スのチェックが追加
 自動推論を利用してパブリックアクセ スや重要リソースアクセスに関するポ

    リシー変更をチェックが可能
 
 • CheckNoPublicAccess(New)
 • CheckAccessNotGranted (Update)
 
 コマンドラインまたはAPI経由で呼び出し、 チェック結果は「PASS」「FAIL」のいずれかと なる

  6. 13 カスタムポリシーチェックにアクセスチェックの更新 (preview) CheckNoPublicAccess CheckAccessNotGranted PASS FAIL PASS FAIL Q.

    パブリックアクセスがあるか
 YES
 NO
 YES
 NO
 Q. 特定リソースへの
 アクセス許可があるか

  7. 14 カスタムポリシーチェックにアクセスチェックの更新 (preview) CheckNoPublicAccess
 ~$ cat <<EOF > 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 <<EOF > 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

  8. 15 カスタムポリシーチェックにアクセスチェックの更新 (preview) CheckAccessNotGranted
 ~$ cat <<EOF > 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 <<EOF > 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

  9. 16 まとめ & 注意事項 • 未使用のアクセスの推奨事項のプレビュー表示
 ◦ 未使用のアクセスを活用し、さらにどのように対処すべきかが一目瞭然となった
 ◦ 今後のIAMロール、ユーザ周りの棚卸の基準にも有効活用できそう


    • カスタムポリシーチェック
 • 事前にポリシーのチェックを行うことで不用意なパブリック公開を避け、アクセスさせた くないリソースへの権限チェックに活用可能
 • CI/CDなどに組み込むことで自動化も可能
 
 注意事項
 • 未使用のアクセスの料金には要注意(1つのIAMロール・ユーザ毎に課金が発生)
 • 2つのアップデートともにプレビュー版のため仕様が変更となる可能性あり

  10. 17