0

我使用 OKTA 作为我们的身份提供者,它允许我指定用户在登录控制台时可以担任哪些角色。

目标:拥有一个允许用户登录控制台并仅管理其访问密钥(列表、创建、更新、删除)的角色。

此策略允许当前用户管理他们自己的密钥,但在尝试执行除列出访问密钥之外的任何操作时出现此错误

User: arn:aws:sts::[ACCOUNT-NUMBER]:assumed-role/AccessKeyManagement/[Logged In Username] is not authorized to perform: iam:CreateAccessKey on resource: user [Logged In Username]

授予如果我将资源更改为"*"它将起作用,但用户可以更改其他帐户访问密钥。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sts:AssumeRole",
                "sts:DecodeAuthorizationMessage",
                "iam:ListAccountAliases",
                "iam:ListUsers",
                "sts:GetCallerIdentity",
                "iam:ListAccessKeys"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:DeleteAccessKey",
                "iam:UpdateAccessKey",
                "iam:CreateAccessKey"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        }
    ]
}

角色信任关系(以防万一)

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::[ACCOUNT-NUMBER]:saml-provider/OKTA"
      },
      "Action": [
        "sts:AssumeRoleWithSAML",
        "sts:AssumeRole"
      ],
      "Condition": {
        "StringEquals": {
          "SAML:aud": "https://signin.aws.amazon.com/saml"
        }
      }
    }
  ]
}

我不知道我需要做什么来允许当前用户权限的“假定角色”修改访问密钥。

4

1 回答 1

0

因此,IAM 角色没有与之关联的永久访问密钥,当您登录控制台时,您会获得临时凭证(访问密钥、秘密密钥和会话令牌)。现在,“${aws:username}”解析为 IAM 用户名,它不适用于 IAM 角色。因此,您无法管理 IAM 角色的访问密钥创建,您也不必这样做。

于 2018-11-20T20:39:13.390 回答