Cup*_*fee 3 amazon-s3 amazon-web-services
我正在努力理解 AWS 文档的这一部分,好心人可以帮助用更简单的术语解释这些吗?
这是文档页面 https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html
阻止公共访问的四个设置:
BlockPublicAcls
、IgnorePublicAcls
、BlockPublicPolicy
、RestrictPublicBuckets
。
如何BlockPublicAcls
与IgnorePublicAcls
工作的不同?
如何BlockPublicPolicy
与RestrictPublicBuckets
工作的不同?
而下面的段落......该设置将通过还是应用于存储桶?
接入点没有关联的 ACL。如果您将此设置应用于访问点,它将充当到底层存储桶的直通。如果访问点启用了此设置,则通过访问点发出的请求就像底层存储桶启用了此设置一样,无论存储桶是否实际启用了此设置。
我可以看到这可能会令人困惑,但是下面的内容应该有助于说明这些的用法。
BlockPublicAcls
- 这可以防止创建任何新的ACL 或修改现有的ACL,从而实现对对象的公共访问。仅凭这一点,现有的 ACL 就不会受到影响。IgnorePublicAcls
- 任何具有公共访问权限的 ACL 操作都将被忽略,这不会阻止它们被创建,但会阻止它们的影响。BlockPublicPolicy
- 这可以防止在 S3 存储桶上创建或修改包含公共操作的存储桶策略,存储桶本身仍将允许现有策略。RestrictPublicBuckets
- 这将阻止非 AWS 服务或授权用户(例如 IAM 用户或角色)能够公开访问存储桶中的对象。BlockPublicAcls 和 IgnorePublicAcls 的工作方式有何不同?
例如,AWS S3 api 有一个调用,例如put-object have option --acl
。有了这个,您不仅可以上传对象,还可以将其公开。
当Block Public Access
关闭时,呼叫
aws s3api put-object --bucket some-bucket --acl public-read --key test.file
Run Code Online (Sandbox Code Playgroud)
成功,test.file
不仅会上传,还会公开。
现在,如果您启用:
BlockPublicAcls
: 上述API 将失败。任何允许的 API--acl public-read
都会被拒绝。所以test.file
不会上传。IgnorePublicAcls
: API 调用成功。文件已上传,但选项--acl public-read
被忽略并且文件是私有的。BlockPublicPolicy 和 RestrictPublicBuckets 的工作方式有何不同?
同样,您可以使用put-bucket-policy来应用公共存储桶策略,例如:
{
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::MyBucket/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
和
aws s3api put-bucket-policy --bucket MyBucket --policy file://policy.json
Run Code Online (Sandbox Code Playgroud)
现在,如果您启用:
BlockPublicPolicy
上述API 将失败,因为该策略允许使用公共 API。
RestrictPublicBuckets
上述API 将成功,并且将应用存储桶策略。但是,该策略将被忽略,并且对象将是私有的。禁用RestrictPublicBuckets
将使策略起作用,并且对象将公开可用。
有一些新方法可以控制对对象的访问。您可以创建自己的端点并使用它,而不是像上面的示例中那样使用 AWS 默认的 S3 端点。例如:
aws s3api put-object --bucket some-bucket --acl public-read --key test.file --endpoint-url https://<endpoint-name>-<account-id>.s3-accesspoint.<region>.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
单个存储桶可以有多个访问点及其端点,用于不同的目的。此外,每个接入点都有自己的 Block Public Access
设置和接入点策略(类似于存储桶策略)。Block Public Access
访问点中的选项与存储桶的工作方式类似,但您引用的文档中提到了例外情况。
归档时间: |
|
查看次数: |
390 次 |
最近记录: |