7.7. 角色管理


作为存储管理员,您可以创建、删除或更新角色,以及与该角色相关联的权限与 plexus -admin 命令。

角色类似于用户,并且关联了权限策略。它可以被任何身份假定。如果用户假定角色,则会向用户返回一组动态创建的临时凭证。角色可用于将访问权限委派给用户、没有权限访问某些 S3 资源的权限。

7.7.1. 创建角色

为该用户创建角色,角色为 FQDN -admin 角色 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]

    示例

    [root@host01 ~]# radosgw-admin role create --role-name=S3Access1 --path=/application_abc/component_xyz/ --assume-role-policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Principal\":\{\"AWS\":\[\"arn:aws:iam:::user/TESTER\"\]\},\"Action\":\[\"sts:AssumeRole\"\]\}\]\}
    
    {
      "RoleId": "ca43045c-082c-491a-8af1-2eebca13deec",
      "RoleName": "S3Access1",
      "Path": "/application_abc/component_xyz/",
      "Arn": "arn:aws:iam:::role/application_abc/component_xyz/S3Access1",
      "CreateDate": "2022-06-17T10:18:29.116Z",
      "MaxSessionDuration": 3600,
      "AssumeRolePolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam:::user/TESTER\"]},\"Action\":[\"sts:AssumeRole\"]}]}"
    }

    --path 的值默认为 /

7.7.2. 获取角色

使用 get 命令获取角色的相关信息。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 安装 Ceph 对象网关.
  • Ceph 对象网关节点的根级别访问权限.
  • S3 存储桶被创建。
  • 已创建一个角色。
  • 创建的用户具有访问权限的 S3 用户。

流程

  • 获取有关角色的信息:

    语法

    radosgw-admin role get --role-name=ROLE_NAME

    示例

    [root@host01 ~]# radosgw-admin role get --role-name=S3Access1
    
    {
      "RoleId": "ca43045c-082c-491a-8af1-2eebca13deec",
      "RoleName": "S3Access1",
      "Path": "/application_abc/component_xyz/",
      "Arn": "arn:aws:iam:::role/application_abc/component_xyz/S3Access1",
      "CreateDate": "2022-06-17T10:18:29.116Z",
      "MaxSessionDuration": 3600,
      "AssumeRolePolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam:::user/TESTER\"]},\"Action\":[\"sts:AssumeRole\"]}]}"
    }

其它资源

  • 详情请参阅 Red Hat Ceph Storage Object Gateway 指南中的创建角色部分。

7.7.3. 列出角色

您可以使用 list 命令列出特定路径中的角色。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 安装 Ceph 对象网关.
  • Ceph 对象网关节点的根级别访问权限.
  • S3 存储桶被创建。
  • 已创建一个角色。
  • 创建的用户具有访问权限的 S3 用户。

流程

  • 要列出角色,请使用以下命令:

    语法

    radosgw-admin role list

    示例

    [root@host01 ~]# radosgw-admin role list
    [
        {
            "RoleId": "85fb46dd-a88a-4233-96f5-4fb54f4353f7",
            "RoleName": "kvm-sts",
            "Path": "/application_abc/component_xyz/",
            "Arn": "arn:aws:iam:::role/application_abc/component_xyz/kvm-sts",
            "CreateDate": "2022-09-13T11:55:09.39Z",
            "MaxSessionDuration": 7200,
            "AssumeRolePolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam:::user/kvm\"]},\"Action\":[\"sts:AssumeRole\"]}]}"
        },
        {
            "RoleId": "9116218d-4e85-4413-b28d-cdfafba24794",
            "RoleName": "kvm-sts-1",
            "Path": "/application_abc/component_xyz/",
            "Arn": "arn:aws:iam:::role/application_abc/component_xyz/kvm-sts-1",
            "CreateDate": "2022-09-16T00:05:57.483Z",
            "MaxSessionDuration": 3600,
            "AssumeRolePolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam:::user/kvm\"]},\"Action\":[\"sts:AssumeRole\"]}]}"
        }
    ]

7.7.4. 更新假定角色策略文档

您可以更新 assume 角色策略文档,授予实体权限来假定角色为使用 修改 命令。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 安装 Ceph 对象网关.
  • Ceph 对象网关节点的根级别访问权限.
  • S3 存储桶被创建。
  • 已创建一个角色。
  • 创建的用户具有访问权限的 S3 用户。

流程

  • 修改角色的 assume 角色策略文档:

    语法

    radosgw-admin role-trust-policy modify --role-name=ROLE_NAME --assume-role-policy-doc=TRUST_RELATIONSHIP_POLICY_DOCUMENT

    示例

    [root@host01 ~]# radosgw-admin role-trust-policy modify --role-name=S3Access1 --assume-role-policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Principal\":\{\"AWS\":\[\"arn:aws:iam:::user/TESTER\"\]\},\"Action\":\[\"sts:AssumeRole\"\]\}\]\}
    
    {
      "RoleId": "ca43045c-082c-491a-8af1-2eebca13deec",
      "RoleName": "S3Access1",
      "Path": "/application_abc/component_xyz/",
      "Arn": "arn:aws:iam:::role/application_abc/component_xyz/S3Access1",
      "CreateDate": "2022-06-17T10:18:29.116Z",
      "MaxSessionDuration": 3600,
      "AssumeRolePolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam:::user/TESTER\"]},\"Action\":[\"sts:AssumeRole\"]}]}"
    }

7.7.5. 获取附加到角色的权限策略

您可以使用 get 命令获取附加到角色的特定权限策略。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 安装 Ceph 对象网关.
  • Ceph 对象网关节点的根级别访问权限.
  • S3 存储桶被创建。
  • 已创建一个角色。
  • 创建的用户具有访问权限的 S3 用户。

流程

  • 获取权限策略:

    语法

    radosgw-admin role-policy get --role-name=ROLE_NAME --policy-name=POLICY_NAME

    示例

    [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\"}]}"
    }

7.7.6. 删除角色

只有在删除附加了权限策略后,才能删除该角色。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 安装 Ceph 对象网关.
  • Ceph 对象网关节点的根级别访问权限.
  • 已创建一个角色。
  • S3 存储桶被创建。
  • 创建的用户具有访问权限的 S3 用户。

流程

  1. 删除附加到角色的策略:

    语法

    radosgw-admin role policy delete --role-name=ROLE_NAME --policy-name=POLICY_NAME

    示例

    [root@host01 ~]# radosgw-admin role policy delete --role-name=S3Access1 --policy-name=Policy1

  2. 删除角色:

    语法

    radosgw-admin role delete --role-name=ROLE_NAME

    示例

    [root@host01 ~]# radosgw-admin role delete --role-name=S3Access1

7.7.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

    示例

    [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\"\}\]\}

    在本例中,将 Policy1 附加到角色 S3Access1,这将允许 example_bucket 的所有 S3 操作。

7.7.8. 列出附加到角色的权限策略

您可以使用 list 命令列出附加到角色的权限策略的名称。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 安装 Ceph 对象网关.
  • Ceph 对象网关节点的根级别访问权限.
  • S3 存储桶被创建。
  • 已创建一个角色。
  • 创建的用户具有访问权限的 S3 用户。

流程

  • 列出权限策略的名称:

    语法

    radosgw-admin role-policy list --role-name=ROLE_NAME

    示例

    [root@host01 ~]# radosgw-admin role-policy list --role-name=S3Access1
    
    [
      "Policy1"
    ]

7.7.9. 删除附加到角色的策略

您可以使用 rm 命令删除附加到角色的权限策略。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 安装 Ceph 对象网关.
  • Ceph 对象网关节点的根级别访问权限.
  • S3 存储桶被创建。
  • 已创建一个角色。
  • 创建的用户具有访问权限的 S3 用户。

流程

  • 删除权限策略:

    语法

    radosgw-admin role policy delete --role-name=ROLE_NAME --policy-name=POLICY_NAME

    示例

    [root@host01 ~]# radosgw-admin role policy delete --role-name=S3Access1 --policy-name=Policy1

7.7.10. 更新角色的会话持续时间

您可以使用 update 命令更新角色的会话持续时间。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 安装 Ceph 对象网关.
  • Ceph 对象网关节点的根级别访问权限.
  • S3 存储桶被创建。
  • 已创建一个角色。
  • 创建的用户具有访问权限的 S3 用户。

流程

  • 使用 update 命令更新 max-session-duration :

    语法

    [root@node1 ~]# radosgw-admin role update --role-name=ROLE_NAME --max-session-duration=7200

    示例

    [root@node1 ~]# radosgw-admin role update --role-name=test-sts-role --max-session-duration=7200

验证

  • 列出角色以验证更新:

    示例

    [root@node1 ~]#radosgw-admin role list
    [
        {
            "RoleId": "d4caf33f-caba-42f3-8bd4-48c84b4ea4d3",
            "RoleName": "test-sts-role",
            "Path": "/",
            "Arn": "arn:aws:iam:::role/test-role",
            "CreateDate": "2022-09-07T20:01:15.563Z",
            "MaxSessionDuration": 7200,				<<<<<<
            "AssumeRolePolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam:::user/kvm\"]},\"Action\":[\"sts:AssumeRole\"]}]}"
        }
    ]

其它资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.