使用 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 建立使用者群組角色,並附加許可。

若要提供存取權,請新增權限至您的使用者、群組或角色:

  • 使用者和群組位於 AWS IAM Identity Center:

    建立權限合集。請按照 AWS IAM Identity Center 使用者指南 中的 建立權限合集 說明進行操作。

  • 透過身分提供者在 IAM 中管理的使用者:

    建立聯合身分的角色。請按照 IAM 使用者指南為第三方身分提供者 (聯合) 建立角色 中的指示進行操作。

  • IAM 使用者:

除了 IAM 身分型政策外,S3 on Outposts 也同時支援儲存貯體和存取點政策。儲存貯體政策與存取點政策是連接到 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: 命名空間字首。在 Outposts 控制 API 上向 S3 發出的請求,以 AWS 區域 及對 Outpost 上的物件 API 端點發出的請求會使用 IAM 進行身份驗證,並根據s3-outposts:命名空間前綴進行授權。若要使用 S3 on Outposts,請設定您的 IAM 使用者,並針對 s3-outposts: IAM 命名空間授權使用者。

如需詳細資訊,請參閱《服務授權參考》中的「S3 on Outposts 的動作、資源和條件金鑰」。

注意
  • S3 on Outposts 不支援存取控制清單 (ACL)。

  • Posts 上的 S3 預設會將儲存貯體擁有者做為物件擁有者,以協助確保儲存貯體的擁有者無法存取或刪除物件。

  • Outpost 上的 S3 一律會啟用 S3 封鎖公有存取權限,以協助確保物件永遠不會有公有存取權限。

如需有關 S3 on Outposts 設定 IAM 的詳細資訊,請參下列主題。

適用於 S3 on Outposts 政策的主體

當您建立資源型政策以授予 S3 on Outposts 儲存貯體的存取權時,您必須使用 Principal 元素來指定可對該資源提出動作或操作請求的人員或應用程式。對於 S3 on Outposts 政策,您可以使用下列其中一項主體:

  • 一個 AWS 帳戶

  • IAM 使用者

  • IAM 角色

  • 政策中使用 Condition 元素來限制對特定 IP 範圍存取的所有主體 (指定萬用字元 *)

重要

您無法針對在 Principal 元素中使用萬用字元 (*) 的 S3 on Outposts 儲存貯體來撰寫政策,除非該政策還包含限制對特定 IP 地址範圍存取的 Condition。此限制協助確保無法公有存取 S3 on Outposts 儲存貯體。如需範例,請參閱適用於 S3 on Outposts 的範例政策

如需有關 Principal 元素的詳細資訊,請參閱《IAM 使用者指南》中的「AWS JSON 政策元素:主體」。

適用於 S3 on Outposts 的資源 ARN

Outposts S3 的 Amazon 資源名稱 (ARN) 除了前哨所在地、ID 和資源名稱之外,還包含前哨 AWS 帳戶 識別碼。 AWS 區域 若要存取並對 Outposts 儲存貯體和物件執行動作,您必須使用下表中顯示的其中一個 ARN 格式。

ARN 中的partition值是指的是一組 AWS 區域。每個分區 AWS 帳戶 的範圍都是一個分區。以下是支援的分割區:

  • 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/example-s3-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/example-s3-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 的範例政策

範例 :S3 在 Outposts 存儲桶政策上具有主體 AWS 帳戶

下列儲存貯體政策使用 AWS 帳戶 主體授與 Outposts 儲存貯體上 S3 的存取權。若要使用此儲存貯體政策,請以您自己的資訊取代 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" } ] }
範例 :使用萬用字元 (*) 主體和條件金鑰的 S3 on Outposts 儲存貯體政策,以限制對特定 IP 地址範圍的存取

下列儲存貯體政策使用萬用字元主體 (*) 搭配 aws:SourceIp 條件以限制對特定 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 需要 IAM 中擁有的許可,來管理 S3 on Outposts 端點動作。

注意
  • 對於使用客戶擁有的 IP 地址集區 (CoIP 集區) 存取類型的端點,您也必須具有從 CoIP 集區使 IP 地址的許可,如下表所述。

  • 對於在 Outposts 上使用存取 S3 的共用帳戶 AWS Resource Access Manager,這些共用帳戶中的使用者無法在共用子網路上建立自己的端點。如果共用帳戶中的使用者想要管理自己的端點,則共用帳戶必須在 Outpost 上建立自己的子網路。如需詳細資訊,請參閱 通過使用在 Outposts 上共享 S3 AWS RAM

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 使用服務連結角色