如何允許僅特定 VPC 端點或 IP 位址可存取我的 Amazon S3 儲存貯體?
我只想允許來自特定 Amazon Virtual Private Cloud (Amazon VPC) 端點或 IP 位址的流量進入我的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。
解決方法
使用儲存區原則指定可存取您 S3 儲存貯體的 VPC 端點、私有 IP 位址或公用 IP 位址。
**警告:**以下範例儲存貯體原則明確拒絕存取允許的 VPC 端點或 IP 地址以外的特定請求。評估您的儲存貯體政策,以判斷其是否影響主控台相關的請求。
如果您的策略拒絕存取所有 S3 動作,則您將無法存取儲存貯體。在儲存儲存貯體政策之前,請務必檢閱。如果您將自己鎖定自己在儲存貯體中,請參閱在意外拒絕所有人存取後,如何重新獲取 Amazon S3 儲存貯體的存取權限?
限制對特定 VPC 端點的存取
若要僅允許來自您指定 VPC 端點的流量,請在儲存區原則中使用 aws:SourceVpce。除非上傳請求來自 vpce-1111111 或 vpce-2222222 VPC 端點,否則下列範例儲存貯體政策會拒絕對儲存貯體的上傳權限:
{ "Id": "VPCe", "Version": "2012-10-17", "Statement": [ { "Sid": "VPCe", "Action": "s3:PutObject", "Effect": "Deny", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ], "Condition": { "StringNotEquals": { "aws:SourceVpce": [ "vpce-1111111", "vpce-2222222" ] } }, "Principal": "*" } ] }
若要在 aws:sourceVpce 條件中使用上述政策,請將適用於 Amazon S3 的 VPC 閘道端點附加至 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體子網路的路由表 2)。端點必須與儲存貯體位於相同的 AWS 區域。
限制對特定私有 IP 位址的存取
若要僅允許來自您指定的私有 IP 位址的流量,請在儲存貯體政策中使用 aws:VpcSourceIp。除非上傳請求來自 **10.1.1.1/32 ** 或 172. 1.1.1/32 私有 IP 位址,否則下列範例值區原則會拒絕對儲存貯體的上傳權限:
{ "Id": "VpcSourceIp", "Version": "2012-10-17", "Statement": [ { "Sid": "VpcSourceIp", "Action": "s3:PutObject", "Effect": "Deny", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ], "Condition": { "NotIpAddress": { "aws:VpcSourceIp": [ "10.1.1.1/32", "172.1.1.1/32" ] } }, "Principal": "*" } ] }
若要在 aws:VpcSourceIP 條件中使用上述原則,您必須將適用於 Amazon S3 的 VPC 閘道端點附加至 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體子網路的路由表。端點必須在與儲存貯體相同的區域中。
限制存取特定公用 IP 位址
若要僅允許來自指定的公用 IP 位址流量,請在儲存貯體政策中使用 aws:SourceIp 金鑰。除非上傳要求來自 ** 11.11.11.11/32 ** 或 ** 22.22.22. 22/32** 公用 IP 位址,否則下列範例儲存貯體政策會拒絕對儲存貯體的上傳權限:
{ "Id": "SourceIP", "Version": "2012-10-17", "Statement": [ { "Sid": "SourceIP", "Action": "s3:PutObject", "Effect": "Deny", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ], "Condition": { "NotIpAddress": { "aws:SourceIp": [ "11.11.11.11/32", "22.22.22.22/32" ] } }, "Principal": "*" } ] }
若要允許同一 AWS 帳戶中的特定 AWS Identity and Access Management (IAM) 實體以存取儲存貯體,請在策略的 Condition (條件) 區塊中包含 aws:PrincipalArn 金鑰:
"Condition": { "ArnNotLike": { "aws:PrincipalArn": [ "arn:aws:iam::123456789012:role/role-name", "arn:aws:iam::123456789012:user/user-name", "arn:aws:iam::123456789012:root" ] } }
若要允許使用者從 VPC 端點或 IP 位址對儲存貯體執行 S3 動作,您必須明確允許使用者層級權限。您可以修改 IAM 政策 或 儲存貯體政策中的陳述式 以允許使用者層級權限。
相關內容
- 已提問 8 個月前lg...
- 已提問 10 個月前lg...
- 已提問 1 年前lg...
- AWS 官方已更新 25 天前
- AWS 官方已更新 3 年前
- AWS 官方已更新 2 年前