10.7. Multicloud 对象网关中的存储桶策略
OpenShift Data Foundation 支持 AWS S3 存储桶策略。bucket 策略允许您为用户授予存储桶及其对象的访问权限。
10.7.1. 关于存储桶策略
bucket 策略是一个访问策略选项,可供您向 AWS S3 存储桶和对象授予权限。bucket 策略使用基于 JSON 的访问策略语言。有关访问策略语言的更多信息,请参阅AWS 访问策略语言概述。
10.7.2. 使用存储桶策略
先决条件
- 正在运行的 OpenShift Data Foundation 平台。
- 访问 Multicloud 对象网关(MCG),请参阅 第 10.2 节 “使用应用程序访问多云对象网关”
流程
在 MCG 中使用存储桶策略:
以 JSON 格式创建 bucket 策略。请参见以下示例:
{ "Version": "NewVersion", "Statement": [ { "Sid": "Example", "Effect": "Allow", "Principal": [ "john.doe@example.com" ], "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::john_bucket" ] } ] }
bucket 策略有许多可用元素,与访问权限有关。
有关这些元素的详细信息,以及如何使用它们控制访问权限的示例,请参阅 AWS 访问策略语言概述。
如需存储桶策略的更多示例,请参阅 AWS Bucket 策略示例。
有关创建 S3 用户的说明,请参阅 第 10.7.3 节 “在 Multicloud 对象网关中创建 AWS S3 用户”。
使用 AWS S3 客户端,使用
put-bucket-policy
命令将存储桶策略应用到 S3 存储桶:# aws --endpoint ENDPOINT --no-verify-ssl s3api put-bucket-policy --bucket MyBucket --policy BucketPolicy
-
将
ENDPOINT
替换为 S3 端点。 -
将
MyBucket
替换为 bucket,以设置策略。 -
将
BucketPolicy
替换为 bucket 策略 JSON 文件。 如果您使用默认的自签名证书,请添加
--no-verify-ssl
。例如:
# aws --endpoint https://s3-openshift-storage.apps.gogo44.noobaa.org --no-verify-ssl s3api put-bucket-policy -bucket MyBucket --policy file://BucketPolicy
如需有关
put-bucket-policy
命令的更多信息,请参阅有关 put-bucket-policy 的 AWS CLI 命令参考。注意principal 元素指定允许或拒绝访问某一资源的用户,如存储桶。目前,只有 NooBaa 帐户才能用作主体。对于对象存储桶声明,NooBaa 会自动创建一个帐户
obc-account.<generated bucket name>@noobaa.io
。注意不支持 bucket 策略条件。
-
将
10.7.3. 在 Multicloud 对象网关中创建 AWS S3 用户
先决条件
- 正在运行的 OpenShift Data Foundation 平台。
- 访问 Multicloud 对象网关(MCG),请参阅 第 10.2 节 “使用应用程序访问多云对象网关”
流程
-
在 OpenShift Web 控制台中,点 Storage
Data Foundation。 - 在 Status 卡中,单击 Storage System,再单击弹出窗口中的 storage 系统链接。
- 在 Object 选项卡中,点 Multicloud Object Gateway 链接。
在 Accounts 选项卡下,单击 Create Account。
选择 S3 Access Only,提供 帐户名称,例如 john.doe@example.com。点 Next。
选择 S3 默认放置,例如 noobaa-default-backing-store。选择 Buckets Permissions。可以选择特定的存储桶或所有存储桶。点击 Create。