AWS CLI:未经授权执行:资源上的sts:AssumeRole

时间:2020-02-21 07:39:53

标签: amazon-web-services amazon-iam aws-cli

我有一个AWS账户,我在其中担任一个名为A(role-A)的角色,通过该控制台,我通过Web控制台创建了另一个名为B(role-B)的角色,并附加了管理员该角色的政策

这是cli配置

[default]
aws_access_key_id = <>
aws_secret_access_key = <>
region = eu-central-1

[role-B]
role_arn = arn:aws:iam::<id>:role/ics-role
mfa_serial = arn:aws:iam::<id>:mfa/<name>
external_id = <name>
source_profile = default
我从role-B创建的

role-A

当我尝试获取角色详细信息时

aws --profile role-B sts get-caller-identity

我遇到以下错误

调用AssumeRole操作时发生错误(AccessDenied):用户:arn:aws:iam :: <>:user / <>无权执行:资源上的sts:AssumeRole:arn:aws: iam :: <>:role / ics-role

2 个答案:

答案 0 :(得分:4)

您需要检查iam角色的信任关系策略文档,以确认您的用户在其中。

另外,请确保IAM用户具有显式权限,以允许他们承担该角色。

信任关系应如下所示:

webView = (WebView) findViewById(R.id.web_view);

答案 1 :(得分:0)

我的问题是我在策略 json 中设置了一个条件。

{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::000000000:dave"
        },
        "Action": "sts:AssumeRole",
        "Condition": {
           // Condition set here
        }
    }]
}

我删除了条件,现在可以正常工作了。

{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::000000000:dave"
        },
        "Action": "sts:AssumeRole"
    }]
}