本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
適用於 Amazon S3 的閘道端點
您可以使用VPC閘道VPC端點從 存取 Amazon S3。建立閘道端點後,您可以在路由表中將閘道端點新增為目的地為 Amazon S3 VPC 的流量目標。
使用閘道端點不需額外付費。
Amazon S3 支援閘道端點和界面端點。使用閘道端點,您可以從 存取 Amazon S3VPC,無需 的網際網路閘道或NAT裝置VPC,也無需額外費用。不過,閘道端點不允許從內部部署網路、對等VPCs在其他 AWS 區域或透過傳輸閘道存取。這些情況下,您必須利用介面端點 (需額外付費)。如需詳細資訊,請參閱 Amazon S3 使用者指南 中的 Amazon S3 VPC端點類型。 Amazon S3
考量事項
-
閘道端點只能在您建立該端點的區域中使用。請務必在與 S3 儲存貯體相同的區域中建立閘道端點。
-
如果您使用的是 Amazon DNS 伺服器,則必須為 啟用DNS主機名稱和DNS解析度VPC。如果您使用自己的DNS伺服器,請確保 Amazon S3 的請求正確解析為 維護的 IP 地址 AWS。
-
對於透過閘道端點存取 Amazon S3 的執行個體,安全群組的規則必須允許進出 Amazon S3 的流量。您可以在安全群組規則中參照 Amazon S3 的字首清單 ID。
-
透過閘道端點存取 Amazon S3 之執行個體的ACL子網路網路必須允許往返 Amazon S3 的流量。您無法在網路ACL規則中參考字首清單,但您可以從 Amazon S3 字首清單中取得 Amazon S3 的 IP 地址範圍。
-
檢查您是否使用 AWS 服務 需要存取 S3 儲存貯體的 。例如,服務可能需要存取包含日誌檔案的儲存貯體,或者可能需要您將驅動程式或代理程式下載至EC2執行個體。如果是這樣,請確定您的端點政策允許 AWS 服務 或 資源使用
s3:GetObject
動作存取這些儲存貯體。 -
您無法在身分政策或儲存貯體政策中使用
aws:SourceIp
條件,以請求 Amazon S3 周遊VPC端點。請改用aws:VpcSourceIp
條件。或者,您可以使用路由表來控制哪些EC2執行個體可以透過VPC端點存取 Amazon S3。 -
閘道端點僅支援IPv4流量。
-
Amazon S3 收到的受影響子網路中執行個體的來源IPv4地址,會從公有IPv4地址變更為 中的私有IPv4地址VPC。端點會切換網路路由,並中斷開放TCP連線。先前使用公有IPv4地址的連線不會繼續。建議您在建立或修改端點時不要執行重要任務,或者建議您進行測試,確保軟體在斷線之後可以自動重新連線至 Amazon S3。
-
端點連線無法從 延伸VPC。VPN 連線、VPC對等連線、傳輸閘道或 中 AWS Direct Connect 連線的另一端的資源VPC無法使用閘道端點與 Amazon S3 通訊。
-
您的帳戶對於每個區域的預設配額為 20 個閘道端點,此配額可進行調整。每個 也有 255 個閘道端點的限制VPC。
私有 DNS
當您為 Amazon S3 建立閘道端點和介面端點時,您可以設定私有DNS以最佳化成本。
Route 53 Resolver
Amazon 為您的 提供名為 Route 53 Resolver 的DNS伺服器VPC。Route 53 Resolver 會自動解析私有託管區域中的本機VPC網域名稱和記錄。不過,您無法從 外部使用 Route 53 ResolverVPC。Route 53 提供 Resolver 端點和 Resolver 規則,以便您可以從 外部使用 Route 53 ResolverVPC。傳入 Resolver 端點會將DNS查詢從內部部署網路轉送到 Route 53 Resolver。傳出解析程式端點會將DNS查詢從 Route 53 Resolver 轉送到內部部署網路。
當您將 Amazon S3 的介面端點設定為DNS僅針對傳入解析程式端點使用私有時,我們會建立傳入解析程式端點。傳入解析程式端點會將 Amazon S3 的DNS查詢從內部部署解析至介面端點的私有 IP 地址。我們也會將 Route 53 Resolver ALIAS的記錄新增至 Amazon S3 的公有託管區域,以便從 VPC解析的DNS查詢傳送至 Amazon S3 公有 IP 地址,將流量路由至閘道端點。
私有 DNS
如果您DNS為 Amazon S3 的介面端點設定私有,但不是DNS僅為傳入的解析器端點設定私有,則您的內部部署網路和 的請求都會VPC使用介面端點來存取 Amazon S3。因此,您需付費使用來自 的流量介面端點VPC,而不需使用閘道端點,無需額外付費。
僅限傳入 Resolver 端點DNS的私有
如果您DNS僅為傳入 Resolver 端點設定私有,則內部部署網路的請求會使用介面端點來存取 Amazon S3,而您的請求VPC會使用閘道端點來存取 Amazon S3。因此,您可以最佳化成本,因為只有在無法使用閘道端點的流量使用介面端點時,您才需要付費。
設定私有 DNS
您可以在建立介面端點時或建立介面端點之後,DNS為 Amazon S3 設定私有。如需詳細資訊,請參閱 建立 VPC 端點 (建立期間設定) 或 啟用私有 DNS 名稱 (建立後設定)。
建立閘道端點
使用下列程序建立連線至 Amazon S3 的閘道端點。
使用主控台建立閘道端點
在 開啟 Amazon VPC主控台https://console.aws.amazon.com/vpc/
。 -
在導覽窗格中選擇端點。
-
選擇建立端點。
-
對於 Service category (服務類別),選擇 AWS 服務。
-
對於服務 ,新增篩選條件類型 = Gateway,然後選取 com.amazonaws。
region
.s3. -
針對 VPC,選取要在VPC其中建立端點的 。
-
針對 Route tables (路由表),選取要供端點使用的路由表。我們會自動新增路由,將以服務為目標的流量指向端點網路介面。
-
針對政策 ,選取完整存取權,以允許端點上所有資源的所有主體進行所有操作VPC。否則,請選取自訂以連接VPC端點政策,以控制主體在VPC端點上執行資源動作的許可。
-
(選用) 若要新增標籤,請選擇 Add new tag (新增標籤),然後輸入標籤的鍵和值。
-
選擇建立端點。
若要使用命令列建立閘道端點
-
create-vpc-endpoint (AWS CLI)
-
New-EC2VpcEndpoint (適用於 Windows 的工具 PowerShell)
使用儲存貯體政策控制存取
您可以使用儲存貯體政策來控制特定端點、VPCs、IP 地址範圍和 對儲存貯體的存取 AWS 帳戶。這些範例假定還有政策聲明允許您的使用案例所需的存取權限。
範例:限制特定端點的存取
您可以使用 aws:sourceVpce 條件金鑰,建立儲存貯體政策來限制對特定端點的存取。除非使用指定的閘道端點,否則以下政策會拒絕使用指定動作存取指定的儲存貯體。請注意,此政策會封鎖透過 AWS Management Console使用指定動作來存取指定的儲存貯體。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow-access-to-specific-VPCE", "Effect": "Deny", "Principal": "*", "Action": ["s3:PutObject", "s3:GetObject", "s3:DeleteObject"], "Resource": ["arn:aws:s3:::
bucket_name
", "arn:aws:s3:::bucket_name
/*"], "Condition": { "StringNotEquals": { "aws:sourceVpce": "vpce-1a2b3c4d
" } } } ] }
範例:限制對特定 的存取 VPC
您可以使用 aws:sourceVpc 條件金鑰,建立儲存貯體政策來限制對特定 VPCs的存取。如果您在相同的 中設定了多個端點,這很有用VPC。除非請求來自指定的 ,否則下列政策會拒絕使用指定的動作存取指定的儲存貯體VPC。請注意,此政策會封鎖透過 AWS Management Console使用指定動作來存取指定的儲存貯體。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow-access-to-specific-VPC", "Effect": "Deny", "Principal": "*", "Action": ["s3:PutObject", "s3:GetObject", "s3:DeleteObject"], "Resource": ["arn:aws:s3:::
example_bucket
", "arn:aws:s3:::example_bucket
/*"], "Condition": { "StringNotEquals": { "aws:sourceVpc": "vpc-111bbb22
" } } } ] }
範例:限制對特定 IP 地址範圍的存取
您可以使用 aws:VpcSourceIp 條件金鑰,建立限制存取特定 IP 地址範圍的政策。除非請求是來自指定的 IP 地址,否則以下政策會拒絕使用指定動作存取指定的儲存貯體。請注意,此政策會封鎖透過 AWS Management Console使用指定動作來存取指定的儲存貯體。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow-access-to-specific-VPC-CIDR", "Effect": "Deny", "Principal": "*", "Action": ["s3:PutObject", "s3:GetObject", "s3:DeleteObject"], "Resource": ["arn:aws:s3:::
bucket_name
", "arn:aws:s3:::bucket_name
/*"], "Condition": { "NotIpAddress": { "aws:VpcSourceIp": "172.31.0.0/16
" } } } ] }
範例:限制對特定 中儲存貯體的存取 AWS 帳戶
您可以使用 s3:ResourceAccount
條件金鑰,建立政策來限制對特定 AWS 帳戶 中 S3 儲存貯體的存取。除非指定的動作為 AWS 帳戶所擁有,否則以下政策會拒絕使用指定動作存取 S3 儲存貯體。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow-access-to-bucket-in-specific-account", "Effect": "Deny", "Principal": "*", "Action": ["s3:GetObject", "s3:PutObject", "s3:DeleteObject"], "Resource": "arn:aws:s3:::*", "Condition": { "StringNotEquals": { "s3:ResourceAccount": "
111122223333
" } } } ] }
關聯路由表
您可變更與閘道端點關聯的路由表。當您關聯路由表時,我們會自動新增路由,將以服務為目標的流量指向端點網路介面。當您取消路由表的關聯時,我們會自動從路由表中移除端點路由。
若要使用主控台來關聯路由表
在 開啟 Amazon VPC主控台https://console.aws.amazon.com/vpc/
。 -
在導覽窗格中選擇端點。
-
選取閘道端點。
-
選擇 Actions (動作)、Manage route tables (管理路由表)。
-
視需要選取或取消選取路由表。
-
選擇 Modify route tables (修改路由表)。
若要使用命令列來關聯路由表
-
modify-vpc-endpoint (AWS CLI)
-
Edit-EC2VpcEndpoint (適用於 Windows 的工具 PowerShell)
編輯VPC端點政策
您可以編輯閘道端點的端點政策,該政策VPC透過端點控制 Amazon S3 的存取。預設政策允許完整存取。如需詳細資訊,請參閱端點政策。
若要使用主控台變更端點政策
在 開啟 Amazon VPC主控台https://console.aws.amazon.com/vpc/
。 -
在導覽窗格中選擇端點。
-
選取閘道端點。
-
選擇 Actions (動作)、Manage policy (管理政策)。
-
選擇 Full Access (完整存取) 以允許完整存取服務,或選擇 Custom (自訂) 並連接自訂政策。
-
選擇 Save (儲存)。
下列範例端點原則用於存取 Amazon S3。
範例:限制特定儲存貯體的存取
您可以建立政策,以限制只存取特定 S3 儲存貯體。如果您在使用 S3 儲存貯體的 AWS 服務 中有其他 VPC ,這會很有用。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow-access-to-specific-bucket", "Effect": "Allow", "Principal": "*", "Action": [ "s3:ListBucket", "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::
bucket_name
", "arn:aws:s3:::bucket_name
/*" ] } ] }
範例:限制對特定IAM角色的存取
您可以建立限制存取特定IAM角色的政策。您必須使用 aws:PrincipalArn
來授予對主體的存取權。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow-access-to-specific-IAM-role", "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*", "Condition": { "ArnEquals": { "aws:PrincipalArn": "arn:aws:iam::
111122223333
:role/role_name
" } } } ] }
範例:限制對特定帳戶中使用者的存取
您可以建立政策,限制特定帳戶的存取。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow-callers-from-specific-account", "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalAccount": "
111122223333
" } } } ] }
刪除閘道端點
閘道端點結束使用後即可刪除。當您刪除閘道端點時,我們會從子網路由表中移除端點路由。
如果DNS啟用私有,則無法刪除閘道端點。
若要使用主控台刪除閘道端點
在 開啟 Amazon VPC主控台https://console.aws.amazon.com/vpc/
。 -
在導覽窗格中選擇端點。
-
選取閘道端點。
-
選擇動作 ,刪除VPC端點 。
-
出現確認提示時,請按一下
delete
。 -
選擇 刪除 。
若要使用命令列刪除閘道端點
-
delete-vpc-endpoints (AWS CLI)
-
Remove-EC2VpcEndpoint (適用於 Windows 的工具 PowerShell)