S3 on Outposts で IAM を設定する
AWS Identity and Access Management (IAM) は、管理者が AWS リソースへのアクセスを安全に制御するために役立つ AWS のサービスです。IAM 管理者は、誰を認証 (サインイン) し、誰に Amazon S3 on Outposts リソースの使用を承認する (アクセス許可を付与する) かを制御します。IAM は、追加費用なしで使用できる AWS のサービス です。デフォルトでは、ユーザーは S3 on Outposts リソースとオペレーションへのアクセス許可を持っていません。S3 on Outposts リソースと API オペレーションへのアクセス許可を付与するには、IAM を使用してユーザー、グループ、またはロールを作成し、アクセス許可をアタッチできます。
アクセス権限を付与するには、ユーザー、グループ、またはロールにアクセス許可を追加します。
-
AWS IAM Identity Center のユーザーとグループ:
アクセス許可セットを作成します。「AWS IAM Identity Center ユーザーガイド」の「権限設定を作成する」の手順に従ってください。
-
IAM 内で、ID プロバイダーによって管理されているユーザー:
ID フェデレーションのロールを作成します。詳細については、「IAM ユーザーガイド」の「サードパーティー ID プロバイダー (フェデレーション) 用のロールの作成」を参照してください。
-
IAM ユーザー:
-
ユーザーが担当できるロールを作成します。手順については、「IAM ユーザーガイド」の「IAM ユーザー用ロールの作成」を参照してください。
-
(お奨めできない方法) ポリシーをユーザーに直接アタッチするか、ユーザーをユーザーグループに追加する。詳細については、「IAM ユーザーガイド」の「ユーザー (コンソール) へのアクセス権限の追加」を参照してください。
-
S3 on Outposts では、IAM ID ベースのポリシーだけでなく、バケットポリシーとアクセスポイントポリシーの両方もサポートしています。バケットポリシーとアクセスポイントポリシーは、S3 on Outposts リソースにアタッチされた、リソースベースのポリシーです。
-
バケットポリシーはバケットにアタッチされ、そのバケットとバケット内のオブジェクトへのリクエストを、ポリシー内の要素に基づいて許可または拒否します。
-
対照的に、アクセスポイントポリシーはアクセスポイントにアタッチされるもので、そのアクセスポイントへのリクエストを許可または拒否します。
アクセスポイントポリシーは、基盤 S3 on Outposts バケットにアタッチされているバケットポリシーと連動します。アプリケーションやユーザーが、S3 on Outposts アクセスポイントを介して S3 on Outposts にあるオブジェクトにアクセスするためには、アクセスポイントポリシーとバケットポリシーの両方でリクエストを許可している必要があります。
アクセスポイントポリシーに含めた制限は、そのアクセスポイントを介したリクエストにのみ適用されます。例えば、アクセスポイントがバケットにアタッチされている場合、そのバケットに直接送られリクエストを、アクセスポイントポリシーを使用して許可または拒否することはできません。ただし、バケットポリシーで制限を適用することで、バケットに対して直接送られる、またはアクセスポイントを介して送られるリクエストの両方を、許可または拒否することが可能です。
IAM ポリシーまたはリソースベースのポリシーで、どの S3 on Outposts アクションを許可または拒否するかを定義します。S3 on Outposts での各アクションは、S3 on Outposts の特定の API オペレーションに対応しています。S3 on Outposts では、s3-outposts:
名前空間が使用されます。AWS リージョン での S3 on Outposts コントロール API へのリクエストと、Outpost 上のオブジェクト API エンドポイントへのリクエストに対しては、IAM を使用した認証が行われ、s3-outposts:
名前空間のプレフィックスが承認されます。S3 on Outposts を使用するには、IAM ユーザーを設定し、s3-outposts:
IAM 名前空間に対して認可します。
詳細については、「サービス認可リファレンス」の「S3 on Outposts のアクション、リソース、および条件キー」を参照してください。
注記
-
S3 on Outposts では、アクセスコントロールリスト (ACL) はサポートされていません。
-
S3 on Outposts は、バケットの所有者がオブジェクトにアクセスしたり削除したりができなくなることを防ぐために、デフォルトでバケット所有者をオブジェクト所有者として設定します。
-
S3 on Outposts では、オブジェクトがパブリックアクセスできないようにするために、常に S3 ブロックパブリックアクセスが有効になっています。
S3 on Outposts 用の IAM の設定については、以下のトピックを参照してください。
トピック
S3 on Outposts ポリシーのプリンシパル
リソースベースのポリシーを作成して、S3 on Outposts バケットへのアクセスを許可するには、Principal
要素を使用して、そのリソースでのアクションまたはオペレーションに対してリクエストが可能な、ユーザーまたはアプリケーションを指定する必要があります。S3 on Outposts ポリシーには、以下のプリンシパルのいずれかが使用できます。
-
AWS アカウント
-
IAM ユーザー
-
IAM ロール
-
アクセスを特定の IP 範囲に制限するために
Condition
要素を使用するポリシー内でワイルドカード文字 (*) を指定することによる、すべてのプリンシパル
重要
ポリシーに、アクセスを特定の IP アドレス範囲に制限するための Condition
を含めない限り、Principal
要素内でワイルドカード文字 (*
) を使用して S3 on Outposts バケットのポリシーを記述することはできません。この制限により、S3 on Outposts バケットへのパブリックアクセスを、確実に防止することができます。例については、「S3 on Outposts のポリシー例」を参照してください。
Principal
要素の詳細については、「IAM ユーザーガイド」の「AWS JSON ポリシーの要素: Principal」を参照してください。
S3 on Outposts のリソース ARN
S3 on Outposts の Amazon リソースネーム (ARN) には、Outpost が属する AWS リージョン、AWS アカウント ID、およびリソース名に加えて、Outposts ID が含まれます。Outposts バケットとオブジェクトにアクセスしてアクションを実行するには、次の表に示すいずれかの ARN 形式を使用する必要があります。
ARN の
値は AWS リージョン グループのことを指します。それぞれの AWS アカウント は 1 つのパーティションです。サポートされているパーティションは以下のとおりです。partition
-
aws
– AWS リージョン -
aws-us-gov
- AWS GovCloud (US) リージョン
次の表は、S3 on Outposts ARN 形式を示しています。
Amazon S3 on Outposts の ARN | ARN 形式 | 例 |
---|---|---|
バケット ARN | arn: |
arn: |
アクセスポイント ARN | arn: |
arn: |
オブジェクト ARN | arn: |
arn: |
S3 on Outposts アクセスポイント オブジェクトの ARN (ポリシーで使用) | arn: |
arn: |
S3 on Outposts の ARN | arn: |
arn: |
S3 on Outposts のポリシー例
例 : AWS アカウント のプリンシパルを使用する S3 on Outposts バケットポリシー
次のバケットポリシーは、AWS アカウント プリンシパルを使用して、S3 on Outposts バケットへのアクセスを許可します。このバケットポリシーを実行するには、
をユーザー自身の情報に置き換えます。user
input placeholders
{ "Version":"2012-10-17", "Id":"ExampleBucketPolicy1", "Statement":[ { "Sid":"statement1", "Effect":"Allow", "Principal":{ "AWS":"
123456789012
" }, "Action":"s3-outposts:*", "Resource":"arn:aws:s3-outposts:region
:123456789012
:outpost/op-01ac5d28a6a232904
/bucket/example-outposts-bucket
" } ] }
例 : ワイルドカードプリンシパル (*
) とアクセスを特定の IP アドレス範囲に制限する条件キーを使用する、S3 on Outposts バケットポリシー
次のバケットポリシーは、ワイルドカードプリンシパル (*
) を、アクセスを特定の IP アドレス範囲に制限する 条件とともに使用しています。このバケットポリシーを実行するには、
をユーザー自身の情報に置き換えます。user input
placeholders
{ "Version": "2012-10-17", "Id": "ExampleBucketPolicy2", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS" : "*" }, "Action":"s3-outposts:*", "Resource":"arn:aws:s3-outposts:
region
:123456789012
:outpost/op-01ac5d28a6a232904
/bucket/example-outposts-bucket
", "Condition" : { "IpAddress" : { "aws:SourceIp": "192.0.2.0/24" }, "NotIpAddress" : { "aws:SourceIp": "198.51.100.0/24" } } } ] }
S3 on Outposts エンドポイントの許可
S3 on Outposts には、S3 on Outposts のエンドポイントアクションを管理するために、IAM に独自の許可が必要です。
注記
-
お客様所有の IP アドレスプール (CoIP プール) アクセスタイプを使用するエンドポイントの場合、次の表示に示す通り、CoIP プールから IP アドレスで機能するアクセス権限を保有する必要があります。
-
AWS Resource Access Manager を使って S3 on Outposts にアクセスする共有アカウントの場合では、共有アカウントのユーザーは共有サブネット上に独自のエンドポイントを作成できません。共有アカウントのユーザーが独自のエンドポイントを管理する場合、共有アカウントは Outpost に独自のサブネットを作成する必要があります。詳細については、「AWS RAM を使用して S3 on Outposts を共有する」を参照してください。
次の表は、S3 on Outposts エンドポイントに関連する S3 の IAM 許可を示しています。
アクション | IAM アクセス許可 |
---|---|
CreateEndpoint |
オンプレミスのお客様所有の IP アドレスプール (CoIP プール) アクセスタイプを使用しているエンドポイントの場合、次の追加のアクセス許可が必要です。
|
DeleteEndpoint |
オンプレミスのお客様所有の IP アドレスプール (CoIP プール) アクセスタイプを使用しているエンドポイントの場合、次の追加のアクセス許可が必要です。
|
ListEndpoints |
|
注記
IAM ポリシーでリソースタグを使用すると、アクセス許可を管理できます。
S3 on Outposts でのサービスにリンクされたロール
S3 on Outposts は IAM サービスにリンクされたロールを使用して、ユーザーに代わっていくつかのネットワークリソースを作成します。詳細については、「Amazon S3 on Outposts でのサービスにリンクされたロールの使用」を参照してください。