

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

# AWS PrivateLink 適用於 S3 on Outposts
<a name="s3-outposts-privatelink-interface-endpoints"></a>

S3 on Outposts 支援 AWS PrivateLink，可讓您透過虛擬私有網路中的私有端點，直接管理對 S3 on Outposts 儲存體的存取。如此您就能使用自己的虛擬私有雲端 (VPC) 中的私有 IP 位址，進而簡化內部網路架構並在您的 Outposts 物件儲存上執行管理操作。使用 AWS PrivateLink 不需要使用公有 IP 地址或代理伺服器。

使用 AWS PrivateLink for Amazon S3 on Outposts，您可以在虛擬私有雲端 (VPC) 中佈建*介面 VPC 端點*，以存取 S3 on Outposts [儲存貯體管理和](S3OutpostsAPI.md#S3OutpostsAPIsBucket)[端點管理](S3OutpostsAPI.md#S3OutpostsAPIs) APIs。您可透過虛擬私有網路 (VPN) 或 AWS Direct Connect，直接從部署在 VPC 中或內部部署中的應用程式存取介面 VPC 端點。您可以透過 存取儲存貯體和端點管理 APIs AWS PrivateLink。 AWS PrivateLink 不支援[資料傳輸](S3OutpostsAPI.md#S3OutpostsAPIsObject) API 操作，例如 GET、PUT 和類似的 APIs。這些操作已透過 S3 on Outposts 端點和存取點組態私下傳輸。如需詳細資訊，請參閱[適用於 S3 on Outposts 的網路](S3OutpostsNetworking.md)。

介面端點由一個或多個彈性網路介面 (ENI) 來表示，這些是在 VPC 的子網路中指派的私有 IP 位址。對 S3 on Outposts 介面端點發出的請求會自動路由至  AWS 網路上的 S3 on Outposts 儲存貯體和端點管理 API。您也可以透過 AWS Direct Connect 或 AWS Virtual Private Network ()，從內部部署應用程式存取 VPC 中的介面端點Site-to-Site VPN。如需有關如何將 VPC 與內部部署網路連線的詳細資訊，請參閱《[https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)》和《[https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html)》。

介面端點會透過 AWS 網路和透過 路由請求 S3 on Outposts 儲存貯體和端點管理 APIs AWS PrivateLink，如下圖所示。

![\[資料流程圖顯示介面端點如何路由對 S3 on Outposts 儲存貯體與端點管理 API 的請求。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/s3-outposts/images/s3-outposts-interface-endpoints.png)


如需有關介面端點的一般資訊，請參閱《AWS PrivateLink指南》**中的[介面 VPC 端點 (AWS PrivateLink )](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html)。

**Topics**
+ [法規與限制](#s3-outposts-privatelink-restrictions)
+ [存取 S3 on Outposts 介面端點](#s3-outposts-accessing-s3-interface-endpoints)
+ [更新內部部署 DNS 組態](#s3-outposts-updating-on-premises-dns-config)
+ [為 S3 on Outposts 建立 VPC 端點政策](#s3-outposts-creating-vpc)
+ [為 S3 on Outposts 建立儲存貯體政策與 VPC 端點政策](#s3-outposts-creating-vpc-endpoint-policy)

## 法規與限制
<a name="s3-outposts-privatelink-restrictions"></a>

當您透過 存取 S3 on Outposts 儲存貯體和端點管理 APIs 時 AWS PrivateLink，會套用 VPC 限制。如需詳細資訊，請參閱*《AWS PrivateLink 指南》*中的[介面端點屬性和限制](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#vpce-interface-limitations)以及[AWS PrivateLink 配額](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-limits-endpoints.html)。

此外， AWS PrivateLink 不支援下列項目：
+ [聯邦資訊處理標準 (FIPS) 端點](https://aws.amazon.com/compliance/fips/)
+ [S3 on Outposts 資料傳輸 API](S3OutpostsAPI.md#S3OutpostsAPIsObject)，例如 GET、PUT 和類似的物件 API 操作。
+ 私有 DNS

## 存取 S3 on Outposts 介面端點
<a name="s3-outposts-accessing-s3-interface-endpoints"></a>

若要使用 存取 S3 on Outposts 儲存貯體和端點管理 APIs AWS PrivateLink，*您必須*更新您的應用程式以使用端點特定的 DNS 名稱。當您建立界面端點時， AWS PrivateLink 會產生兩種端點特定的 S3 on Outposts 名稱：*區域*和*區域*。
+ **區域 DNS 名稱** – 包含唯一的 VPC 端點 ID、服務識別符 AWS 區域、 和 `vpce.amazonaws.com`，例如 `vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com`。
+ **區域 DNS 名稱** – 包含唯一的 VPC 端點 ID、可用區域、服務識別符 AWS 區域、 和 `vpce.amazonaws.com`，例如 `vpce-1a2b3c4d-5e6f-us-east-1a.s3-outposts.us-east-1.vpce.amazonaws.com`。如果您的架構可隔離可用區域，則可以使用此選項。例如，您可以將地區 DNS 名稱用於故障遏止或降低區域資料傳輸成本。

**重要**  
S3 on Outposts 介面端點是從公有 DNS 網域解析而得。S3 on Outposts 不支援私有 DNS。針對所有儲存貯體與端點管理 API 使用 `--endpoint-url` 參數。

### AWS CLI 範例
<a name="s3-outposts-privatelink-aws-cli-examples"></a>

使用 `--region` 和 `--endpoint-url` 參數透過 S3 on Outposts 介面端點存取儲存貯體管理與端點管理 API。

**Example ：使用端點 URL 列出具有 S3 控制項 API 的儲存貯體**  
在下列範例中，將區域 `us-east-1`、VPC 端點 URL `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` 及帳戶 ID `111122223333` 取代為適當的資訊。  

```
aws s3control list-regional-buckets --region us-east-1 --endpoint-url https://vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com --account-id 111122223333
```

### AWS 開發套件範例
<a name="s3-outposts-privatelink-aws-sdk-examples"></a>

將 SDK 更新至最新版本，並設定您的用戶端使用端點 URL，以存取 S3 on Outposts 介面端點的 S3 控制 API。

------
#### [ SDK for Python (Boto3) ]

**Example ：使用端點 URL 存取 S3 控制 API**  
在下列範例中，將區域 `us-east-1` 和 VPC 端點 URL `vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com` 取代為適當的資訊。  

```
control_client = session.client(
service_name='s3control',
region_name='us-east-1',
endpoint_url='https://vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com'
)
```
如需詳細資訊，請參閱《Boto3 開發人員指南》**中的 [AWS PrivateLink for Amazon S3](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-example-privatelink.html)。

------
#### [ SDK for Java 2.x ]

**Example ：使用端點 URL 存取 S3 控制 API**  
在下列範例中，將 VPC 端點 URL `vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com` 和區域 `Region.US_EAST_1` 取代為適當的資訊。  

```
// control client
Region region = Region.US_EAST_1;
s3ControlClient = S3ControlClient.builder().region(region)
                                 .endpointOverride(URI.create("https://vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com"))
                                 .build()
```
如需詳細資訊，請參閱 *適用於 Java 的 AWS SDK API 參考*中的 [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3control/S3ControlClient.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3control/S3ControlClient.html)。

------

## 更新內部部署 DNS 組態
<a name="s3-outposts-updating-on-premises-dns-config"></a>

使用端點特定 DNS 名稱來存取 S3 on Outposts 儲存貯體管理與端點管理 API 的介面端點時，您不必更新內部部署 DNS 解析器。您可以使用公有 S3 on Outposts DNS 網域中介面端點的私有 IP 位址，來解析端點特定的 DNS 名稱。

## 為 S3 on Outposts 建立 VPC 端點政策
<a name="s3-outposts-creating-vpc"></a>

若要為 S3 on Outposts 建立 VPC 介面端點，請參閱 *AWS PrivateLink 指南*中的[建立 VPC 端點](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws)。

## 為 S3 on Outposts 建立儲存貯體政策與 VPC 端點政策
<a name="s3-outposts-creating-vpc-endpoint-policy"></a>

您可以將端點政策連接至控制 S3 on Outposts 存取權的 VPC 端點。您還可以使用 S3 on Outposts 儲存貯體政策的 `aws:sourceVpce` 條件，來限制特定 VPC 端點對特定儲存貯體的存取。透過 VPC 端點政策，您可以控制存取 S3 on Outposts 儲存貯體管理 API 與端點管理 API。透過儲存貯體政策，您可以控制存取 S3 on Outposts 儲存貯體管理 API。然而，您無法使用 `aws:sourceVpce` 管理對 S3 on Outposts 其物件動作的存取。

S3 on Outposts 的存取政策指定下列資訊：
+ 允許或拒絕動作的 AWS Identity and Access Management (IAM) 主體。
+ 遭允許或拒絕的 S3 控制項動作。
+ 遭允許或拒絕其動作的 S3 on Outposts 資源。

下列範例顯示了限制儲存貯體或端點存取權的政策。如需 VPC 連線的詳細資訊，請參閱 AWS [Network-to-VPC 連線](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html)[選項 Amazon Virtual Private Cloud](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/welcome.html)。

**重要**  
當套用本節所述的 VPC 端點範例政策時，您可能會在無意間封鎖您對儲存貯體的存取。會限制儲存貯體存取源自您 VPC 端點之連線的儲存貯體許可，可能會封鎖所有對儲存貯體的連線。如需有關如何修復此問題的資訊，請參閱[我的儲存貯體政策有錯誤的 VPC 或 VPC 端點 ID。我該如何修復政策，讓我可以存取儲存貯體？(位於 ](https://aws.amazon.com/premiumsupport/knowledge-center/s3-regain-access/)*支援 知識中心*)。
使用下列範例儲存貯體政策之前，請以適合您使用案例的適當值取代 VPC 端點 ID。否則，您將無法存取儲存貯體。
如果您的政策僅允許從特定 VPC 端點存取 S3 on Outposts 儲存貯體，則它會停用對該儲存貯體的主控台存取權，因為主控台請求不是源自指定的 VPC 端點。

**Topics**
+ [範例：限制從 VPC 端點對特定儲存貯體的存取](#privatelink-example-restrict-access-to-bucket)
+ [範例：在 S3 on Outposts 儲存貯體政策中拒絕從特定 VPC 端點存取](#s3-outposts-privatelink-example-deny-access-from-vpc-endpoint)

### 範例：限制從 VPC 端點對特定儲存貯體的存取
<a name="privatelink-example-restrict-access-to-bucket"></a>

您可以建立端點政策，以限制只存取特定 S3 on Outposts 儲存貯體。以下政策將 GetBucketPolicy 動作的存取權僅限制於 `example-outpost-bucket`。若要使用這個政策，請使用您的值來取代範例值。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "Policy1415115909151",
    "Statement": [
        {
            "Sid": "Access-to-specific-bucket-only",
            "Principal": {
                "AWS": "111122223333"
            },
            "Action": "s3-outposts:GetBucketPolicy",
            "Effect": "Allow",
            "Resource": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket"
        }
    ]
}
```

------

### 範例：在 S3 on Outposts 儲存貯體政策中拒絕從特定 VPC 端點存取
<a name="s3-outposts-privatelink-example-deny-access-from-vpc-endpoint"></a>

以下 S3 on Outposts 儲存貯體政策拒絕透過 `vpce-1a2b3c4d` VPC 端點在 `example-outpost-bucket` 儲存貯體上存取 GetBucketPolicy。

`aws:sourceVpce` 條件會指定端點，且不需要 VPC 端點資源的 Amazon Resource Name (ARN)，只需要端點 ID。若要使用這個政策，請使用您的值來取代範例值。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "Policy1415115909152",
    "Statement": [
        {
            "Sid": "Deny-access-to-specific-VPCE",
            "Principal": {
                "AWS": "111122223333"
            },
            "Action": "s3-outposts:GetBucketPolicy",
            "Effect": "Deny",
            "Resource": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket",
            "Condition": {
                "StringEquals": {
                    "aws:sourceVpce": "vpce-1a2b3c4d"
                }
            }
        }
    ]
}
```

------