S3 on Outposts で IAM を設定する - Amazon Simple Storage Service

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 を使用してユーザーグループ、またはロールを作成し、アクセス許可をアタッチできます。

アクセス権限を付与するには、ユーザー、グループ、またはロールにアクセス許可を追加します。

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 名前空間に対して認可します。

詳細については、「サービス認証リファレンス」の「Amazon 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 の partition 値は AWS リージョン グループのことを指します。それぞれの AWS アカウント は 1 つのパーティションです。サポートされているパーティションは以下のとおりです。

  • aws – AWS リージョン

  • aws-us-gov - AWS GovCloud (US) リージョン

S3 on Outposts の ARN 形式
Amazon S3 on Outposts の ARN ARN 形式
バケット ARN arn:partition:s3-outposts:region:​account_id:​outpost/outpost_id/bucket/bucket_name arn:aws:s3-outposts:us-west-2:123456789012:​outpost/op-01ac5d28a6a232904/bucket/amzn-s3-demo-bucket1
アクセスポイント ARN arn:partition:s3-outposts:region:​account_id:​outpost/outpost_id/accesspoint/accesspoint_name arn:aws:s3-outposts:us-west-2:123456789012:​outpost/op-01ac5d28a6a232904/accesspoint/access-point-name
オブジェクト ARN arn:partition:s3-outposts:region:​account_id:​outpost/outpost_id/bucket/bucket_name/object/object_key arn:aws:s3-outposts:us-west-2:123456789012:​outpost/op-01ac5d28a6a232904/bucket/amzn-s3-demo-bucket1/object/myobject
S3 on Outposts アクセスポイント オブジェクトの ARN (ポリシーで使用) arn:partition:s3-outposts:region:​account_id:​outpost/outpost_id/accesspoint/accesspoint_name/object/object_key arn:aws:s3-outposts:us-west-2:123456789012:​outpost/op-01ac5d28a6a232904/accesspoint/access-point-name/object/myobject
S3 on Outposts の ARN arn:partition:s3-outposts:region:​account_id:​outpost/outpost_id arn:aws:s3-outposts:us-west-2:123456789012:​outpost/op-01ac5d28a6a232904

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 エンドポイントに関連する IAM 許可
アクション IAM アクセス許可
CreateEndpoint

s3-outposts:CreateEndpoint

ec2:CreateNetworkInterface

ec2:DescribeNetworkInterfaces

ec2:DescribeVpcs

ec2:DescribeSecurityGroups

ec2:DescribeSubnets

ec2:CreateTags

iam:CreateServiceLinkedRole

オンプレミスのお客様所有の IP アドレスプール (CoIP プール) アクセスタイプを使用しているエンドポイントの場合、次の追加のアクセス許可が必要です。

s3-outposts:CreateEndpoint

ec2:DescribeCoipPools

ec2:GetCoipPoolUsage

ec2:AllocateAddress

ec2:AssociateAddress

ec2:DescribeAddresses

ec2:DescribeLocalGatewayRouteTableVpcAssociations

DeleteEndpoint

s3-outposts:DeleteEndpoint

ec2:DeleteNetworkInterface

ec2:DescribeNetworkInterfaces

オンプレミスのお客様所有の IP アドレスプール (CoIP プール) アクセスタイプを使用しているエンドポイントの場合、次の追加のアクセス許可が必要です。

s3-outposts:DeleteEndpoint

ec2:DisassociateAddress

ec2:DescribeAddresses

ec2:ReleaseAddress

ListEndpoints

s3-outposts:ListEndpoints

注記

IAM ポリシーでリソースタグを使用すると、アクセス許可を管理できます。

S3 on Outposts でのサービスにリンクされたロール

S3 on Outposts は IAM サービスにリンクされたロールを使用して、ユーザーに代わっていくつかのネットワークリソースを作成します。詳細については、「Amazon S3 on Outposts でのサービスにリンクされたロールの使用」を参照してください。