510-AWS SAP AWS 「理論・実践・一問道場」タグ プレフィックス

 

理論

S3アクセス制御とログ管理のベストプラクティス


1. S3へのユーザーごとのアクセス制御

  • IAM条件キーの活用:
    • aws:PrincipalTag/userNameを利用して、ユーザーごとにプレフィックス(フォルダ)を分離。
    • 例: ユーザー「Alice」にはbucket/Alice/以下のみアクセスを許可。
  • IAM Identity Center(旧AWS SSO)の統合:
    • IAM Identity Centerのカスタム権限セットで、自動的にユーザー名タグを適用し、動的なアクセス制御を実現。

2. アクセスログの収集と可視化

  • AWS CloudTrail:
    • S3データイベントを有効化することで、どのユーザーがどのオブジェクトにアクセスしたかを詳細に記録。
    • 例: GetObject(読み取り)やPutObject(書き込み)の操作ログ。
  • Amazon Athenaでのログ解析:
    • CloudTrailログをS3に保存し、Athenaを使って簡単にクエリを実行。
    • ユーザー別のアクセス状況や月次レポートを自動生成可能。

3. ベストプラクティスまとめ

  1. ユーザーごとにアクセスを分離: IAM条件キーでS3プレフィックスを制御。
  1. ログ収集と監査: CloudTrailでデータイベントを記録し、Athenaでレポート化。
  1. 最小権限の原則: 必要最低限のアクセス権限のみを付与。
これらを組み合わせることで、安全で効率的なデータ管理とログ監査が可能です。

実践

一問道場

質問 #510

ある企業が、データサイエンティストが仕事関連の文書を保存できる単一のAmazon S3バケットを作成したいと考えています。この企業はAWS IAM Identity Center(旧AWS SSO)を使用してすべてのユーザーを認証しています。また、データサイエンティスト用のグループが作成されています。
この企業は以下を実現したいと考えています:
  1. データサイエンティストが自分の作業にのみアクセスできるようにすること。
  1. 各ユーザーがどの文書にアクセスしたかを示す月次レポートを作成すること。
これらの要件を満たすためには、どの手順の組み合わせが適切ですか?(2つ選択してください

選択肢
A. カスタムIAM Identity Center権限セットを作成し、データサイエンティストに自分のユーザー名タグ(aws:PrincipalTag/userName)に一致するS3バケットプレフィックスへのアクセス権限を付与します。ポリシーで条件を使用し、パスを「aws:PrincipalTag/userName/*」に制限します。
B. データサイエンティストグループ用のIAM Identity Centerロールを作成し、そのロールにAmazon S3の読み取りアクセスおよび書き込みアクセスを付与します。また、IAM Identity Centerロールへのアクセスを許可するS3バケットポリシーを追加します。
C. AWS CloudTrailを設定してS3データイベントをログに記録し、ログをS3バケットに配信します。Amazon Athenaを使用して、Amazon S3に保存されたCloudTrailログにクエリを実行し、レポートを生成します。
D. AWS CloudTrailを設定してS3管理イベントをCloudWatchに記録します。Amazon AthenaのCloudWatchコネクタを使用してログにクエリを実行し、レポートを生成します。
E. S3アクセスログをEMRファイルシステム(EMRFS)に有効化します。Amazon S3 Selectを使用してログにクエリを実行し、レポートを生成します。

解説

この問題では、以下の2つの要件を満たす必要があります:
  1. データサイエンティストごとに独立したアクセス権
      • 各データサイエンティストが自分のプレフィックス(パス)にのみアクセスできるようにする。
      • これにより、他のユーザーのデータを保護できる。
  1. アクセスログの収集とレポート作成
      • どのユーザーがどの文書にアクセスしたかを記録し、月次レポートとして確認できるようにする。
以下に各選択肢の詳細な分析を示します。

選択肢の分析

A. カスタムIAM Identity Center権限セットでアクセス制御

  • 解説: IAM Identity Centerのカスタム権限セットを使用し、データサイエンティストに「ユーザー名に基づくプレフィックス」のみアクセス可能なポリシーを設定する方法です。IAMの条件キーaws:PrincipalTag/userNameを使用して、アクセスをユーザー名タグで制限することができます。
    • 例:
      • ユーザー「Alice」は「s3://bucket/Alice/」以下にのみアクセス可能。
      • ユーザー「Bob」は「s3://bucket/Bob/」以下にのみアクセス可能。
    • メリット: 各ユーザーが他のユーザーのデータにアクセスできなくなり、要件を満たします。
  • 評価: 正解

B. IAM Identity CenterロールとS3バケットポリシーでアクセス制御

  • 解説: IAM Identity Centerロールをグループに付与し、Amazon S3の読み取り/書き込みアクセス権を付与する方法です。ただし、この方法では全てのデータサイエンティストがS3バケット全体にアクセス可能になります。他のユーザーのデータにアクセスできてしまうため、要件に反します。
  • 評価: 不正解

C. AWS CloudTrailとAthenaでログ収集・レポート生成

  • 解説: AWS CloudTrailを使用してS3のデータイベント(データレベルの操作)を記録し、そのログをAthenaでクエリする方法です。CloudTrailは、誰がどのオブジェクトにアクセスしたか(GetObjectやPutObjectなど)を詳細に記録できます。Athenaを使用することで、簡単に月次レポートを生成可能です。
  • 評価: 正解

D. CloudTrail管理イベントをCloudWatchでクエリ

  • 解説: S3管理イベント(バケット作成や削除など)をCloudTrailで記録し、CloudWatchを介してAthenaでクエリする方法です。しかし、この方法は「データイベント」ではなく「管理イベント」のみを記録するため、特定のオブジェクトへのアクセス(GetObjectやPutObject)は記録されません。月次レポート要件を満たせません。
  • 評価: 不正解

E. S3アクセスログとS3 Selectでレポート生成

  • 解説: S3アクセスログをEMRFSに保存し、S3 Selectを使用してログをクエリする方法です。ただし、S3アクセスログはCloudTrailと比べて粒度が粗く、アクセス者(IAMユーザーやロール)を特定するのが難しい場合があります。また、S3 Selectは複雑なクエリ処理に不向きです。
  • 評価: 不正解

正解: A, C


解決策の流れ

  1. A: カスタムIAM Identity Center権限セット
      • 各データサイエンティストが、自分のS3プレフィックスにのみアクセス可能になるよう設定。
      • aws:PrincipalTag/userName条件キーを使用。
  1. C: AWS CloudTrailとAthenaでのレポート作成
      • CloudTrailでS3データイベントをログに記録し、Athenaでクエリを実行して、アクセスログをレポート化。
      • 誰がどのデータにアクセスしたかを詳細に追跡可能。
この組み合わせにより、セキュアなデータ管理アクセスログの可視化を両立できます。
512-AWS SAP AWS 「理論・実践・一問道場」MAM509-AWS SAP AWS 「理論・実践・一問道場」マルチリージョン
Loading...
minami
minami
みなみの成長 🐝
Announcement

🎉 ブログへようこそ 🎉

名前: みなみ一人会社
性別:
国籍: China 🇨🇳
政治スタンス: 民主主義支持者
完全独学で基本情報技術者をはじめ、32個の資格を仕事をしながら取得。
現在はIT会社で技術担当として働きながら、ブログ執筆や学習支援にも取り組んでいます。
独学で合格できる学習法や勉強法、試験対策を発信中!

📚 発信内容

  • 💻 IT・システム開発
  • 🏠 不動産 × 宅建士
  • 🎓 MBA 学習記録