AWS PrivateLink 對於 Amazon S3 - Amazon Simple Storage Service

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

AWS PrivateLink 對於 Amazon S3

使 AWS PrivateLink 用 Amazon S3,您可以在虛擬私有雲 (VPC) 中佈建界面 VPC 端點 (界面端點)。這些端點可直接從內部部署的應用程式透過 VPN 存取 AWS Direct Connect,或透 AWS 區域 過 VPC 對等互連的其他應用程式存取。

介面端點由一個或多個彈性網路介面 (ENI) 來表示,這些是在 VPC 的子網路中指派的私有 IP 地址。透過界面端點傳送到 Amazon S3 的請求會保留在 Amazon 網路。您也可以透過 AWS Direct Connect 或 AWS Virtual Private Network (AWS VPN) 從內部部署應用程式存取 VPC 中的介面端點。如需有關如何將 VPC 與內部部署網路連線的詳細資訊,請參閱AWS Direct Connect 《 使用者指南》AWS Site-to-Site VPN 《 使用者指南》

如需有關介面端點的一般資訊,請參閱《AWS PrivateLink指南》中的介面 VPC 端點 (AWS PrivateLink )

適用於 Amazon S3 的 VPC 端點類型

您可以使用兩種類型的 VPC 端點存取 Amazon S3:閘道端點界面端點 (使用 AWS PrivateLink)。閘道端點是您在路由表中指定的閘道,可透過 AWS 網路從 VPC 存取 Amazon S3。界面端點使用私有 IP 地址,透過使用 VPC 對等或從 VPC 內部、內部部署或從另一個 VPC 中的 VPC 路 AWS 區域 由請求到 Amazon S3,從而擴展閘道端點的功能。 AWS Transit Gateway如需詳細資訊,請參閱什麼是 VPC 對等互連?Transit Gateway 與 VPC 對等互連

介面端點與閘道端點相容。如果 VPC 中具有現有的閘道端點,則可以在同一 VPC 中使用兩種類型的端點。

適用於 Amazon S3 的閘道端點

適用於 Amazon S3 的介面端點

在這兩種情況下,您的網路流量都會保留在 AWS 網路上。

使用 Amazon S3 公有 IP 地址

使用 VPC 中的私有 IP 地址來存取 Amazon S3

使用相同的 Amazon S3 DNS 名稱

需要端點特定 Amazon S3 DNS 名稱

不允許從內部部署存取

允許從內部部署存取

不允許從其他人存取 AWS 區域

AWS 區域 透過使用 VPC 對等互連,允許從另一個 VPC 中的 VPC 存取 AWS Transit Gateway

不計費

計費

如需有關閘道端點的詳細資訊,請參閱《AWS PrivateLink 指南》中的閘道 VPC 端點

VPC 限制適用 AWS PrivateLink 於 Amazon S3。如需詳細資訊,請參閱《AWS PrivateLink 指南》中的界面端點考量事項AWS PrivateLink 配額。此外,適用下列限制。

AWS PrivateLink 對於 Amazon S3 不支持以下內容:

建立一個 VPC 端點

如要建立 VPC 介面端點,請參閱《AWS PrivateLink 指南》中的建立 VPC 端點

存取 Amazon S3 介面端點

在您建立介面端點時,Amazon S3 會產生兩種類型的端點特定 S3 DNS 名稱:區域地區

  • DNS 名稱包括唯一的 VPC 端點識別碼、服務識別碼 AWS 區域、和名稱vpce.amazonaws.com中的。例如,針對 VPC 端點 IDvpce-1a2b3c4d,產生的 DNS 名稱可能類似於 vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com

  • 地區 DNS 名稱包含可用區域,例如 vpce-1a2b3c4d-5e6f-us-east-1a.s3.us-east-1.vpce.amazonaws.com。如果您的架構可隔離可用區域,則可以使用此選項。例如,您可以將其用於故障遏止或降低區域資料傳輸成本。

端點特定 S3 DNS 名稱可以從 S3 公有 DNS 網域解析。

私有 DNS

VPC 界面端點的私有 DNS 選項會簡化透過 VPC 端點的 S3 流量路由,並協助您利用應用程式可用成本最低的網路路徑。您可以使用私有 DNS 選項路由區域 S3 流量,而無需更新 S3 用戶端,以使用界面端點的端點特定 DNS 名稱或管理 DNS 基礎設施。啟用私有 DNS 名稱後,區域 S3 DNS 查詢會針對下列端點解析 AWS PrivateLink 為的私有 IP 位址:

  • 區域儲存貯體端點 (例如,s3.us-east-1.amazonaws.com)

  • 控制端點 (例如,s3-control.us-east-1.amazonaws.com)

  • 存取點端點 (例如,s3-accesspoint.us-east-1.amazonaws.com)

若您的 VPC 中有閘道端點,您可以在界面端點,透過現有 S3 閘道端點和內部部署請求,自動路由 VPC 內請求。這種方法可讓您免費使用 VPC 內流量的閘道端點,針對 VPC 內流量來最佳化網路成本。您的內部部署應用程式可 AWS PrivateLink 以在輸入解析器端點的協助下使用。Amazon 會為您的 VPC 提供 DNS 伺服器,名為 Route 53 Resolver。傳入 Resolver 端點會將 DNS 查詢從內部部署網路轉送至 Route 53 Resolver。

重要

若要在使用僅針對輸入端點啟用私有 DNS 時利用成本最低的網路路徑,VPC 中必須有閘道端點。選取僅針對輸入端點啟用私有 DNS 時,閘道端點的存在有助於確保 VPC 內流量皆是透過 AWS 私有網路路由。選取僅針對輸入端點啟用私有 DNS 選項時,必須維護此閘道端點。若要刪除閘道端點,必須先清除僅針對輸入端點啟用私有 DNS

如果您想要將現有界面端點更新為僅針對輸入端點啟用私有 DNS,請先確認您的 VPC 具有 S3 閘道端點。如需有關閘道端點和管理私有 DNS 名稱的詳細資訊,請參閱《AWS PrivateLink 指南》中的閘道 VPC 端點管理 DNS 名稱

只有支援閘道端點的服務才能使用僅針對輸入端點啟用私有 DNS 選項。

如需詳細了解使用僅針對輸入端點啟用私有 DNS建立的 VPC 端點,請參閱《AWS PrivateLink 指南》中的建立界面端點

使用 VPC 主控台

在主控台中,您有兩個選項:啟用 DNS 名稱僅針對輸入端點啟用私有 DNS啟用 DNS 名稱是支援的選項 AWS PrivateLink。透過使用啟用 DNS 名稱選項,您可以使用 Amazon 與 Amazon S3 的私有連線,同時向預設公有端點 DNS 名稱傳送請求。啟用此選項後,客戶可以利用其應用程式可用的最低成本網路路徑。

在 Amazon S3 的現有或新 VPC 界面端點上啟用私有 DNS 名稱時,根據預設,系統會選取僅針對輸入端點啟用私有 DNS 選項。如果選取此選項,針對內部部署流量,您的應用程式只會使用界面端點。此 VPC 內流量會自動使用成本較低的閘道端點。或者,您可以清除僅針對傳入端點啟用私有 DNS,以透過界面端點路由所有 S3 請求。

使用 AWS CLI

如果您不指定 PrivateDnsOnlyForInboundResolverEndpoint 的值,則會預設為 true。但是,在 VPC 套用您的設定之前,會先執行檢查以確定 VPC 中存在閘道端點。如果 VPC 中存在閘道端點,則表示呼叫成功。若無,您看到以下錯誤訊息:

若要設定 PrivateDnsOnlyForInboundResolverEndpoint 為 true,VPC vpce_id 必須具有該服務的閘道端點。

針對新的 VPC 界面端點

使用 private-dns-enableddns-options 屬性透過命令列啟用私有 DNS。dns-options 屬性中的 PrivateDnsOnlyForInboundResolverEndpoint 選項必須設定為 true。以您自己的資訊取代 user input placeholders

aws ec2 create-vpc-endpoint \ --region us-east-1 \ --service-name s3-service-name \ --vpc-id client-vpc-id \ --subnet-ids client-subnet-id \ --vpc-endpoint-type Interface \ --private-dns-enabled \ --ip-address-type ip-address-type \ --dns-options PrivateDnsOnlyForInboundResolverEndpoint=true \ --security-group-ids client-sg-id

針對現有 VPC 端點

如果您想對現有 VPC 端點使用私有 DNS,請使用下列範例命令,並以您自己的資訊取代 user input placeholders

aws ec2 modify-vpc-endpoint \ --region us-east-1 \ --vpc-endpoint-id client-vpc-id \ --private-dns-enabled \ --dns-options PrivateDnsOnlyForInboundResolverEndpoint=false

如果您想要更新現有 VPC 端點,以僅針對傳入 Resolver 啟用私有 DNS,請使用下列範例,並以您自己的值取代範例值。

aws ec2 modify-vpc-endpoint \ --region us-east-1 \ --vpc-endpoint-id client-vpc-id \ --private-dns-enabled \ --dns-options PrivateDnsOnlyForInboundResolverEndpoint=true

從 S3 界面端點存取儲存貯體、存取點和 Amazon S3 控制 API 操作

您可以使用 AWS CLI 或 AWS 開發套件透過 S3 界面端點存取儲存貯體、S3 存取點和 Amazon S3 控制 API 操作。

下圖顯示了 VPC 主控台詳細資訊標籤,您可以在其中找到 VPC 端點的 DNS 名稱。在此範例中,VPC 端點 ID (vpce-id)vpce-0e25b8cdd720f900eDNS 名稱*.vpce-0e25b8cdd720f900e-argc85vg.s3.us-east-1.vpce.amazonaws.com

VPC 主控台的詳細資料標籤。

使用 DNS 名稱存取資源時,請以適當的值取代 *。取代 * 的適當值如下:

  • bucket

  • accesspoint

  • control

例如,若要存取儲存貯體,請使用類似以下的 DNS 名稱

bucket.vpce-0e25b8cdd720f900e-argc85vg.s3.us-east-1.vpce.amazonaws.com

如需相關範例,了解如何使用 DNS 名稱存取儲存貯體、存取點和 Amazon S3 控制 API 操作,請參閱以下 AWS CLI 例子AWS SDK 範例 章節。

如需如何檢視端點特定 DNS 名稱的詳細資訊,請參閱《VPC 使用者指南》中的檢視端點服務私有 DNS 名稱組態

若要透過 AWS CLI 命令中的 S3 界面端點存取 S3 儲存貯體、S3 存取點或 Amazon S3 控制 API 操作,請使用--region--endpoint-url參數。

範例:使用端點 URL 列出儲存貯體中的物件

在下列範例中,將儲存貯體名稱 my-bucket、區域 us-east-1 和 VPC 端點 ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com 的 DNS 名稱取代為您自己的資訊。

aws s3 ls s3://my-bucket/ --region us-east-1 --endpoint-url https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com

範例:使用端點 URL 從存取點列出物件

  • 方法 1 — 搭配使用存取點的 Amazon Resource Name (ARN) 與存取點端點

    將 ARN us-east-1:123456789012:accesspoint/accesspointexamplename、區域 us-east-1 和 VPC 端點 ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com 取代為您的資訊。

    aws s3api list-objects-v2 --bucket arn:aws:s3:us-east-1:123456789012:accesspoint/accesspointexamplename --region us-east-1 --endpoint-url https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com

    如果您無法成功執行命令,請更新 AWS CLI 至最新版本,然後再試一次。如需更新相關指示,請參閱《AWS Command Line Interface 使用者指南》中的安裝或更新 AWS CLI的最新版本

  • 方法 2 — 將存取點的別名與區域儲存貯體端點搭配使用

    在下列範例中,將存取點別名 accesspointexamplename-8tyekmigicmhun8n9kwpfur39dnw4use1a-s3alias、區域 us-east-1 和 VPC 端點 ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com 取代為您的資訊。

    aws s3api list-objects-v2 --bucket accesspointexamplename-8tyekmigicmhun8n9kwpfur39dnw4use1a-s3alias --region us-east-1 --endpoint-url https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
  • 方法 3 — 將存取點的別名與存取點端點搭配使用

    首先,若要使用包含在主機名稱中的儲存貯體來建構 S3 端點,請將 aws s3api 的地址樣式設定為 virtual 以供使用。如需 AWS configure 相關資訊,請參閱《AWS Command Line Interface 使用者指南》中的組態和憑證檔案設定

    aws configure set default.s3.addressing_style virtual

    接著,在下列範例中,將存取點別名 accesspointexamplename-8tyekmigicmhun8n9kwpfur39dnw4use1a-s3alias、區域 us-east-1 和 VPC 端點 ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com 取代為您的資訊。如需存取點別名的詳細資訊,請參閱〈〉針對您的 S3 儲存貯體存取點使用儲存貯體樣式別名

    aws s3api list-objects-v2 --bucket accesspointexamplename-8tyekmigicmhun8n9kwpfur39dnw4use1a-s3alias --region us-east-1 --endpoint-url https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
範例:使用端點 URL 列出具有 S3 控制 API 操作的任務

在下列範例中,將區域 us-east-1、VPC 端點 ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com 和 帳戶 ID 12345678 取代為您的資訊。

aws s3control --region us-east-1 --endpoint-url https://control.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com list-jobs --account-id 12345678

若要在使用 AWS 開發套件時透過 S3 介面端點存取 S3 儲存貯體、S3 存取點或 Amazon S3 控制 API 操作,請將您的開發套件更新為最新版本。接著,設定您的用戶端使用端點 URL,以透過 S3 界面端點來存取儲存貯體、存取點或 Amazon S3 控制 API 操作。

SDK for Python (Boto3)
範例:使用端點 URL 存取 S3 儲存貯體

在下列範例中,將區域 us-east-1 和 VPC 端點 ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com 取代為您的資訊。

s3_client = session.client( service_name='s3', region_name='us-east-1', endpoint_url='https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com' )
範例:使用端點 URL 存取 S3 存取點

在下列範例中,將區域 us-east-1 和 VPC 端點 ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com 取代為您的資訊。

ap_client = session.client( service_name='s3', region_name='us-east-1', endpoint_url='https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com' )
範例:使用端點 URL 存取 Amazon S3 控制 API

在下列範例中,將區域 us-east-1 和 VPC 端點 ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com 取代為您的資訊。

control_client = session.client( service_name='s3control', region_name='us-east-1', endpoint_url='https://control.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com' )
SDK for Java 1.x
範例:使用端點 URL 存取 S3 儲存貯體

在下列範例中,將 VPC 端點 ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com 取代為您的資訊。

// bucket client final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withEndpointConfiguration( new AwsClientBuilder.EndpointConfiguration( "https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com", Regions.DEFAULT_REGION.getName() ) ).build(); List<Bucket> buckets = s3.listBuckets();
範例:使用端點 URL 存取 S3 存取點

在下列範例中,將 VPC 端點 ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com 和 ARN us-east-1:123456789012:accesspoint/prod 取代為您的資訊。

// accesspoint client final AmazonS3 s3accesspoint = AmazonS3ClientBuilder.standard().withEndpointConfiguration( new AwsClientBuilder.EndpointConfiguration( "https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com", Regions.DEFAULT_REGION.getName() ) ).build(); ObjectListing objects = s3accesspoint.listObjects("arn:aws:s3:us-east-1:123456789012:accesspoint/prod");
範例:使用端點 URL 存取 Amazon S3 控制 API 操作

在下列範例中,將 VPC 端點 ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com 取代為您的資訊。

// control client final AWSS3Control s3control = AWSS3ControlClient.builder().withEndpointConfiguration( new AwsClientBuilder.EndpointConfiguration( "https://control.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com", Regions.DEFAULT_REGION.getName() ) ).build(); final ListJobsResult jobs = s3control.listJobs(new ListJobsRequest());
SDK for Java 2.x
範例:使用端點 URL 存取 S3 儲存貯體

在下列範例中,將 VPC 端點 ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com 和區域 Region.US_EAST_1 取代為您的資訊。

// bucket client Region region = Region.US_EAST_1; s3Client = S3Client.builder().region(region) .endpointOverride(URI.create("https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com")) .build()
範例:使用端點 URL 存取 S3 存取點

在下列範例中,將 VPC 端點 ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com 和區域 Region.US_EAST_1 取代為您的資訊。

// accesspoint client Region region = Region.US_EAST_1; s3Client = S3Client.builder().region(region) .endpointOverride(URI.create("https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com")) .build()
範例:使用端點 URL 存取 Amazon S3 控制 API

在下列範例中,將 VPC 端點 ID vpce-1a2b3c4d-5e6f.s3.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://control.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com")) .build()

更新內部部署 DNS 組態

使用端點特定 DNS 名稱來存取 Amazon S3 的介面端點時,您不必更新內部部署 DNS 解析器。您可以使用公有 Amazon S3 DNS 網域中介面端點的私有 IP 地址,來解析端點特定的 DNS 名稱。

使用介面端點來存取 Amazon S3,而不需要 VPC 中的閘道端點或網際網路閘道

VPC 中的介面端點可以透過 Amazon 網路,將 VPC 內應用程式和內部部署應用程式路由至 Amazon S3,如下圖所示。

顯示使用界面端點存取 Amazon S3 的資料流程圖和 AWS PrivateLink.

此圖展示了以下要點:

  • 您的內部部署網路使用 AWS Direct Connect 或連線 AWS VPN 至 VPC A。

  • 您的內部部署和 VPC A 中的應用程式使用端點特定的 DNS 名稱,透過 S3 介面端點存取 Amazon S3。

  • 內部部署應用程式透過 AWS Direct Connect (或 AWS VPN) 將資料傳送到 VPC 中的介面端點。 AWS PrivateLink 透過 AWS 網路將資料從介面端點移至 Amazon S3。

  • 虛擬私人雲端應用程式也會將流量傳送至介面端點。 AWS PrivateLink 透過 AWS 網路將資料從介面端點移至 Amazon S3。

在同一 VPC 中使用閘道端點和介面端點來存取 Amazon S3

您可以建立介面端點,並將現有的閘道端點保留在同一 VPC 中,如下圖所示。使用這個方式,您可以允許 VPC 內應用程式繼續透過閘道端點來存取 Amazon S3,而無需支付費用。然後,只有您的內部部署應用程式才會使用控制 API 端點來存取 Amazon S3。若要以這種方式存取 Amazon S3,您必須更新內部部署應用程式,以使用 Amazon S3 端點特定 DNS 名稱。

顯示使用閘道端點和界面端點存取 Amazon S3 的資料流程圖。

此圖展示了以下要點:

  • 內部部署應用程式使用端點特定的 DNS 名稱,透過 AWS Direct Connect (或) 將資料傳送至 VPC 內的介面端點。 AWS VPN AWS PrivateLink 透過 AWS 網路將資料從介面端點移至 Amazon S3。

  • VPC 擬私人雲端應用程式使用預設區域 Amazon S3 名稱,將資料傳送到透過網路連接到 Amazon S3 的閘道端點。 AWS

如需有關閘道端點的詳細資訊,請參閱《VPC 使用者指南》中的閘道 VPC 端點

為 Amazon S3 建立 VPC 端點政策

您可以將端點政策連接至控制 Amazon S3 存取權的 VPC 端點。此政策會指定下列資訊:

  • 可以執行動作的 AWS Identity and Access Management (IAM) 主體

  • 可執行的動作

  • 可在其中執行動作的資源

您還可以利用 Amazon S3 儲存貯體政策,使用儲存貯體政策中的 aws:sourceVpce 條件,來限制特定 VPC 端點對特定儲存貯體的存取。下列範例顯示了限制儲存貯體或端點存取權的政策。

您可以建立端點政策,以限制只存取特定 Amazon S3 儲存貯體。如果您的 VPC AWS 服務 中有其他使用值區的策略,則此類型的策略非常有用。下列儲存貯體政策限制只存取 DOC-EXAMPLE-BUCKET1。若要使用此端點政策,請將 DOC-EXAMPLE-BUCKET1 取代為您的儲存貯體名稱。

{ "Version": "2012-10-17", "Id": "Policy1415115909151", "Statement": [ { "Sid": "Access-to-specific-bucket-only", "Principal": "*", "Action": [ "s3:GetObject", "s3:PutObject" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::DOC-EXAMPLE-BUCKET1", "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*"] } ] }

您可以建立端點政策,限制只存取特定 S3 儲存貯體中的 S3 儲存貯體 AWS 帳戶。若要防止 VPC 內的用戶端存取您未擁有的儲存貯體,請在端點政策中使用下列陳述式。下列範例陳述式會建立政策,限制對單一 AWS 帳戶 ID 111122223333 所擁有資源的存取。

{ "Statement": [ { "Sid": "Access-to-bucket-in-specific-account-only", "Principal": "*", "Action": [ "s3:GetObject", "s3:PutObject" ], "Effect": "Deny", "Resource": "arn:aws:s3:::*", "Condition": { "StringNotEquals": { "aws:ResourceAccount": "111122223333" } } } ] }
注意

若要指定要存取之資源的 AWS 帳戶 ID,您可以在 IAM 政策中使用aws:ResourceAccounts3:ResourceAccount金鑰。但是,請注意,有些人 AWS 服務 依賴對 AWS 託管存儲桶的訪問。因此,在 IAM 政策使用 aws:ResourceAccount 或者 s3:ResourceAccount 金鑰也可能影響對這些資源的存取。

範例:限制對 S3 儲存貯體政策中特定 VPC 端點的存取

下列 Amazon S3 儲存貯體政策允許僅從 VPC 端點 vpce-1a2b3c4d 存取特定儲存貯體 DOC-EXAMPLE-BUCKET2。如果未使用指定的端點,政策會拒絕所有對儲存貯體的存取。aws:sourceVpce 條件會指定端點,且不需要 VPC 端點資源的 Amazon Resource Name (ARN),只需要端點 ID。若要使用此儲存貯體政策,請將 DOC-EXAMPLE-BUCKET2vpce-1a2b3c4d 取代為您的儲存貯體名稱與端點。

重要
  • 套用下列 Amazon S3 儲存貯體政策以將存取限制為特定 VPC 端點時,您可能會意外封鎖對儲存貯體的存取。來自您 VPC 端點,旨在特別限制儲存貯體存取連線的儲存貯體政策,可能會封鎖所有對儲存貯體的連線。如需有關如何修復此問題的資訊,請參閱我的儲存貯體政策有錯誤的 VPC 或 VPC 端點 ID。我該如何修復政策,讓我可以存取儲存貯體?(位於 AWS Support 知識中心)。

  • 使用下列範例政策之前,請以適合您使用案例的適當值取代 VPC 端點 ID。否則,您將無法存取儲存貯體。

  • 此政策會停用對指定儲存貯體的主控台存取,因為主控台要求不是來自指定的 VPC 端點。

{ "Version": "2012-10-17", "Id": "Policy1415115909152", "Statement": [ { "Sid": "Access-to-specific-VPCE-only", "Principal": "*", "Action": "s3:*", "Effect": "Deny", "Resource": ["arn:aws:s3:::DOC-EXAMPLE-BUCKET2", "arn:aws:s3:::DOC-EXAMPLE-BUCKET2/*"], "Condition": {"StringNotEquals": {"aws:sourceVpce": "vpce-1a2b3c4d"}} } ] }

如需更多政策範例,請參閱《VPC 使用者指南》中的適用於 Amazon S3 的端點

如需 VPC 連線的詳細資訊,請參閱 AWS 白皮書 Amazon Virtual Pri vate Cloud 連線選項中的網路到 VPC 連線選項