分配对单个存储区的访问权
通过使用 UI 或 CLI 创建策略,为用户和服务标识分配对存储区的访问角色。
| 访问角色 | 操作示例 |
|---|---|
| 管理者 | 使对象成为公共对象,创建和销毁存储区和对象 |
| 写入者 | 创建和销毁存储区和对象 |
| 读者 | 列出存储区,列出对象和下载对象。 |
| 内容读取者 | 列出和下载对象 |
| 对象阅读器 | 下载对象 |
| 对象写程序 | 上传对象 |
授予用户访问权
如果用户需要能够使用控制台并且能够查看实例中所有存储区的列表,那么可以使用定制平台访问角色。 这允许他们仅查看特定存储区的内容。 如果用户不适合读取其他存储区的名称,那么需要使用 API 设计和实现定制门户网站或其他用户界面。
如果用户通过使用应用程序接口与数据交互,不需要控制台访问权限,_而且_他们是你的账户成员,你就可以使用默认角色授予单个存储桶的访问权限,而无需访问父实例。
策略强制实施
IAM 策略是从最高访问级别到最严格访问级别分层强制实施的。 解决策略冲突时,将采用更宽松的策略。 例如,如果用户同时具有对某个存储区的Writer和Reader服务访问角色,那么将忽略授予Reader角色的策略。
这也适用于服务实例和存储区级别的策略。
- 如果用户有一个策略授予对某个服务实例的
Writer角色以及对单个存储区的Reader角色,那么将忽略存储区级别的策略。 - 如果用户有一个策略授予对某个服务实例的
Reader角色以及对单个存储区的Writer角色,那么将强制实施这两个策略,并且对于此单个存储区,更宽松的Writer角色优先。
如果需要限制对单个存储桶(或一组存储桶)的访问,请使用控制台或 CLI 确保用户或服务 ID 没有任何其他实例级策略。
请参阅 组织资源和分配访问权的最佳实践 以了解更多信息。
为用户创建新策略
要创建新的存储区级别策略,请执行以下操作:
- 从管理菜单导航至访问权 IAM 控制台。
- 从左侧导航菜单中,选择用户。
- 选择一个用户。
- 选择访问策略选项卡,以查看该用户的现有策略,然后分配新策略或编辑现有策略。
- 单击分配访问权以创建新策略。
- 选择分配对资源的访问权。
- 首先从“服务”菜单中选择 Cloud Object Storage。
- 然后,选择相应的服务实例。 在
bucket资源类型字段中,输入 ,在资源标识字段中,输入存储区名称。 - 选择所需的服务访问角色。 选择含操作数的 lozenge 将显示可供角色使用的操作,如图 1 中的“内容阅读器”示例所示。
- 单击分配。
请注意,将资源类型或资源字段保留空白会创建实例级别的策略。
为用户 CLI 命令创建新策略
在终端中,运行以下命令:
ibmcloud iam user-policy-create <user-name> \
--roles <role> \
--service-name cloud-object-storage \
--service-instance <resource-instance-id> \
--resource-type bucket \
--resource <bucket-name>
列出现有策略:
ibmcloud iam user-policies <user-name>
要编辑现有策略,请执行以下操作:
ibmcloud iam user-policy-update <user-name> <policy-id> \
--roles <role> \
--service-name cloud-object-storage \
--service-instance <resource-instance-id> \
--resource-type bucket \
--resource <bucket-name>
授予服务标识访问权
如果需要为应用程序或其他非人类实体授予对存储桶的访问权限,请使用服务 ID。 服务标识可以是专为此目的创建的,也可以是已在使用的现有服务标识。
为用户创建新策略
- 从管理菜单导航至访问权 (IAM) 控制台。
- 从左侧导航菜单中,选择服务标识。
- 选择一个服务标识以查看任何现有策略,然后分配新策略或编辑现有策略。
- 选择服务实例、服务标识和所需角色。
- 在
bucket资源类型字段中,输入 ,在资源字段中,输入存储区名称。 - 单击提交。
请注意,将资源类型或资源字段保留空白会创建实例级别的策略。
为服务 ID 创建新策略
在终端中,运行以下命令:
ibmcloud iam service-policy-create <service-id-name> \
--roles <role> \
--service-name cloud-object-storage \
--service-instance <resource-instance-id> \
--resource-type bucket \
--resource <bucket-name>
列出现有策略:
ibmcloud iam service-policies <service-id-name>
要编辑现有策略,请执行以下操作:
ibmcloud iam service-policy-update <service-id-name> <policy-id> \
--roles <role> \
--service-name cloud-object-storage \
--service-instance <resource-instance-id>
--resource-type bucket \
--resource <bucket-name>