何を書いたか
・ゲートウェイ VPC エンドポイント
・S3 バケットポリシー
・S3 アクセスポイント
・VPC のルートテーブル
・EC2 インスタンスのロールに条件付きポリシー
なぜ書いたか
これら 5 つの機能の違いが混乱し、整理したかったため記事にまとめました。
対象読者
「AWS Certified Solutions Architect - Professional (SAP)認定試験」勉強中の方
AWS問題
ある企業が、大量の IoT デバイスからデータを収集しています。
データは、Amazon S3 データレイクに保存されています。
データサイエンティストは、別の AWS アカウントの VPC にある
2 つのパブリックサブネットで実行されている Amazon EC2 インスタンスで分析を実行します。
データサイエンティストは、EC2 インスタンスからデータレイクにアクセスする必要があります。
EC2 インスタンスには、Amazon S3 へのアクセス権限を持つロールがすでに割り当てられています。
会社のポリシーによれば、許可されたネットワークだけが IoT データにアクセスできます。
これらの要件を満たすために、実行する必要がある手順の組み合わせを選択してください。
(2 つ選択)
A(正解)
データサイエンティストの VPC に Amazon S3 のゲートウェイ VPC エンドポイントを作成します。
E(正解)
s3:DataAccessPointArn 条件キーの値が有効なアクセスポイント ARN である場合に、
s3:GetObject アクションを許可する条件を含む S3 バケットポリシーを追加します。
B(不正解)
データサイエンティストの AWS アカウントに、データレイク用の S3 アクセスポイントを作成します。
D(不正解)
VPC のルートテーブルを更新して、S3 トラフィックを S3 アクセスポイントにルーティングします。
C(不正解)
EC2 インスタンスのロールを更新します。
s3:DataAccessPointArn 条件キーの値が有効なアクセスポイント ARN である場合に、
s3:GetObject アクションを許可する条件付きポリシーを追加します。
問題と解答の理解手順
手順1 問題文の意図をイメージする
会社のポリシーによれば、許可されたネットワークだけが IoT データにアクセスできます。
この内容から、特定のネットワークからのアクセス制限を強調していることが分かります。
手順2 重要なキーワードに注目する
データサイエンティストは、EC2 インスタンスからデータレイクにアクセスする必要があります。
EC2 インスタンスには、Amazon S3 へのアクセス権限を持つロールがすでに割り当てられています。
この部分から、アクセス権限が設定されていることと、ネットワークの制限が必要であることが確認できます。
手順3 正解の分割解説
イメージ図
以下の画像は解答の選択肢をイメージして頂く事を優先する為に添付しましたが、
正確性が完全に保証されているわけではありません。ご了承ください。
E(正解):選択肢E: S3 バケットポリシーでアクセス制限を設定
結論:「入口」を通る為に「S3へのアクセス権限」「S3内のデータをダウンロードする権限」の許可(バケットポリシー)を設定する。
バケットポリシーに「アクセスポイント ARN(Amazonリソースネーム)」を
条件として指定することで、
「S3にアクセスするには許可を持った人(ARNに基づく特定のアクセスルール)でなければ
ならというルールを追加するイメージです。
選択肢A: Amazon S3 ゲートウェイ VPC エンドポイントの作成
結論:S3にアクセスできる専用の「道筋」を設置します。
ゲートウェイエンドポイントを設けることで、データサイエンティストがいるVPCから、
S3にアクセスできる専用の「道筋」を設置します。
これにより、S3に直通する安全なアクセス経路が確保され、
インターネットを経由せずにアクセスできるようになります。
手順4 不正解の選択肢を確認する
B: データサイエンティストのアカウントにS3アクセスポイントを作成
結論:道筋が無いのに、管理だけしている状態。
S3アクセスポイントを作成し、アクセス制御をしようとしています。
しかし、S3アクセスポイントの作成はアクセス管理には役立ちますが、
ネットワークのプライベート接続を確立する方法ではありません。
C: EC2インスタンスのロールに条件付きポリシーを追加
結論:道筋が無いけど通行しても良いと言われた状態。
VPCのルートテーブルを更新し、
S3アクセスポイントへのルーティング設定を追加しようとしています。
しかし、S3にアクセスするためにはVPCエンドポイントが必要です。
ルートテーブルの設定だけではアクセスの経路を作れないです。
D: VPCルートテーブルを更新してS3アクセスポイントにルーティング
結論:道筋が無いけど通行許可だけされた状態。
このポリシーはアクセス権を制御することができますが、
ネットワークレベルでのプライベートアクセス制御(プライベート接続)はできません。
AWS用語説明
イメージ図
以下の画像は解答の選択肢をイメージして頂く事を優先する為に添付しましたが、
正確性が完全に保証されているわけではありません。ご了承ください。
Amazon S3のゲートウェイVPCエンドポイント
VPC(仮想プライベートネットワーク)から、S3 と DynamoDBに直接接続するための設定です。
この接続ではインターネットを経由しないので、安全にS3にアクセスできます。
エンドポイントを設けることで、EC2インスタンスなどがインターネットを経由せずにS3のデータにアクセスできるようになります。
S3バケットポリシー
S3バケットへのアクセスを制限・管理するルールです。
特定のユーザーやリソースに対してアクセスを許可・拒否することができます。
このポリシーにより、アクセス権限を細かくコントロールでき、セキュリティを確保しやすくなります。
S3アクセスポイント
特定の用途やプロジェクトごとに異なるアクセスルールを
設定するためのエントリーポイントです。
S3バケットに複数のアクセスポイントを作成し、
それぞれに異なるポリシーを設定できるので、
大規模なデータアクセス環境の管理が容易になります。
例、プロジェクトA用とB用のアクセスルールを別々に設定できるようになります。
VPCのルートテーブル
VPC内のトラフィックの行き先を決めるためのルールの一覧です。
ルートテーブルを使うことで、VPC内外へのトラフィックの経路を明確にできます。
例、「このトラフィックはインターネットゲートウェイを通る」
「このトラフィックはS3ゲートウェイエンドポイントを通る」などのルート(道筋)を設定できます。
EC2インスタンスに割り当てるIAMロール
特定の条件を満たす場合のみアクセスを許可する「条件付きポリシー」を設定できます。
特定の時間や特定のアクセス経路からのみアクセスを許可するなど、
より細かい制御が可能です。
例、特定のARN(Amazonリソース名)に基づくアクセス許可を設定することができます。
ARN(Amazon Resource Name)
AWSリソース(EC2インスタンス、S3バケット、IAMユーザーなど)を一意に識別するための名前(ID)です。
例、「ある特定のS3バケット」や「特定のEC2インスタンス」を識別するために、
このARNが利用されます。
s3:GetObject
S3バケット内のオブジェクトを取得する(ダウンロードする)権限を与えるアクションです。
参考文献

