9.5. 角色管理
作为存储管理员,您可以使用 radosgw-admin
命令创建、删除或更新与该角色关联的角色以及权限。
角色与用户类似,并附加了权限策略。它可以被任何身份使用。如果用户假定角色,则一组动态创建的临时凭据将返回到用户。角色可用于向用户、应用程序和服务委托访问权限,它们没有访问某些 S3 资源的权限。
9.5.1. 创建角色 复制链接链接已复制到粘贴板!
使用 radosgw-admin role create
命令为用户创建一个角色。您需要在命令中创建一个具有 assume-role-policy-doc
参数的用户,这是授予该角色权限的信任关系策略文档。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 安装 Ceph 对象网关.
- Ceph 对象网关节点的根级别访问权限.
- 已创建一个 S3 存储桶。
- 创建的用户具有访问权限的 S3 用户。
流程
创建角色:
语法
radosgw-admin role create --role-name=ROLE_NAME [--path=="PATH_TO_FILE"] [--assume-role-policy-doc=TRUST_RELATIONSHIP_POLICY_DOCUMENT]
radosgw-admin role create --role-name=ROLE_NAME [--path=="PATH_TO_FILE"] [--assume-role-policy-doc=TRUST_RELATIONSHIP_POLICY_DOCUMENT]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow for-
-path
的值默认为/
。
9.5.2. 获取角色 复制链接链接已复制到粘贴板!
使用 get
命令获取有关角色的信息。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 安装 Ceph 对象网关.
- Ceph 对象网关节点的根级别访问权限.
- 已创建一个 S3 存储桶。
- 创建了角色。
- 创建的用户具有访问权限的 S3 用户。
流程
获取有关角色的信息:
语法
radosgw-admin role get --role-name=ROLE_NAME
radosgw-admin role get --role-name=ROLE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.5.3. 列出角色 复制链接链接已复制到粘贴板!
您可以使用 list 命令列出特定路径 中的角色
。
要列出所有角色,必须在 radosgw-admin role list --account-id <RGWaccountID> 命令中指定帐户 ID
。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 安装 Ceph 对象网关.
- Ceph 对象网关节点的根级别访问权限.
- 已创建一个 S3 存储桶。
- 创建了角色。
- 创建的用户具有访问权限的 S3 用户。
流程
列出角色:
语法
radosgw-admin role list
radosgw-admin role list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.5.4. 更新假定角色的角色策略文档 复制链接链接已复制到粘贴板!
您可以更新假定的角色策略文档,该文档授予一个实体权限,以使用 modify
命令假定角色。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 安装 Ceph 对象网关.
- Ceph 对象网关节点的根级别访问权限.
- 已创建一个 S3 存储桶。
- 创建了角色。
- 创建的用户具有访问权限的 S3 用户。
流程
修改角色的假设角色策略文档:
语法
radosgw-admin role-trust-policy modify --role-name=ROLE_NAME --assume-role-policy-doc=TRUST_RELATIONSHIP_POLICY_DOCUMENT
radosgw-admin role-trust-policy modify --role-name=ROLE_NAME --assume-role-policy-doc=TRUST_RELATIONSHIP_POLICY_DOCUMENT
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.5.5. 获取附加到角色的权限策略 复制链接链接已复制到粘贴板!
您可以使用 get
命令获取附加到角色的特定权限策略。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 安装 Ceph 对象网关.
- Ceph 对象网关节点的根级别访问权限.
- 已创建一个 S3 存储桶。
- 创建了角色。
- 创建的用户具有访问权限的 S3 用户。
流程
获取权限策略:
语法
radosgw-admin role-policy get --role-name=ROLE_NAME --policy-name=POLICY_NAME
radosgw-admin role-policy get --role-name=ROLE_NAME --policy-name=POLICY_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
radosgw-admin role-policy get --role-name=S3Access1 --policy-name=Policy1
[root@host01 ~]# radosgw-admin role-policy get --role-name=S3Access1 --policy-name=Policy1 { "Permission policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"s3:*\"],\"Resource\":\"arn:aws:s3:::example_bucket\"}]}" }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.5.6. 删除角色 复制链接链接已复制到粘贴板!
您只能在删除附加的权限策略后删除角色。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 安装 Ceph 对象网关.
- Ceph 对象网关节点的根级别访问权限.
- 创建了角色。
- 已创建一个 S3 存储桶。
- 创建的用户具有访问权限的 S3 用户。
流程
删除附加到角色的策略:
语法
radosgw-admin role policy delete --role-name=ROLE_NAME --policy-name=POLICY_NAME
radosgw-admin role policy delete --role-name=ROLE_NAME --policy-name=POLICY_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
radosgw-admin role policy delete --role-name=S3Access1 --policy-name=Policy1
[root@host01 ~]# radosgw-admin role policy delete --role-name=S3Access1 --policy-name=Policy1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除角色:
语法
radosgw-admin role delete --role-name=ROLE_NAME
radosgw-admin role delete --role-name=ROLE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
radosgw-admin role delete --role-name=S3Access1
[root@host01 ~]# radosgw-admin role delete --role-name=S3Access1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.5.7. 更新附加到角色的策略 复制链接链接已复制到粘贴板!
您可以使用 put
命令添加或更新附加到角色的内联策略。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 安装 Ceph 对象网关.
- Ceph 对象网关节点的根级别访问权限.
- 已创建一个 S3 存储桶。
- 创建了角色。
- 创建的用户具有访问权限的 S3 用户。
流程
更新内联策略:
语法
radosgw-admin role-policy put --role-name=ROLE_NAME --policy-name=POLICY_NAME --policy-doc=PERMISSION_POLICY_DOCUMENT
radosgw-admin role-policy put --role-name=ROLE_NAME --policy-name=POLICY_NAME --policy-doc=PERMISSION_POLICY_DOCUMENT
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
radosgw-admin role-policy put --role-name=S3Access1 --policy-name=Policy1 --policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Action\":\[\"s3:*\"\],\"Resource\":\"arn:aws:s3:::example_bucket\"\}\]\}
[root@host01 ~]# radosgw-admin role-policy put --role-name=S3Access1 --policy-name=Policy1 --policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Action\":\[\"s3:*\"\],\"Resource\":\"arn:aws:s3:::example_bucket\"\}\]\}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,您要将
Policy1
附加到角色S3Access1
中,以允许example_bucket
的所有 S3 操作。
9.5.8. 列出附加到角色的权限策略 复制链接链接已复制到粘贴板!
您可以使用 list
命令列出附加到角色的权限策略的名称。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 安装 Ceph 对象网关.
- Ceph 对象网关节点的根级别访问权限.
- 已创建一个 S3 存储桶。
- 创建了角色。
- 创建的用户具有访问权限的 S3 用户。
流程
列出权限策略的名称:
语法
radosgw-admin role-policy list --role-name=ROLE_NAME
radosgw-admin role-policy list --role-name=ROLE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
radosgw-admin role-policy list --role-name=S3Access1
[root@host01 ~]# radosgw-admin role-policy list --role-name=S3Access1 [ "Policy1" ]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.5.9. 删除附加到角色的策略 复制链接链接已复制到粘贴板!
您可以使用 rm
命令删除附加到角色的权限策略。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 安装 Ceph 对象网关.
- Ceph 对象网关节点的根级别访问权限.
- 已创建一个 S3 存储桶。
- 创建了角色。
- 创建的用户具有访问权限的 S3 用户。
流程
删除权限策略:
语法
radosgw-admin role policy delete --role-name=ROLE_NAME --policy-name=POLICY_NAME
radosgw-admin role policy delete --role-name=ROLE_NAME --policy-name=POLICY_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
radosgw-admin role policy delete --role-name=S3Access1 --policy-name=Policy1
[root@host01 ~]# radosgw-admin role policy delete --role-name=S3Access1 --policy-name=Policy1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.5.10. 更新角色的会话持续时间 复制链接链接已复制到粘贴板!
您可以使用 update
命令更新角色的会话持续时间,以控制用户可以使用提供的凭证登录到帐户的时间长度。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 安装 Ceph 对象网关.
- Ceph 对象网关节点的根级别访问权限.
- 已创建一个 S3 存储桶。
- 创建了角色。
- 创建的用户具有访问权限的 S3 用户。
流程
使用
update
命令更新 max-session-duration :语法
radosgw-admin role update --role-name=ROLE_NAME --max-session-duration=7200
[root@node1 ~]# radosgw-admin role update --role-name=ROLE_NAME --max-session-duration=7200
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
radosgw-admin role update --role-name=test-sts-role --max-session-duration=7200
[root@node1 ~]# radosgw-admin role update --role-name=test-sts-role --max-session-duration=7200
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
列出角色以验证更新:
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow