

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

# 使用 S3 存取授權位置
<a name="access-grants-location"></a>

在 AWS 區域 帳戶中的 中[建立 Amazon S3 Access Grants 執行個體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-instance-create.html)後，您會在該執行個體中註冊 S3 位置。S3 Access Grants 位置會將預設 S3 位置 (`s3://`)、儲存貯體或字首映射至 AWS Identity and Access Management (IAM) 角色。S3 存取授權會擔任此 IAM 角色，將臨時憑證提供給存取該特定位置的承授者。您必須先在 S3 存取授權執行個體中至少註冊一個位置，才能建立存取授權。

您可以註冊位置、檢視位置的詳細資訊、編輯位置及刪除位置。

**注意**  
 在您的 S3 存取授權執行個體中註冊第一個位置之後，您的執行個體中仍沒有任何個別的存取授權。若要建立存取授權，請參閱[建立授權](access-grants-grant-create.md)。

**Topics**
+ [註冊位置](access-grants-location-register.md)
+ [檢視註冊位置的詳細資訊](access-grants-location-view.md)
+ [更新註冊的位置](access-grants-location-edit.md)
+ [刪除註冊的位置](access-grants-location-delete.md)

# 註冊位置
<a name="access-grants-location-register"></a>

在 AWS 區域 帳戶中的 中[建立 Amazon S3 Access Grants 執行個體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-instance-create.html)後，您會在該執行個體中註冊 S3 位置。S3 Access Grants 位置會將預設 S3 位置 (`s3://`)、儲存貯體或字首映射至 AWS Identity and Access Management (IAM) 角色。S3 存取授權會擔任此 IAM 角色，將臨時憑證提供給存取該特定位置的承授者。您必須先在 S3 存取授權執行個體中至少註冊一個位置，才能建立存取授權。

**建議的使用案例**  
建議您註冊預設位置 (`s3://`)，並將其映射至 IAM 角色。預設 S3 路徑 (`s3://`) 的位置涵蓋對帳戶 中所有 S3 儲存貯體 AWS 區域 的存取。當您建立存取授權時，您可以將授權範圍縮小為預設位置內的儲存貯體、字首或物件。

**複雜的存取管理使用案例**  
更複雜的存取管理使用案例除了預設位置，可能還需要您註冊其他位置。以下是這類使用案例的一些範例：
+ 假設 *amzn-s3-demo-bucket* 是 S3 存取授權執行個體中的註冊位置，已有映射的 IAM 角色，但此 IAM 角色在存取儲存貯體中的特定字首時會遭到拒絕。在此情況下，您可以將 IAM 角色無法存取的字首註冊為個別位置，並將該位置映射至具有必要存取權的不同 IAM 角色。
+ 假設您想要建立授權，限制只有虛擬私有雲端 (VPC) 端點內的使用者才能存取。在此情況下，您可以註冊一個儲存貯體位置，僅限 IAM 角色存取 VPC 端點。稍後，當承授者向 S3 存取授權要求憑證時，S3 存取授權會擔任該位置的 IAM 角色來提供臨時憑證。除非呼叫者位於 VPC 端點內，否則此憑證會拒絕存取特定儲存貯體。除了授權中指定的一般讀取、寫入或讀寫許可之外，也會套用此拒絕許可。

註冊位置時，您還必須指定 S3 存取授權擔任的 IAM 角色，以提供臨時憑證並限制特定授權的許可。

如果您的使用案例需要您在 S3 存取授權執行個體中註冊多個位置，您可以註冊下列任何一項：


| S3 URI | IAM 角色 | Description | 
| --- | --- | --- | 
| s3:// | Default-IAM-role |  預設位置 `s3://` 包括 AWS 區域中的所有儲存貯體。  | 
| s3://amzn-s3-demo-bucket1/ | IAM-role-For-bucket |  此位置包括所指定儲存貯體中的所有物件。  | 
| s3://amzn-s3-demo-bucket1/prefix-name | IAM-role-For-prefix |  此位置包含儲存貯體中物件金鑰名稱開頭為此字首的所有物件。  | 

註冊特定儲存貯體或字首之前，請務必執行下列作業：
+ 建立一或多個儲存貯體，其中包含您要授予存取權的資料。這些儲存貯體必須位於與您的 S3 Access Grants 執行個體 AWS 區域 相同的 中。如需詳細資訊，請參閱[建立儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)。

  新增字首是選用步驟。字首是物件金鑰名稱開頭的字串。您可以使用字首來組織儲存貯體中的物件，以及進行存取管理。若要新增字首至儲存貯體，請參閱[建立物件索引鍵名稱](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html)。
+ 建立准許存取 AWS 區域中 S3 資料的 IAM 角色。如需詳細資訊，請參閱《AWS IAM Identity Center 使用者指南》**中的[建立 IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html)。
+  在 IAM 角色信任政策中，授予 S3 存取授權服務 (`access-grants.s3.amazonaws.com`) 主體對您建立之 IAM 角色的存取權。若要完成此操作，您可以建立包含下列陳述式的 JSON 檔案。若要將信任政策新增至您的帳戶，請參閱[使用自訂信任政策建立角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)。

  *TestRolePolicy.json*

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
      "Statement": [
      {
        "Sid": "TestRolePolicy",
        "Effect": "Allow",
        "Principal": {
          "Service": "access-grants.s3.amazonaws.com"
        },
        "Action": [
          "sts:AssumeRole", 
          "sts:SetSourceIdentity"
        ],
        "Condition": {
          "StringEquals": {
            "aws:SourceAccount": "111122223333",
            "aws:SourceArn": "arn:aws:s3::111122223333:access-grants/default"
          }
        }
      }
    ]
  }
  ```

------

  或者，對於 IAM Identity Center 使用案例，請使用包含第二個陳述式的下列政策：
+ 建立 IAM 政策以將 Amazon S3 許可連接至您建立的 IAM 角色。請參閱下列範例 `iam-policy.json` 檔案，並將 `user input placeholders` 取代為您自己的資訊。
**注意**  
如果您使用伺服器端加密搭配 AWS Key Management Service (AWS KMS) 金鑰來加密資料，下列範例會在政策中包含 IAM 角色的必要 AWS KMS 許可。如果不使用此功能，可以從 IAM 政策中移除這些許可。
只有在憑證是由 S3 存取授權提供時，您才能限制 IAM 角色存取 S3 資料。此範例示範如何為特定 S3 存取授權執行個體新增 `Condition` 陳述式。若要使用此 `Condition`，請將 `Condition` 陳述式中的 S3 存取授權執行個體 ARN 取代為您的 S3 存取授權執行個體 ARN，其格式如下：`arn:aws:s3:region:accountId:access-grants/default`

  *iam-policy.json*

  ```
  {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
           "Sid": "ObjectLevelReadPermissions",
           "Effect":"Allow",
           "Action":[
              "s3:GetObject",
              "s3:GetObjectVersion",
              "s3:GetObjectAcl",
              "s3:GetObjectVersionAcl",
              "s3:ListMultipartUploadParts"
           ],
           "Resource":[ 
              "arn:aws:s3:::*"  
           ],
           "Condition":{
              "StringEquals": { "aws:ResourceAccount": "accountId" },
              "ArnEquals": {
                  "s3:AccessGrantsInstanceArn": ["arn:aws:s3:region:accountId:access-grants/default"]
              }
          } 
        },
        {
           "Sid": "ObjectLevelWritePermissions",
           "Effect":"Allow",
           "Action":[
              "s3:PutObject",
              "s3:PutObjectAcl",
              "s3:PutObjectVersionAcl",
              "s3:DeleteObject",
              "s3:DeleteObjectVersion",
              "s3:AbortMultipartUpload"
           ],
           "Resource":[
              "arn:aws:s3:::*"  
           ],
           "Condition":{
              "StringEquals": { "aws:ResourceAccount": "accountId" },
              "ArnEquals": {
                  "s3:AccessGrantsInstanceArn": ["arn:aws:s3:AWS 區域:accountId:access-grants/default"]
              }
           } 
        },
        {
           "Sid": "BucketLevelReadPermissions",
           "Effect":"Allow",
           "Action":[
              "s3:ListBucket"
           ],
           "Resource":[
              "arn:aws:s3:::*"
           ],
           "Condition":{
              "StringEquals": { "aws:ResourceAccount": "accountId" },
              "ArnEquals": {
                  "s3:AccessGrantsInstanceArn": ["arn:aws:s3:AWS 區域:accountId:access-grants/default"]
              }
           }     
        },
  	  //Optionally add the following section if you use SSE-KMS encryption
        {
           "Sid": "KMSPermissions",
           "Effect":"Allow",
           "Action":[
              "kms:Decrypt",
              "kms:GenerateDataKey"
           ],
           "Resource":[
              "*"
           ]
        }
     ]
  }
  ```

您可以使用 Amazon S3 主控台、 AWS Command Line Interface (AWS CLI)、Amazon S3 REST API 或 AWS SDKs，在 Amazon S3 Access Grants 執行個體中註冊位置。 Amazon S3 

**注意**  
 在您的 S3 存取授權執行個體中註冊第一個位置之後，您的執行個體中仍沒有任何個別的存取授權。若要建立存取授權，請參閱[建立授權](access-grants-grant-create.md)。

## 使用 S3 主控台
<a name="access-grants-location-register-console"></a>

您必須至少先註冊一個位置，才能透過 S3 Access Grants 授予 S3 資料的存取權。

**在 S3 Access Grants 執行個體中註冊位置**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)：// 開啟 Amazon S3 主控台。

1. 在左側導覽窗格中，選擇 **Access Grants**。

1. 在 **S3 Access Grants** 頁面上，選擇包含您要使用之 S3 Access Grants 執行個體的區域。

   如果您是第一次使用 S3 Access Grants 執行個體，請確定您已完成[步驟 1 - 建立 S3 Access Grants 執行個體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-instance-create.html)，並瀏覽至**設定 Access Grants 執行個體**精靈的**步驟 2**。如果您已有 S3 Access Grants 執行個體，請選擇**檢視詳細資訊**，然後從**位置**索引標籤選擇**註冊位置**。

   1. 針對**位置範圍**，選擇**瀏覽 S3**，或輸入要註冊之位置的 S3 URI 路徑。有關 S3 URI 格式，請參閱[位置格式](#location-types)表。輸入 URI 之後，您可以選擇**檢視**以瀏覽位置。

   1. 針對 **IAM 角色**，選擇以下其中一個選項：
      + **從現有的 IAM 角色中選擇**

        從下拉式清單中選擇 IAM 角色。選擇角色後，請選擇**檢視**以確定此角色具有管理您要註冊之位置的必要許可。具體而言，請確認此角色將 `sts:AssumeRole` 和 `sts:SetSourceIdentity` 許可授予 S3 Access Grants。
      + **輸入 IAM 角色 ARN**

        導覽至 [IAM 主控台](https://console.aws.amazon.com/iam/)。複製 IAM 角色的 Amazon Resource Name (ARN)，並將其貼入此方塊中。

   1. 選擇**下一步**或**註冊位置**完成此操作。

1. 故障診斷：

**無法註冊位置**
   + 位置可能已註冊。

     您可能沒有註冊位置的 `s3:CreateAccessGrantsLocation` 許可。請聯絡您的帳戶管理員。

## 使用 AWS CLI
<a name="access-grants-location-register-cli"></a>

若要安裝 AWS CLI，請參閱*AWS Command Line Interface 《 使用者指南*[》中的安裝 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) 。

您可以在 S3 Access Grants 執行個體中註冊預設位置 `s3://` 或自訂位置。務必先建立具有該位置的主要存取權的 IAM 角色，然後確實授予 S3 Access Grants 許可來擔任此角色。

若要使用下列範例命令，請將 `user input placeholders` 取代為您自己的資訊。

**Example 建立資源政策**  
建立允許 S3 Access Grants 擔任 IAM 角色的政策。若要完成此操作，您可以建立包含下列陳述式的 JSON 檔案。若要將資源政策新增至您的帳戶，請參閱[建立並連接您的第一個客戶管理政策](https://docs.aws.amazon.com//IAM/latest/UserGuide/tutorial_managed-policies.html)。  
*TestRolePolicy.json*    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Stmt1234567891011",
      "Action": ["sts:AssumeRole", "sts:SetSourceIdentity"],
      "Effect": "Allow",
      "Principal": {"Service": "access-grants.s3.amazonaws.com"}
    }
  ]
}
```

**Example 建立角色**  
執行下列 IAM 命令以建立角色。  

```
aws iam create-role --role-name accessGrantsTestRole \
 --region us-east-2 \
 --assume-role-policy-document file://TestRolePolicy.json
```
執行 `create-role` 命令會傳回政策：  

```
{
    "Role": {
        "Path": "/",
        "RoleName": "accessGrantsTestRole",
        "RoleId": "AROASRDGX4WM4GH55GIDA",
        "Arn": "arn:aws:iam::111122223333:role/accessGrantsTestRole",
        "CreateDate": "2023-05-31T18:11:06+00:00",
        "AssumeRolePolicyDocument": {
            "Version": "2012-10-17",		 	 	 
            "Statement": [
                {
                    "Sid": "Stmt1685556427189",
                    "Action": [
                        "sts:AssumeRole",
                        "sts:SetSourceIdentity"
                    ],
                    "Effect": "Allow",
                    "Principal": {
                        "Service":"access-grants.s3.amazonaws.com"
                    }
                }
            ]
        }
    }
}
```

**Example**  
建立 IAM 政策以將 Amazon S3 許可連接至 IAM 角色。請參閱下列範例 `iam-policy.json` 檔案，並將 `user input placeholders` 取代為您自己的資訊。  
如果您使用伺服器端加密搭配 AWS Key Management Service (AWS KMS) 金鑰來加密資料，下列範例會在政策中新增 IAM 角色的必要 AWS KMS 許可。如果不使用此功能，可以從 IAM 政策中移除這些許可。  
為了確保 IAM 角色只能在憑證由 S3 Access Grants 供應時用來存取 S3 中的資料，此範例將示範如何在 IAM 政策中新增 `Condition` 陳述式來指定 S3 Access Grants 執行個體 (`s3:AccessGrantsInstance: InstanceArn`)。使用下列範例政策時，請將 `user input placeholders` 取代為您自己的資訊。
*iam-policy.json*    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
         "Sid": "ObjectLevelReadPermissions",
         "Effect": "Allow",
         "Action": [
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:GetObjectAcl",
            "s3:GetObjectVersionAcl",
            "s3:ListMultipartUploadParts"
         ],
         "Resource": [ 
            "arn:aws:s3:::*"  
         ],
         "Condition": {
            "StringEquals": { "aws:ResourceAccount": "111122223333" },
            "ArnEquals": {
                "s3:AccessGrantsInstanceArn": ["arn:aws:s3:us-east-1::access-grants/default"]
            }
        } 
      },
      {
         "Sid": "ObjectLevelWritePermissions",
         "Effect": "Allow",
         "Action": [
            "s3:PutObject",
            "s3:PutObjectAcl",
            "s3:PutObjectVersionAcl",
            "s3:DeleteObject",
            "s3:DeleteObjectVersion",
            "s3:AbortMultipartUpload"
         ],
         "Resource": [
            "arn:aws:s3:::*"  
         ],
         "Condition": {
            "StringEquals": { "aws:ResourceAccount": "111122223333" },
            "ArnEquals": {
                "s3:AccessGrantsInstanceArn": ["arn:aws:s3:us-east-1::access-grants/default"]
            }
         } 
      },
      {
         "Sid": "BucketLevelReadPermissions",
         "Effect": "Allow",
         "Action": [
            "s3:ListBucket"
         ],
         "Resource": [
            "arn:aws:s3:::*"
         ],
         "Condition": {
            "StringEquals": { "aws:ResourceAccount": "111122223333" },
            "ArnEquals": {
                "s3:AccessGrantsInstanceArn": ["arn:aws:s3:us-east-1::access-grants/default"]
            }
         }     
      },
      {
         "Sid": "KMSPermissions",
         "Effect": "Allow",
         "Action": [
            "kms:Decrypt",
            "kms:GenerateDataKey"
         ],
         "Resource": [
            "*"
         ],
         "Condition": {
            "StringEquals": {
               "kms:ViaService": "s3.us-east-1.amazonaws.com"
            }
         }
      }
   ]
}
```

**Example**  
執行以下命令：  

```
aws iam put-role-policy \
--role-name accessGrantsTestRole \
--policy-name accessGrantsTestRole \
--policy-document file://iam-policy.json
```

**Example 註冊預設位置**  

```
aws s3control create-access-grants-location \
 --account-id 111122223333 \
 --location-scope s3:// \
 --iam-role-arn arn:aws:iam::111122223333:role/accessGrantsTestRole
```
回應：  

```
{"CreatedAt": "2023-05-31T18:23:48.107000+00:00",
    "AccessGrantsLocationId": "default",
    "AccessGrantsLocationArn": "arn:aws:s3:us-east-2:111122223333:access-grants/default/location/default",
    "LocationScope": "s3://" 
    "IAMRoleArn": "arn:aws:iam::111122223333:role/accessGrantsTestRole"
}
```

**Example 註冊自訂位置**  

```
aws s3control create-access-grants-location \
 --account-id 111122223333 \
 --location-scope s3://DOC-BUCKET-EXAMPLE/ \
 --iam-role-arn arn:aws:iam::123456789012:role/accessGrantsTestRole
```
回應：  

```
{"CreatedAt": "2023-05-31T18:23:48.107000+00:00",
    "AccessGrantsLocationId": "635f1139-1af2-4e43-8131-a4de006eb456",
    "AccessGrantsLocationArn": "arn:aws:s3:us-east-2: 111122223333:access-grants/default/location/635f1139-1af2-4e43-8131-a4de006eb888",
    "LocationScope": "s3://DOC-BUCKET-EXAMPLE/",
    "IAMRoleArn": "arn:aws:iam::111122223333:role/accessGrantsTestRole"
}
```

## 使用 REST API
<a name="access-grants-location-register-rest-api"></a>

如需有關管理 S3 Access Grants 執行個體的 Amazon S3 REST API 支援資訊，請參閱《Amazon Simple Storage Service API 參考》**中的下列各節：
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessGrantsLocation.html) 
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsLocation.html) 
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsLocation.html) 
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessGrantsLocations.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessGrantsLocations.html) 
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateAccessGrantsLocation.html) 

## 使用 AWS SDKs
<a name="access-grants-location-register-using-sdk"></a>

本節提供如何使用 AWS SDK 註冊位置的範例。

若要使用下列範例，請以您自己的資訊取代 `user input placeholders`。

------
#### [ Java ]

您可以在 S3 Access Grants 執行個體中註冊預設位置 `s3://` 或自訂位置。務必先建立具有該位置的主要存取權的 IAM 角色，然後確實授予 S3 Access Grants 許可來擔任此角色。

若要使用下列範例命令，請將 `user input placeholders` 取代為您自己的資訊。

**Example 註冊預設位置**  
要求:  

```
public void createAccessGrantsLocation() {
CreateAccessGrantsLocationRequest createRequest = CreateAccessGrantsLocationRequest.builder()
.accountId("111122223333")
.locationScope("s3://")
.iamRoleArn("arn:aws:iam::123456789012:role/accessGrantsTestRole")
.build();
CreateAccessGrantsLocationResponse createResponse = s3Control.createAccessGrantsLocation(createRequest);
LOGGER.info("CreateAccessGrantsLocationResponse: " + createResponse);
}
```
回應：  

```
CreateAccessGrantsLocationResponse(
CreatedAt=2023-06-07T04:35:11.027Z,
AccessGrantsLocationId=default,
AccessGrantsLocationArn=arn:aws:s3:us-east-2:111122223333:access-grants/default/location/default,
LocationScope=s3://,
IAMRoleArn=arn:aws:iam::111122223333:role/accessGrantsTestRole
)
```

**Example 註冊自訂位置**  
要求:  

```
public void createAccessGrantsLocation() {
CreateAccessGrantsLocationRequest createRequest = CreateAccessGrantsLocationRequest.builder()
.accountId("111122223333")
.locationScope("s3://DOC-BUCKET-EXAMPLE/")
.iamRoleArn("arn:aws:iam::111122223333:role/accessGrantsTestRole")
.build();
CreateAccessGrantsLocationResponse createResponse = s3Control.createAccessGrantsLocation(createRequest);
LOGGER.info("CreateAccessGrantsLocationResponse: " + createResponse);
}
```
回應：  

```
CreateAccessGrantsLocationResponse(
CreatedAt=2023-06-07T04:35:10.027Z,
AccessGrantsLocationId=18cfe6fb-eb5a-4ac5-aba9-8d79f04c2012,
AccessGrantsLocationArn=arn:aws:s3:us-east-2:111122223333:access-grants/default/location/18cfe6fb-eb5a-4ac5-aba9-8d79f04c2666,
LocationScope= s3://test-bucket-access-grants-user123/,
IAMRoleArn=arn:aws:iam::111122223333:role/accessGrantsTestRole
)
```

------

# 檢視註冊位置的詳細資訊
<a name="access-grants-location-view"></a>

您可以使用 Amazon S3 主控台、 AWS Command Line Interface (AWS CLI)、Amazon S3 REST API 和 AWS SDKs，取得在 SAmazon S3 Access Grants 執行個體中註冊的位置詳細資訊。 Amazon S3 

## 使用 S3 主控台
<a name="access-grants-location-edit-console"></a>

**檢視在 S3 Access Grants 執行個體中註冊的位置**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

1. 在左側導覽窗格中，選擇 **Access Grants**。

1. 在 **S3 Access Grants** 頁面上，選擇包含您要使用之 S3 Access Grants 執行個體的區域。

1. 選擇執行個體的**檢視詳細資訊**。

1. 在執行個體的詳細資訊頁面上，選擇**位置**索引標籤。

1. 尋找您要檢視的註冊位置。若要篩選註冊位置的清單，請使用搜尋方塊。

## 使用 AWS CLI
<a name="access-grants-location-edit-cli"></a>

若要安裝 AWS CLI，請參閱*AWS Command Line Interface 《 使用者指南*[》中的安裝 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) 。

若要使用下列範例命令，請以您自己的資訊取代 `user input placeholders`。

**Example – 取得註冊位置的詳細資訊**  

```
aws s3control get-access-grants-location \
--account-id 111122223333 \
--access-grants-location-id default
```
回應：  

```
{
    "CreatedAt": "2023-05-31T18:23:48.107000+00:00",
    "AccessGrantsLocationId": "default",
    "AccessGrantsLocationArn": "arn:aws:s3:us-east-2:111122223333:access-grants/default/location/default",
    "IAMRoleArn": "arn:aws:iam::111122223333:role/accessGrantsTestRole"
}
```

**Example – 列出在 S3 Access Grants 執行個體中註冊的所有位置**  
若要將結果限於 S3 字首或儲存貯體，您可以選擇使用 `--location-scope s3://bucket-and-or-prefix` 參數。  

```
aws s3control list-access-grants-locations \
--account-id 111122223333 \
--region us-east-2
```
回應：  

```
{"AccessGrantsLocationsList": [
  {
    "CreatedAt": "2023-05-31T18:23:48.107000+00:00",
    "AccessGrantsLocationId": "default",
    "AccessGrantsLocationArn": "arn:aws:s3:us-east-2:111122223333:access-grants/default/location/default",
    "LocationScope": "s3://" 
    "IAMRoleArn": "arn:aws:iam::111122223333:role/accessGrantsTestRole"
     },
  {
    "CreatedAt": "2023-05-31T18:23:48.107000+00:00",
    "AccessGrantsLocationId": "635f1139-1af2-4e43-8131-a4de006eb456",
    "AccessGrantsLocationArn": "arn:aws:s3:us-east-2:111122223333:access-grants/default/location/635f1139-1af2-4e43-8131-a4de006eb888",
    "LocationScope": "s3://amzn-s3-demo-bucket/prefixA*",
    "IAMRoleArn": "arn:aws:iam::111122223333:role/accessGrantsTestRole"
     }
   ]
  }
```

## 使用 REST API
<a name="access-grants-location-edit-rest-api"></a>

如需有關取得已註冊位置的詳細資訊，或列出在 S3 Access Grants 執行個體註冊的所有位置的 Amazon S3 REST API 支援資訊，請參閱《Amazon Simple Storage Service API 參考》**中的下列各節：
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsLocation.html) 
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessGrantsLocations.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessGrantsLocations.html) 

## 使用 AWS SDKs
<a name="access-grants-location-edit-using-sdk"></a>

本節提供如何使用 AWS SDK 取得 S3 Access Grants 執行個體中已註冊位置的詳細資訊，或列出所有註冊位置的範例。

若要使用下列範例，請以您自己的資訊取代 `user input placeholders`。

------
#### [ Java ]

**Example – 取得註冊位置的詳細資訊**  

```
public void getAccessGrantsLocation() {
GetAccessGrantsLocationRequest getAccessGrantsLocationRequest = GetAccessGrantsLocationRequest.builder()
.accountId("111122223333")
.accessGrantsLocationId("default")
.build();
GetAccessGrantsLocationResponse getAccessGrantsLocationResponse = s3Control.getAccessGrantsLocation(getAccessGrantsLocationRequest);
LOGGER.info("GetAccessGrantsLocationResponse: " + getAccessGrantsLocationResponse);
}
```
回應：  

```
GetAccessGrantsLocationResponse(
CreatedAt=2023-06-07T04:35:10.027Z,
AccessGrantsLocationId=default,
AccessGrantsLocationArn=arn:aws:s3:us-east-2:111122223333:access-grants/default/location/default,
LocationScope= s3://,
IAMRoleArn=arn:aws:iam::111122223333:role/accessGrantsTestRole
)
```

**Example – 列出 S3 Access Grants 執行個體中的所有註冊位置**  
若要將結果限於 S3 字首或儲存貯體，您可以選擇在 `LocationScope` 參數中傳遞 S3 URI (例如 `s3://bucket-and-or-prefix`)。  

```
public void listAccessGrantsLocations() {

ListAccessGrantsLocationsRequest listRequest =   ListAccessGrantsLocationsRequest.builder()
.accountId("111122223333")
.build();

ListAccessGrantsLocationsResponse listResponse = s3Control.listAccessGrantsLocations(listRequest);
LOGGER.info("ListAccessGrantsLocationsResponse: " + listResponse);
}
```
回應：  

```
ListAccessGrantsLocationsResponse(
AccessGrantsLocationsList=[
ListAccessGrantsLocationsEntry(
CreatedAt=2023-06-07T04:35:11.027Z,
AccessGrantsLocationId=default,
AccessGrantsLocationArn=arn:aws:s3:us-east-2:111122223333:access-grants/default/location/default,
LocationScope=s3://,
IAMRoleArn=arn:aws:iam::111122223333:role/accessGrantsTestRole
),
ListAccessGrantsLocationsEntry(
CreatedAt=2023-06-07T04:35:10.027Z,
AccessGrantsLocationId=635f1139-1af2-4e43-8131-a4de006eb456,
AccessGrantsLocationArn=arn:aws:s3:us-east-2:111122223333:access-grants/default/location/635f1139-1af2-4e43-8131-a4de006eb888,
LocationScope=s3://amzn-s3-demo-bucket/prefixA*,
IAMRoleArn=arn:aws:iam::111122223333:role/accessGrantsTestRole
)
]
)
```

------

# 更新註冊的位置
<a name="access-grants-location-edit"></a>

您可以更新在 Amazon S3 Access Grants 執行個體中註冊位置的 AWS Identity and Access Management (IAM) 角色。對於您在 S3 Access Grants 中用來註冊位置的每個新 IAM 角色，請務必將 S3 Access Grants 服務主體 (`access-grants.s3.amazonaws.com`) 存取權授予此角色。若要完成此操作，請在您第一次[註冊位置](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-location.html)時使用的信任政策 JSON 檔案中，為新的 IAM 角色新增一個項目。

您可以使用 Amazon S3 主控台、 AWS Command Line Interface (AWS CLI)、Amazon S3 REST API 和 AWS SDKs Amazon S3 Access Grants 執行個體中的位置。 Amazon S3 

## 使用 S3 主控台
<a name="access-grants-location-edit-console"></a>

**更新在 S3 Access Grants 執行個體註冊之位置的 IAM 角色**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 開啟 Amazon S3 主控台。

1. 在左側導覽窗格中，選擇 **Access Grants**。

1. 在 **S3 Access Grants** 頁面上，選擇包含您要使用之 S3 Access Grants 執行個體的區域。

1. 選擇執行個體的**檢視詳細資訊**。

1. 在執行個體的詳細資訊頁面上，選擇**位置**索引標籤。

1. 尋找您要更新的位置。若要篩選位置的清單，請使用搜尋方塊。

1. 選擇您要更新的註冊位置旁的選項按鈕。

1. 更新 IAM 角色，然後選擇**儲存變更**。

## 使用 AWS CLI
<a name="access-grants-location-edit-cli"></a>

若要安裝 AWS CLI，請參閱*AWS Command Line Interface 《 使用者指南*[》中的安裝 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) 。

若要使用下列範例命令，請以您自己的資訊取代 `user input placeholders`。

**Example – 更新註冊位置的 IAM 角色**  

```
aws s3control update-access-grants-location \
--account-id 111122223333 \
--access-grants-location-id 635f1139-1af2-4e43-8131-a4de006eb999 \
--iam-role-arn arn:aws:iam::777788889999:role/accessGrantsTestRole
```
回應：  

```
{
    "CreatedAt": "2023-05-31T18:23:48.107000+00:00",
    "AccessGrantsLocationId": "635f1139-1af2-4e43-8131-a4de006eb999",
    "AccessGrantsLocationArn": "arn:aws:s3:us-east-2:777788889999:access-grants/default/location/635f1139-1af2-4e43-8131-a4de006eb888",
    "LocationScope": "s3://amzn-s3-demo-bucket/prefixB*",
    "IAMRoleArn": "arn:aws:iam::777788889999:role/accessGrantsTestRole"
}
```

## 使用 REST API
<a name="access-grants-location-edit-rest-api"></a>

如需有關在 S3 Access Grants 執行個體中更新位置的 Amazon S3 REST API 支援資訊，請參閱《Amazon Simple Storage Service API 參考》**中的 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateAccessGrantsLocation.html)。

## 使用 AWS SDKs
<a name="access-grants-location-edit-using-sdk"></a>

本節提供如何使用 AWS SDKs 更新已註冊位置 IAM 角色的範例。

若要使用下列範例，請以您自己的資訊取代 `user input placeholders`。

------
#### [ Java ]

**Example – 更新註冊位置的 IAM 角色**  

```
public void updateAccessGrantsLocation() {
UpdateAccessGrantsLocationRequest updateRequest = UpdateAccessGrantsLocationRequest.builder()
.accountId("111122223333")
.accessGrantsLocationId("635f1139-1af2-4e43-8131-a4de006eb999")
.iamRoleArn("arn:aws:iam::777788889999:role/accessGrantsTestRole")
.build();
UpdateAccessGrantsLocationResponse updateResponse = s3Control.updateAccessGrantsLocation(updateRequest);
LOGGER.info("UpdateAccessGrantsLocationResponse: " + updateResponse);
}
```
回應：  

```
UpdateAccessGrantsLocationResponse(
CreatedAt=2023-06-07T04:35:10.027Z,
AccessGrantsLocationId=635f1139-1af2-4e43-8131-a4de006eb999,
AccessGrantsLocationArn=arn:aws:s3:us-east-2:777788889999:access-grants/default/location/635f1139-1af2-4e43-8131-a4de006eb888,
LocationScope=s3://amzn-s3-demo-bucket/prefixB*,
IAMRoleArn=arn:aws:iam::777788889999:role/accessGrantsTestRole
)
```

------

# 刪除註冊的位置
<a name="access-grants-location-delete"></a>

您可以從 Amazon S3 Access Grants 執行個體中刪除位置註冊。刪除位置會從 S3 Access Grants 執行個體取消註冊該位置。

您必須先刪除與此位置相關聯的所有授權，才能從 S3 Access Grants 執行個體移除位置註冊。如需有關如何刪除授權的資訊，請參閱[刪除授權](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-grant-delete.html)。

您可以使用 Amazon S3 主控台、 AWS Command Line Interface (AWS CLI)、Amazon S3 REST API 和 SDK 刪除 S3 Access Grants 執行個體中的位置。 Amazon S3 AWS SDKs

## 使用 S3 主控台
<a name="access-grants-location-delete-console"></a>

**從 Amazon S3 Access Grants 執行個體刪除位置註冊**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 開啟 Amazon S3 主控台。

1. 在左側導覽窗格中，選擇 **Access Grants**。

1. 在 **S3 Access Grants** 頁面上，選擇包含您要使用之 S3 Access Grants 執行個體的區域。

1. 選擇執行個體的**檢視詳細資訊**。

1. 在執行個體的詳細資訊頁面上，選擇**位置**索引標籤。

1. 尋找您要更新的位置。若要篩選位置的清單，請使用搜尋方塊。

1. 選擇您要刪除的註冊位置旁的選項按鈕。

1. 選擇 **Deregister (取消註冊)**。

1. 此時會出現對話方塊，警告您此動作無法復原。若要刪除位置，請選擇**取消註冊**。

## 使用 AWS CLI
<a name="access-grants-location-delete-cli"></a>

若要安裝 AWS CLI，請參閱*AWS Command Line Interface 《 使用者指南*[》中的安裝 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) 。

若要使用下列範例命令，請以您自己的資訊取代 `user input placeholders`。

**Example – 刪除位置註冊**  

```
aws s3control delete-access-grants-location \
--account-id 111122223333 \
--access-grants-location-id  a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 
 // No response body
```

## 使用 REST API
<a name="access-grants-location-delete-rest-api"></a>

如需有關從 S3 Access Grants 執行個體刪除位置的 Amazon S3 REST API 支援資訊，請參閱《Amazon Simple Storage Service API 參考》**中的 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsLocation.html)。

## 使用 AWS SDKs
<a name="access-grants-location-delete-using-sdk"></a>

本節提供如何使用 AWS SDK 刪除位置的範例。

若要使用下列範例，請以您自己的資訊取代 `user input placeholders`。

------
#### [ Java ]

**Example – 刪除位置註冊**  

```
public void deleteAccessGrantsLocation() {
DeleteAccessGrantsLocationRequest deleteRequest = DeleteAccessGrantsLocationRequest.builder()
.accountId("111122223333")
.accessGrantsLocationId("a1b2c3d4-5678-90ab-cdef-EXAMPLE11111")
.build();
DeleteAccessGrantsLocationResponse deleteResponse = s3Control.deleteAccessGrantsLocation(deleteRequest);
LOGGER.info("DeleteAccessGrantsLocationResponse: " + deleteResponse);
}
```
回應：  

```
DeleteAccessGrantsLocationResponse()
```

------