ID プロバイダーとして 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"
}
}
}
]
}
アクセスキーを変更する現在のユーザー権限の「想定ロール」を許可するために何をする必要があるかについて、私は途方に暮れています。