【问题标题】:IAM Passrole not working (while assuming an IAM role)IAM Passrole 不起作用(在担任 IAM 角色时)
【发布时间】:2020-03-24 15:19:07
【问题描述】:

我在同一个 aws 账户中有 2 个 IAM 角色

IAM_ROLE_1:具有 ec2 启动权限和 s3 读取权限

IAM_ROLE_2 :它只能访问 lamda 并假设来自 IAM_ROLE_1 的信任

我可以从附加了 IAM_ROLE_1 的实例中假设 IAM_ROLE_2。

现在我想在假设 IAM_ROLE_2 之后读取 s3 位置(IAM_ROLE_1 可以访问)。 我的理解是我可以用“iam:passrole”来做到这一点

这样理解正确吗?

当我将以下内容添加到 IAM_ROLE_1 并假设 IAM_ROLE_2 并访问 s3 存储桶时,它仍然会抛出拒绝访问错误。

{
        "Sid": "allowpassrole",
        "Effect": "Allow",
        "Action": "iam:PassRole",
        "Resource": [
            "arn:aws:iam::00000001:role/IAM_ROLE_2"
        ]
    }

【问题讨论】:

  • 不确定我是否关注,但传递角色是not cumulative。一旦你假设为IAM_ROLE_1,而他们假设为IAM_ROLE_2,你就放弃了你的IAM_ROLE_1 权限。

标签: amazon-web-services amazon-s3 amazon-iam


【解决方案1】:

一组凭证在任何时候都只与 一个 IAM 用户或 IAM 角色相关联。因此,要使用与 IAM 角色 1 关联的权限进行调用,您需要使用与该角色(而不是 IAM 角色 2)关联的凭证。

要使用 IAM 角色 1,只需创建一个 Amazon S3 客户端对象,无需指定凭证。然后它将使用与实例关联的 IAM 角色 1。

iam:PassRole 用于允许服务代表您承担角色。例如,在启动角色设置为 IAM 角色 1 的 Amazon EC2 实例时,您需要使用 IAM 角色 1 获得 PassRole 的权限。如果没有此权限,您将无法启动具有该角色的 EC2 实例。

PassRole 用于在“角色之间”传递权限。

【讨论】:

    猜你喜欢
    • 2020-11-08
    • 2022-07-28
    • 2019-09-10
    • 2018-01-15
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    相关资源
    最近更新 更多