在 Outposts 上IAM使用 S3 設置 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 Outposts 上IAM使用 S3 設置

AWS Identity and Access Management (IAM) 可協助系統管理員安全地控制 AWS 資源存取權。 AWS 服務 IAM管理員控制誰可以通過身份驗證 (登入) 和授權 (有權限) 在 Outposts 資源上使用 Amazon S3。IAM是您 AWS 服務 可以免費使用的。根據預設,使用者不具備 S3 on Outposts 資源和操作的許可。若要在 Outposts 資源和API操作上授與 S3 的存取權限,您可以使用建立IAM使用群組角色以及附加權限。

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

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

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

  • IAM透過身分識別提供者管理的使用者:

    建立聯合身分的角色。請遵循《使用指南》中的〈為第三方身分識別提供IAM者 (同盟) 建立角色〉中的指示進行。

  • IAM使用者:

    • 建立您的使用者可擔任的角色。請按照《用戶南》中的「為IAM用戶創建角色」中的IAM說明進行操作。

    • (不建議) 將政策直接附加至使用者,或將使用者新增至使用者群組。請遵循《使用指南》中的「向使用者 (主控台) 新增權限」IAM 中的示進行。

除了以IAM身分識別為基礎的政策之外,Outposts 上的 S3 還支援儲存貯體和存取點政策。儲存貯體政策與存取點政策是連接到 S3 on Outposts 資源的資源型政策

  • 儲存貯體政策連接到儲存貯體,並根據政策中的元素來允許或拒絕對儲存貯體和其中物件的請求。

  • 相比之下,存取點原則連接到存取點,並允許或拒絕對存取點的要求。

存取點政策可搭配連接到基礎 S3 on Outposts 儲存貯體的儲存貯體政策。若要讓應用程式或使用者能夠透過 S3 on Outposts 存取點來存取 S3 on Outposts 儲存貯體中的物件,則存取點政策和儲存貯體政策皆必須允許該請求。

您在存取點政策中包含的限制僅適用透過該存取點進行的請求。例如,如果存取點連接到儲存貯體,則無法使用存取點政策來允許或拒絕直接向儲存貯體提出的請求。不過,您套用至儲存貯體政策的限制可能會允許或拒絕直接向儲存貯體或透過存取點提出的請求。

在IAM政策或以資源為基礎的政策中,您可以定義允許或拒絕哪些 S3 在 Outposts 上的動作。Outposts 動作上的 S3 對應於 Outposts API 操作上的特定 S3。S3 on Outposts 動作會使用 s3-outposts: 命名空間字首。API在 Outpost 上對 S3 控制項發出的請求 AWS 區域 和對 Outpost 上的物件API端點發出的請求會使用s3-outposts:命名空間前綴進行驗證IAM和授權。若要在 Outposts 上使用 S3,請設定您的IAM使用者並針對s3-outposts:IAM命名空間授權他們。

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

注意
  • Outposts 上的 S3 不支援存取控制清單 (ACLs)。

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

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

如需在 Outposts 上設IAM定 S3 的詳細資訊,請參閱下列主題。

適用於 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原則元素:主參與者

Out ARNs posts S3 的資源

Outposts 上 S3 的 Amazon 資源名稱 (ARNs) 除了前哨所設定的前哨 ID、ID 和資源名稱之外,還包含前哨 AWS 帳戶 ID。 AWS 區域 若要存取並對 Outposts 值區和物件執行動作,您必須使用下表所示的其中一ARN種格式。

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

  • aws – AWS 區域

  • aws-us-gov— AWS GovCloud (US) 地區

S3 在 Outposts ARN 格式
Outposts 上的 Amazon S3 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
Outposts 存取點物件上的 S3 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
Outposts 上的 S3 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 端點的許可

Outposts 上的 S3 需要自己的許可IAM才能在 Outposts 端點上管理 S3。

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

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

Outposts 端IAM點相關許可上的 S3
動作 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 的服務連結角色

Outposts 上的 S3 使用IAM服務連結角色代表您建立一些網路資源。如需更多詳細資訊,請參閱 針對 Amazon S3 on Outposts 使用服務連結角色