我使用 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"
}
}
}
]
}
我不知道我需要做什么来允许当前用户权限的“假定角色”修改访问密钥。