選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

S3 Access Grants 跨帳户存取權

焦點模式
S3 Access Grants 跨帳户存取權 - Amazon Simple Storage Service

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

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

透過 S3 存取授權,您可以將 Amazon S3 資料存取權授予下列對象:

  • AWS Identity and Access Management 您帳戶中的 (IAM) 身分

  • 其他 AWS 帳戶中的 IAM 身分

  • 您 AWS IAM Identity Center 執行個體中的目錄使用者或群組

首先,設定另一個帳戶的跨帳戶存取權。這包括使用資源政策來授予對 S3 存取授權執行個體的存取權。然後,使用授權來授予對 S3 資料 (儲存貯體、字首或物件) 的存取權。

設定跨帳戶存取權之後,另一個帳戶可以向 Amazon S3 存取授權請求 S3 資料的臨時存取憑證。下圖顯示透過 S3 存取授權跨帳戶 S3 存取的使用者流程:

S3 存取授權跨帳户使用者流程
  1. 第二個帳戶 (B) 中的使用者或應用程式會向 Amazon S3 資料儲存所在帳戶 (A) 中的 S3 存取授權執行個體請求憑證。如需詳細資訊,請參閱透過 S3 Access Grants 請求存取 Amazon S3 資料

  2. 如果授權第二個帳戶存取您的 Amazon S3 資料,則您帳戶 (A) 中的 S3 存取授權執行個體會傳回臨時憑證。如需存取授權的詳細資訊,請參閱在 S3 存取授權中使用授權

  3. 第二個帳戶 (B) 中的使用者或應用程式使用 S3 存取授權提供的憑證來存取您帳戶 (A) 中的 S3 資料。

設定 S3 存取授權的跨帳戶存取權

若要透過 S3 存取授權授予跨帳戶 S3 存取權,請遵循下列步驟:

  • 步驟 1:在您的帳戶 (例如帳戶 ID 111122223333) 中設定 S3 資料儲存所在的 S3 存取授權執行個體。

  • 步驟 2:在您的帳戶 111122223333 中設定 S3 存取授權執行個體的資源政策,以授予第二個帳戶 (例如帳戶 ID 444455556666) 的存取權。

  • 步驟 3:在第二個帳戶 444455556666 中設定 IAM 主體的 IAM 許可,向您帳戶 111122223333 中的 S3 存取授權執行個體請求憑證。

  • 步驟 4:在您的帳戶 111122223333 中建立授權,授權第二個帳戶 444455556666 中的 IAM 主體存取您帳戶 111122223333 中的一些 S3 資料。

步驟 1:在您的帳戶中設定 S3 存取授權執行個體

首先,您的帳戶 111122223333 中必須具有 S3 存取授權執行個體,才能管理對 Amazon S3 資料的存取。您必須在要共用之 S3 資料儲存所在的每個 AWS 區域 中建立 S3 存取授權執行個體。如果您要在多個 中共用資料 AWS 區域,請為每個 重複這些組態步驟 AWS 區域。如果您在存放 S3 資料的 中已有 AWS 區域 S3 Access Grants 執行個體,請繼續下一個步驟。如果您尚未設定 S3 存取授權執行個體,請參閱使用 S3 存取授權執行個體以完成此步驟。

步驟 2:設定 S3 存取授權執行個體的資源政策,以授予跨帳戶存取權

在您的帳戶 111122223333 中建立 S3 存取授權執行個體以取得跨帳戶存取權之後,請在您的帳戶 111122223333 中設定 S3 存取授權執行個體的資源型政策,以授予跨帳戶存取權。S3 Access Grants 執行個體本身可支援資源型政策。使用正確的資源型政策,您可以將 AWS Identity and Access Management (IAM) 使用者或角色的存取權從其他 AWS 帳戶 授予 S3 Access Grants 執行個體。跨帳戶存取權只會授予下列許可 (動作):

  • s3:GetAccessGrantsInstanceForPrefix — 使用者、角色或應用程式可以擷取包含特定字首的 S3 存取授權執行個體。

  • s3:ListAccessGrants

  • s3:ListAccessLocations

  • s3:ListCallerAccessGrants

  • s3:GetDataAccess — 使用者、角色或應用程式可以根據您透過 S3 存取授權取得的存取權請求臨時憑證。使用這些憑證即可存取您已取得存取權的 S3 資料。

您可以選擇要將這些當中的哪些許可包含在資源政策中。S3 存取授權執行個體上的這個資源政策是一般資源型政策,可提供與 IAM 政策語言相同的支援。在相同的政策中,您可以使用 aws:PrincipalArn 條件等方式將存取權授予帳戶 111122223333 中的特定 IAM 主體,但使用 S3 存取授權就不需要這樣做。反之,在您的 S3 存取授權執行個體中,您可以為帳戶中的個別 IAM 身分以及為其他帳戶建立授權。透過 S3 存取授權管理每個存取授權,就可以擴展許可。

如果您已使用 AWS Resource Access Manager (AWS RAM),則可以使用它來與其他帳戶或在組織內共用您的 s3:AccessGrants 資源。如需詳細資訊,請參閱使用共用 AWS 資源。如果您不使用 AWS RAM,也可以使用 S3 Access Grants API 操作或 AWS Command Line Interface () 新增資源政策AWS CLI。

我們建議您使用 AWS Resource Access Manager (AWS RAM) 主控台與其他帳戶或組織內的 共用s3:AccessGrants資源。若要跨帳戶共用 S3 存取授權,請執行下列步驟:

若要設定 S3 存取授權執行個體資源政策:
  1. 登入 AWS Management Console 並開啟位於 https://Amazon S3 主控台。 https://console.aws.amazon.com/s3/

  2. AWS 區域 從選擇 AWS 區域 器中選取 。

  3. 從左側導覽窗格,選取存取授權

  4. 在存取授權執行個體頁面的此帳戶中的執行個體區段中,選取共用執行個體。這會將您重新導向至 AWS RAM 主控台。

  5. 選取建立資源共用

  6. 依照 AWS RAM 步驟建立資源共享。如需詳細資訊,請參閱在 中建立資源共用 AWS RAM

我們建議您使用 AWS Resource Access Manager (AWS RAM) 主控台與其他帳戶或組織內的 共用s3:AccessGrants資源。若要跨帳戶共用 S3 存取授權,請執行下列步驟:

若要設定 S3 存取授權執行個體資源政策:
  1. 登入 AWS Management Console 並開啟位於 https://Amazon S3 主控台。 https://console.aws.amazon.com/s3/

  2. AWS 區域 從選擇 AWS 區域 器中選取 。

  3. 從左側導覽窗格,選取存取授權

  4. 在存取授權執行個體頁面的此帳戶中的執行個體區段中,選取共用執行個體。這會將您重新導向至 AWS RAM 主控台。

  5. 選取建立資源共用

  6. 依照 AWS RAM 步驟建立資源共享。如需詳細資訊,請參閱在 中建立資源共用 AWS RAM

若要安裝 AWS CLI,請參閱AWS Command Line Interface 《 使用者指南》中的安裝 AWS CLI

您可以使用 put-access-grants-instance-resource-policy CLI 命令來新增資源政策。

如果您想要將帳戶 111122223333 中 S3 存取授權執行個體的跨帳戶存取權授予第二個帳戶 444455556666,您帳戶 111122223333 中 S3 存取授權執行個體的資源政策應授予第二個帳戶 444455556666 執行下列動作的許可:

  • s3:ListAccessGrants

  • s3:ListAccessGrantsLocations

  • s3:GetDataAccess

  • s3:GetAccessGrantsInstanceForPrefix

在 S3 存取授權執行個體資源政策中,將 S3 存取授權執行個體的 ARN 指定為 Resource,並將第二個帳戶 444455556666 指定為 Principal。若要使用下列範例,請以您自己的資訊取代 使用者輸入預留位置

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "444455556666" }, "Action": [ "s3:ListAccessGrants", "s3:ListAccessGrantsLocations", "s3:GetDataAccess", "s3:GetAccessGrantsInstanceForPrefix" ], "Resource": "arn:aws:s3:us-east-2:111122223333:access-grants/default" } ] }

若要新增或更新 S3 存取授權執行個體資源政策,請使用下列命令。當您使用下列範例命令時,請以您自己的資訊取代 user input placeholders

範例 新增或更新 S3 存取授權執行個體資源政策
aws s3control put-access-grants-instance-resource-policy \ --account-id 111122223333 \ --policy file://resourcePolicy.json \ --region us-east-2 { "Policy": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"AWS\": \"444455556666\"\n },\n \"Action\": [\n \"s3:ListAccessGrants\",\n \"s3:ListAccessGrantsLocations\",\n \"s3:GetDataAccess\",\n \"s3:GetAccessGrantsInstanceForPrefix\",\n \"s3:ListCallerAccessGrants"\n ],\n \"Resource\": \"arn:aws:s3:us-east-2:111122223333:access-grants/default\"\n }\n ]\n }\n", "CreatedAt": "2023-06-16T00:07:47.473000+00:00" }
範例 取得 S3 Access Grants 資源政策

您也可以使用 CLI 來取得或刪除 S3 存取授權執行個體的資源政策。

若要取得 S3 存取授權資源政策,請使用下列範例命令。若要使用此範例命令,請以您自己的資訊取代 user input placeholders

aws s3control get-access-grants-instance-resource-policy \ --account-id 111122223333 \ --region us-east-2 { "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::111122223333:root\"},\"Action\":[\"s3:ListAccessGrants\",\"s3:ListAccessGrantsLocations\",\"s3:GetDataAccess\",\"s3:GetAccessGrantsInstanceForPrefix\",\"s3:ListCallerAccessGrants\"],\"Resource\":\"arn:aws: s3:us-east-2:111122223333:access-grants/default\"}]}", "CreatedAt": "2023-06-16T00:07:47.473000+00:00" }
範例 刪除 S3 Access Grants 資源政策

若要刪除 S3 存取授權資源政策,請使用下列範例命令。若要使用此範例命令,請以您自己的資訊取代 user input placeholders

aws s3control delete-access-grants-instance-resource-policy \ --account-id 111122223333 \ --region us-east-2 // No response body

若要安裝 AWS CLI,請參閱AWS Command Line Interface 《 使用者指南》中的安裝 AWS CLI

您可以使用 put-access-grants-instance-resource-policy CLI 命令來新增資源政策。

如果您想要將帳戶 111122223333 中 S3 存取授權執行個體的跨帳戶存取權授予第二個帳戶 444455556666,您帳戶 111122223333 中 S3 存取授權執行個體的資源政策應授予第二個帳戶 444455556666 執行下列動作的許可:

  • s3:ListAccessGrants

  • s3:ListAccessGrantsLocations

  • s3:GetDataAccess

  • s3:GetAccessGrantsInstanceForPrefix

在 S3 存取授權執行個體資源政策中,將 S3 存取授權執行個體的 ARN 指定為 Resource,並將第二個帳戶 444455556666 指定為 Principal。若要使用下列範例,請以您自己的資訊取代 使用者輸入預留位置

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "444455556666" }, "Action": [ "s3:ListAccessGrants", "s3:ListAccessGrantsLocations", "s3:GetDataAccess", "s3:GetAccessGrantsInstanceForPrefix" ], "Resource": "arn:aws:s3:us-east-2:111122223333:access-grants/default" } ] }

若要新增或更新 S3 存取授權執行個體資源政策,請使用下列命令。當您使用下列範例命令時,請以您自己的資訊取代 user input placeholders

範例 新增或更新 S3 存取授權執行個體資源政策
aws s3control put-access-grants-instance-resource-policy \ --account-id 111122223333 \ --policy file://resourcePolicy.json \ --region us-east-2 { "Policy": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"AWS\": \"444455556666\"\n },\n \"Action\": [\n \"s3:ListAccessGrants\",\n \"s3:ListAccessGrantsLocations\",\n \"s3:GetDataAccess\",\n \"s3:GetAccessGrantsInstanceForPrefix\",\n \"s3:ListCallerAccessGrants"\n ],\n \"Resource\": \"arn:aws:s3:us-east-2:111122223333:access-grants/default\"\n }\n ]\n }\n", "CreatedAt": "2023-06-16T00:07:47.473000+00:00" }
範例 取得 S3 Access Grants 資源政策

您也可以使用 CLI 來取得或刪除 S3 存取授權執行個體的資源政策。

若要取得 S3 存取授權資源政策,請使用下列範例命令。若要使用此範例命令,請以您自己的資訊取代 user input placeholders

aws s3control get-access-grants-instance-resource-policy \ --account-id 111122223333 \ --region us-east-2 { "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::111122223333:root\"},\"Action\":[\"s3:ListAccessGrants\",\"s3:ListAccessGrantsLocations\",\"s3:GetDataAccess\",\"s3:GetAccessGrantsInstanceForPrefix\",\"s3:ListCallerAccessGrants\"],\"Resource\":\"arn:aws: s3:us-east-2:111122223333:access-grants/default\"}]}", "CreatedAt": "2023-06-16T00:07:47.473000+00:00" }
範例 刪除 S3 Access Grants 資源政策

若要刪除 S3 存取授權資源政策,請使用下列範例命令。若要使用此範例命令,請以您自己的資訊取代 user input placeholders

aws s3control delete-access-grants-instance-resource-policy \ --account-id 111122223333 \ --region us-east-2 // No response body

您可以使用 PutAccessGrantsInstanceResourcePolicy API 來新增資源政策。

如果您想要將帳戶 111122223333 中 S3 存取授權執行個體的跨帳戶存取權授予第二個帳戶 444455556666,您帳戶 111122223333 中 S3 存取授權執行個體的資源政策應授予第二個帳戶 444455556666 執行下列動作的許可:

  • s3:ListAccessGrants

  • s3:ListAccessGrantsLocations

  • s3:GetDataAccess

  • s3:GetAccessGrantsInstanceForPrefix

在 S3 存取授權執行個體資源政策中,將 S3 存取授權執行個體的 ARN 指定為 Resource,並將第二個帳戶 444455556666 指定為 Principal。若要使用下列範例,請以您自己的資訊取代 使用者輸入預留位置

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "444455556666" }, "Action": [ "s3:ListAccessGrants", "s3:ListAccessGrantsLocations", "s3:GetDataAccess", "s3:GetAccessGrantsInstanceForPrefix" ], "Resource": "arn:aws:s3:us-east-2:111122223333:access-grants/default" } ] }

然後,您可以使用 PutAccessGrantsInstanceResourcePolicy API 來設定政策。

如需為 S3 存取授權執行個體更新、取得或刪除資源政策的 REST API 支援資訊,請參閱 Amazon Simple Storage Service API 參考中的下列各節:

您可以使用 PutAccessGrantsInstanceResourcePolicy API 來新增資源政策。

如果您想要將帳戶 111122223333 中 S3 存取授權執行個體的跨帳戶存取權授予第二個帳戶 444455556666,您帳戶 111122223333 中 S3 存取授權執行個體的資源政策應授予第二個帳戶 444455556666 執行下列動作的許可:

  • s3:ListAccessGrants

  • s3:ListAccessGrantsLocations

  • s3:GetDataAccess

  • s3:GetAccessGrantsInstanceForPrefix

在 S3 存取授權執行個體資源政策中,將 S3 存取授權執行個體的 ARN 指定為 Resource,並將第二個帳戶 444455556666 指定為 Principal。若要使用下列範例,請以您自己的資訊取代 使用者輸入預留位置

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "444455556666" }, "Action": [ "s3:ListAccessGrants", "s3:ListAccessGrantsLocations", "s3:GetDataAccess", "s3:GetAccessGrantsInstanceForPrefix" ], "Resource": "arn:aws:s3:us-east-2:111122223333:access-grants/default" } ] }

然後,您可以使用 PutAccessGrantsInstanceResourcePolicy API 來設定政策。

如需為 S3 存取授權執行個體更新、取得或刪除資源政策的 REST API 支援資訊,請參閱 Amazon Simple Storage Service API 參考中的下列各節:

本節提供 AWS SDK 範例,說明如何設定 S3 Access Grants 資源政策,以授予第二個 AWS 帳戶存取您的部分 S3 資料。

Java

新增、更新、取得或刪除資源政策,以管理對 S3 Access Rents 執行個體的跨帳户存取權。

範例 新增或更新 S3 存取授權執行個體資源政策

如果您想要將帳戶 111122223333 中 S3 存取授權執行個體的跨帳戶存取權授予第二個帳戶 444455556666,您帳戶 111122223333 中 S3 存取授權執行個體的資源政策應授予第二個帳戶 444455556666 執行下列動作的許可:

  • s3:ListAccessGrants

  • s3:ListAccessGrantsLocations

  • s3:GetDataAccess

  • s3:GetAccessGrantsInstanceForPrefix

在 S3 存取授權執行個體資源政策中,將 S3 存取授權執行個體的 ARN 指定為 Resource,並將第二個帳戶 444455556666 指定為 Principal。若要使用下列範例,請以您自己的資訊取代 使用者輸入預留位置

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "444455556666" }, "Action": [ "s3:ListAccessGrants", "s3:ListAccessGrantsLocations", "s3:GetDataAccess", "s3:GetAccessGrantsInstanceForPrefix" ], "Resource": "arn:aws:s3:us-east-2:111122223333:access-grants/default" } ] }

若要新增或更新 S3 存取授權執行個體資源政策,請使用下列程式碼範例:

public void putAccessGrantsInstanceResourcePolicy() { PutAccessGrantsInstanceResourcePolicyRequest putRequest = PutAccessGrantsInstanceResourcePolicyRequest.builder() .accountId(111122223333) .policy(RESOURCE_POLICY) .build(); PutAccessGrantsInstanceResourcePolicyResponse putResponse = s3Control.putAccessGrantsInstanceResourcePolicy(putRequest); LOGGER.info("PutAccessGrantsInstanceResourcePolicyResponse: " + putResponse); }

回應:

PutAccessGrantsInstanceResourcePolicyResponse( Policy={ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "444455556666" }, "Action": [ "s3:ListAccessGrants", "s3:ListAccessGrantsLocations", "s3:GetDataAccess", "s3:GetAccessGrantsInstanceForPrefix", "s3:ListCallerAccessGrants" ], "Resource": "arn:aws:s3:us-east-2:111122223333:access-grants/default" }] } )
範例 取得 S3 Access Grants 資源政策

若要取得 S3 存取授權資源政策,請使用下列程式碼範例。若要使用下列範例命令,請以您自己的資訊取代 user input placeholders

public void getAccessGrantsInstanceResourcePolicy() { GetAccessGrantsInstanceResourcePolicyRequest getRequest = GetAccessGrantsInstanceResourcePolicyRequest.builder() .accountId(111122223333) .build(); GetAccessGrantsInstanceResourcePolicyResponse getResponse = s3Control.getAccessGrantsInstanceResourcePolicy(getRequest); LOGGER.info("GetAccessGrantsInstanceResourcePolicyResponse: " + getResponse); }

回應:

GetAccessGrantsInstanceResourcePolicyResponse( Policy={"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::444455556666:root"},"Action":["s3:ListAccessGrants","s3:ListAccessGrantsLocations","s3:GetDataAccess","s3:GetAccessGrantsInstanceForPrefix","s3:ListCallerAccessGrants"],"Resource":"arn:aws:s3:us-east-2:111122223333:access-grants/default"}]}, CreatedAt=2023-06-15T22:54:44.319Z )
範例 刪除 S3 Access Grants 資源政策

若要刪除 S3 存取授權資源政策,請使用下列程式碼範例。若要使用下列範例命令,請以您自己的資訊取代 user input placeholders

public void deleteAccessGrantsInstanceResourcePolicy() { DeleteAccessGrantsInstanceResourcePolicyRequest deleteRequest = DeleteAccessGrantsInstanceResourcePolicyRequest.builder() .accountId(111122223333) .build(); DeleteAccessGrantsInstanceResourcePolicyResponse deleteResponse = s3Control.putAccessGrantsInstanceResourcePolicy(deleteRequest); LOGGER.info("DeleteAccessGrantsInstanceResourcePolicyResponse: " + deleteResponse); }

回應:

DeleteAccessGrantsInstanceResourcePolicyResponse()

本節提供 AWS SDK 範例,說明如何設定 S3 Access Grants 資源政策,以授予第二個 AWS 帳戶存取您的部分 S3 資料。

Java

新增、更新、取得或刪除資源政策,以管理對 S3 Access Rents 執行個體的跨帳户存取權。

範例 新增或更新 S3 存取授權執行個體資源政策

如果您想要將帳戶 111122223333 中 S3 存取授權執行個體的跨帳戶存取權授予第二個帳戶 444455556666,您帳戶 111122223333 中 S3 存取授權執行個體的資源政策應授予第二個帳戶 444455556666 執行下列動作的許可:

  • s3:ListAccessGrants

  • s3:ListAccessGrantsLocations

  • s3:GetDataAccess

  • s3:GetAccessGrantsInstanceForPrefix

在 S3 存取授權執行個體資源政策中,將 S3 存取授權執行個體的 ARN 指定為 Resource,並將第二個帳戶 444455556666 指定為 Principal。若要使用下列範例,請以您自己的資訊取代 使用者輸入預留位置

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "444455556666" }, "Action": [ "s3:ListAccessGrants", "s3:ListAccessGrantsLocations", "s3:GetDataAccess", "s3:GetAccessGrantsInstanceForPrefix" ], "Resource": "arn:aws:s3:us-east-2:111122223333:access-grants/default" } ] }

若要新增或更新 S3 存取授權執行個體資源政策,請使用下列程式碼範例:

public void putAccessGrantsInstanceResourcePolicy() { PutAccessGrantsInstanceResourcePolicyRequest putRequest = PutAccessGrantsInstanceResourcePolicyRequest.builder() .accountId(111122223333) .policy(RESOURCE_POLICY) .build(); PutAccessGrantsInstanceResourcePolicyResponse putResponse = s3Control.putAccessGrantsInstanceResourcePolicy(putRequest); LOGGER.info("PutAccessGrantsInstanceResourcePolicyResponse: " + putResponse); }

回應:

PutAccessGrantsInstanceResourcePolicyResponse( Policy={ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "444455556666" }, "Action": [ "s3:ListAccessGrants", "s3:ListAccessGrantsLocations", "s3:GetDataAccess", "s3:GetAccessGrantsInstanceForPrefix", "s3:ListCallerAccessGrants" ], "Resource": "arn:aws:s3:us-east-2:111122223333:access-grants/default" }] } )
範例 取得 S3 Access Grants 資源政策

若要取得 S3 存取授權資源政策,請使用下列程式碼範例。若要使用下列範例命令,請以您自己的資訊取代 user input placeholders

public void getAccessGrantsInstanceResourcePolicy() { GetAccessGrantsInstanceResourcePolicyRequest getRequest = GetAccessGrantsInstanceResourcePolicyRequest.builder() .accountId(111122223333) .build(); GetAccessGrantsInstanceResourcePolicyResponse getResponse = s3Control.getAccessGrantsInstanceResourcePolicy(getRequest); LOGGER.info("GetAccessGrantsInstanceResourcePolicyResponse: " + getResponse); }

回應:

GetAccessGrantsInstanceResourcePolicyResponse( Policy={"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::444455556666:root"},"Action":["s3:ListAccessGrants","s3:ListAccessGrantsLocations","s3:GetDataAccess","s3:GetAccessGrantsInstanceForPrefix","s3:ListCallerAccessGrants"],"Resource":"arn:aws:s3:us-east-2:111122223333:access-grants/default"}]}, CreatedAt=2023-06-15T22:54:44.319Z )
範例 刪除 S3 Access Grants 資源政策

若要刪除 S3 存取授權資源政策,請使用下列程式碼範例。若要使用下列範例命令,請以您自己的資訊取代 user input placeholders

public void deleteAccessGrantsInstanceResourcePolicy() { DeleteAccessGrantsInstanceResourcePolicyRequest deleteRequest = DeleteAccessGrantsInstanceResourcePolicyRequest.builder() .accountId(111122223333) .build(); DeleteAccessGrantsInstanceResourcePolicyResponse deleteResponse = s3Control.putAccessGrantsInstanceResourcePolicy(deleteRequest); LOGGER.info("DeleteAccessGrantsInstanceResourcePolicyResponse: " + deleteResponse); }

回應:

DeleteAccessGrantsInstanceResourcePolicyResponse()

新增、更新、取得或刪除資源政策,以管理對 S3 Access Rents 執行個體的跨帳户存取權。

範例 新增或更新 S3 存取授權執行個體資源政策

如果您想要將帳戶 111122223333 中 S3 存取授權執行個體的跨帳戶存取權授予第二個帳戶 444455556666,您帳戶 111122223333 中 S3 存取授權執行個體的資源政策應授予第二個帳戶 444455556666 執行下列動作的許可:

  • s3:ListAccessGrants

  • s3:ListAccessGrantsLocations

  • s3:GetDataAccess

  • s3:GetAccessGrantsInstanceForPrefix

在 S3 存取授權執行個體資源政策中,將 S3 存取授權執行個體的 ARN 指定為 Resource,並將第二個帳戶 444455556666 指定為 Principal。若要使用下列範例,請以您自己的資訊取代 使用者輸入預留位置

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "444455556666" }, "Action": [ "s3:ListAccessGrants", "s3:ListAccessGrantsLocations", "s3:GetDataAccess", "s3:GetAccessGrantsInstanceForPrefix" ], "Resource": "arn:aws:s3:us-east-2:111122223333:access-grants/default" } ] }

若要新增或更新 S3 存取授權執行個體資源政策,請使用下列程式碼範例:

public void putAccessGrantsInstanceResourcePolicy() { PutAccessGrantsInstanceResourcePolicyRequest putRequest = PutAccessGrantsInstanceResourcePolicyRequest.builder() .accountId(111122223333) .policy(RESOURCE_POLICY) .build(); PutAccessGrantsInstanceResourcePolicyResponse putResponse = s3Control.putAccessGrantsInstanceResourcePolicy(putRequest); LOGGER.info("PutAccessGrantsInstanceResourcePolicyResponse: " + putResponse); }

回應:

PutAccessGrantsInstanceResourcePolicyResponse( Policy={ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "444455556666" }, "Action": [ "s3:ListAccessGrants", "s3:ListAccessGrantsLocations", "s3:GetDataAccess", "s3:GetAccessGrantsInstanceForPrefix", "s3:ListCallerAccessGrants" ], "Resource": "arn:aws:s3:us-east-2:111122223333:access-grants/default" }] } )
範例 取得 S3 Access Grants 資源政策

若要取得 S3 存取授權資源政策,請使用下列程式碼範例。若要使用下列範例命令,請以您自己的資訊取代 user input placeholders

public void getAccessGrantsInstanceResourcePolicy() { GetAccessGrantsInstanceResourcePolicyRequest getRequest = GetAccessGrantsInstanceResourcePolicyRequest.builder() .accountId(111122223333) .build(); GetAccessGrantsInstanceResourcePolicyResponse getResponse = s3Control.getAccessGrantsInstanceResourcePolicy(getRequest); LOGGER.info("GetAccessGrantsInstanceResourcePolicyResponse: " + getResponse); }

回應:

GetAccessGrantsInstanceResourcePolicyResponse( Policy={"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::444455556666:root"},"Action":["s3:ListAccessGrants","s3:ListAccessGrantsLocations","s3:GetDataAccess","s3:GetAccessGrantsInstanceForPrefix","s3:ListCallerAccessGrants"],"Resource":"arn:aws:s3:us-east-2:111122223333:access-grants/default"}]}, CreatedAt=2023-06-15T22:54:44.319Z )
範例 刪除 S3 Access Grants 資源政策

若要刪除 S3 存取授權資源政策,請使用下列程式碼範例。若要使用下列範例命令,請以您自己的資訊取代 user input placeholders

public void deleteAccessGrantsInstanceResourcePolicy() { DeleteAccessGrantsInstanceResourcePolicyRequest deleteRequest = DeleteAccessGrantsInstanceResourcePolicyRequest.builder() .accountId(111122223333) .build(); DeleteAccessGrantsInstanceResourcePolicyResponse deleteResponse = s3Control.putAccessGrantsInstanceResourcePolicy(deleteRequest); LOGGER.info("DeleteAccessGrantsInstanceResourcePolicyResponse: " + deleteResponse); }

回應:

DeleteAccessGrantsInstanceResourcePolicyResponse()

步驟 3:授予第二個帳戶中的 IAM 身分呼叫您帳戶中 S3 存取授權執行個體的許可

在 Amazon S3 資料的擁有者為帳戶 111122223333 中的 S3 存取授權執行個體設定跨帳戶政策之後,第二個帳戶 444455556666 的擁有者必須為其 IAM 使用者或角色建立身分型政策,且擁有者必須授予他們對 S3 存取授權執行個體的存取權。在身分型政策中,根據 S3 存取授權執行個體資源政策中授予的內容和您要授予的許可,包含下列一或多個動作:

  • s3:ListAccessGrants

  • s3:ListAccessGrantsLocations

  • s3:GetDataAccess

  • s3:GetAccessGrantsInstanceForPrefix

  • s3:ListCallerAccessGrants

依照 AWS 跨帳戶存取模式,第二個帳戶 444455556666 中的 IAM 使用者或角色必須明確具有上述一或多個許可。例如,授予 s3:GetDataAccess 許可,以便 IAM 使用者或角色能夠呼叫帳戶 111122223333 中的 S3 存取授權執行個體來請求憑證。

若要使用此範例命令,請以您自己的資訊取代 user input placeholders

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetDataAccess", ], "Resource": "arn:aws:s3:us-east-2:111122223333:access-grants/default" } ] }

如需編輯 IAM 身分型政策的資訊,請參閱《AWS Identity and Access Management 指南》中的編輯 IAM 政策

步驟 4:在您帳戶的 S3 存取授權執行個體中建立授權,讓第二個帳戶中的 IAM 身分能夠存取您的部分 S3 資料

在最終組態步驟中,您可以在帳戶 111122223333 的 S3 存取授權執行個體中建立授權,讓第二個帳戶 444455556666 中的 IAM 身分能夠存取您帳戶中的一些 S3 資料。您可以使用 Amazon S3 主控台、CLI、API 和 SDK 來執行這項操作。如需詳細資訊,請參閱建立授權

在授予中,從第二個帳戶指定 IAM 身分的 AWS ARN,並指定您要授予存取權之 S3 資料 (儲存貯體、字首或物件) 中的哪個位置。此位置必須已向 S3 存取授權執行個體註冊。如需詳細資訊,請參閱註冊位置。您可以選擇指定子字首。例如,若您授予存取權的位置是儲存貯體,而且您想要將存取權進一步限制為該儲存貯體中的特定物件,請在 S3SubPrefix 欄位中傳遞物件金鑰名稱。或者,如果您想要僅限存取儲存貯體中金鑰名稱開頭為特定字首 (例如 2024-03-research-results/) 的物件,則傳遞 S3SubPrefix=2024-03-research-results/

以下是範例 CLI 命令,可為第二個帳戶中的身分建立存取授權。如需更多資訊,請參閱建立授權。若要使用此範例命令,請以您自己的資訊取代 user input placeholders

aws s3control create-access-grant \ --account-id 111122223333 \ --access-grants-location-id default \ --access-grants-location-configuration S3SubPrefix=prefixA* \ --permission READ \ --grantee GranteeType=IAM,GranteeIdentifier=arn:aws:iam::444455556666:role/data-consumer-1

設定跨帳戶存取權之後,第二個帳戶中的使用者或角色可以執行下列動作:

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。