第 17 章 使用 Multicloud 对象网关的安全令牌服务假设另一个用户的角色


Multicloud Object Gateway (MCG)提供对安全令牌服务(STS)的支持,类似于 Amazon Web Services 提供的服务。

要允许其他用户假定某个用户的角色,您需要为用户分配角色配置。您可以使用 MCG CLI 工具管理角色配置。

以下示例显示了允许两个 MCG 用户(assumer@mcg.testassumer2@mcg.test)的角色配置来假定特定用户的角色:

'{"role_name": "AllowTwoAssumers", "assume_role_policy": {"version": "2012-10-17", "statement": [ {"action": ["sts:AssumeRole"], "effect": "allow", "principal": ["assumer@mcg.test", "assumer2@mcg.test"]}]}}'
Copy to Clipboard Toggle word wrap
  1. 使用 MCG CLI 工具分配角色配置。

    mcg sts assign-role --email <assumed user's username> --role_config '{"role_name": "AllowTwoAssumers", "assume_role_policy": {"version": "2012-10-17", "statement": [ {"action": ["sts:AssumeRole"], "effect": "allow", "principal": ["assumer@mcg.test", "assumer2@mcg.test"]}]}}'
    Copy to Clipboard Toggle word wrap
  2. 在继续执行角色前收集以下信息,然后后续步骤中需要该角色:

    • 假定器的访问密钥 ID 和 secret 访问密钥(假定角色的用户)
    • MCG STS 端点,可以使用以下命令检索:

      $ oc -n openshift-storage get route
      Copy to Clipboard Toggle word wrap
    • 假设用户的访问密钥 ID。
    • 角色配置中 role_name 值的值。
    • 为角色会话选择的名称
  3. 配置角色就绪后,将其分配给适当的用户(使用上一步中描述的数据填充)--
AWS_ACCESS_KEY_ID=<aws-access-key-id> AWS_SECRET_ACCESS_KEY=<aws-secret-access-key1> aws --endpoint-url <mcg-sts-endpoint> sts assume-role --role-arn arn:aws:sts::<assumed-user-access-key-id>:role/<role-name> --role-session-name <role-session-name>
Copy to Clipboard Toggle word wrap
注意

根据集群的配置,可能需要添加 -no-verify-ssl

生成的输出包含访问密钥 ID、secret 访问密钥和会话令牌,可用于在假定其他用户的角色时执行操作。

您可以使用假定角色步骤后生成的凭证,如下例所示:

AWS_ACCESS_KEY_ID=<aws-access-key-id> AWS_SECRET_ACCESS_KEY=<aws-secret-access-key1> AWS_SESSION_TOKEN=<session token> aws --endpoint-url <mcg-s3-endpoint> s3 ls
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat