繁体   English   中英

不能在 AWS CLI 中担任角色,即使有信任关系

[英]Can't assume role in AWS CLI, even with trust relationship

我正在尝试与我的用户(来自联合帐户)在 awscli 中担任角色,但我不能。

每次我运行这个命令时:

% aws sts assume-role --role-arn “arn:aws:iam::123456789012:role/eksServiceRole” --role-session-name "my_test"

我收到此错误:

An error occurred (AccessDenied) when calling the AssumeRole operation: User: arn:aws:sts::123456789012:assumed-role/AzureAD_AWS_Admin/me@mycompany.com is not authorized to perform: sts:AssumeRole on resource: “arn:aws:iam::123456789012:role/eksServiceRole”

我已将我的帐户添加为该角色的信任关系,但仍然没有任何效果:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:sts::123456789012:assumed-role/AzureAD_AWS_Admin/me@mycompany.com",
          "arn:aws:iam::123456789012:root"
        ],
        "Service": "eks.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    },
  ]
}

我为这个角色尝试过同样的事情,但仍然行不通。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::123456789012:root",
          "arn:aws:sts::123456789012:assumed-role/AzureAD_AWS_Admin/me@mycompany.com"
        ]
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": "2ffd8b2c3d8edaf02104a081af4b78d82f6e770f"
        }
      }
    }
  ]
}

我还为所有地区激活了 STS。

我尝试了不同的角色和用户,但由于这个假设角色,我永远无法运行命令。 我只需要这样做即可继续我的项目(Gitlab EKS 集群集成以安装指标服务器)。

我为此苦苦挣扎了好几天,我已经在堆栈溢出中尝试了这里的所有解决方案。

我已经解决了!

它缺少 externalId。 在这种情况下,对于这些角色,它们是使用来自第三方应用程序 (Gitlab) 的 externalId 创建的。

所以我把--external-id参数放在正常运行的所有东西中:

% aws sts assume-role --role-arn arn:aws:iam::123456789012:role/eksGitlabProvisionRole --external-id 2ffd4wsc3d8edaf02104a081af4b78g432f6e750f --role-session-name my_test

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM