AWS 組織で MFA を有効にして、ユーザーが自分の MFA デバイスのみを管理できるようにしたいと考えています。しかし、ユーザーが API/CLI を介して (AWS コンソールを使用せずに) デバイスを管理できるようにしたいと考えています。
AWS ドキュメントでこのポリシーを見つけました。これは、独自の MFAdevice を作成/有効化/削除できるため、ほぼ適切です。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowUsersToCreateEnableResyncDeleteTheirOwnVirtualMFADevice",
"Effect": "Allow",
"Action": [
"iam:CreateVirtualMFADevice",
"iam:EnableMFADevice",
"iam:ResyncMFADevice",
"iam:DeleteVirtualMFADevice"
],
"Resource": [
"arn:aws:iam::account-id-without-hyphens:mfa/${aws:username}",
"arn:aws:iam::account-id-without-hyphens:user/${aws:username}"
]
},
{
"Sid": "AllowUsersToDeactivateTheirOwnVirtualMFADevice",
"Effect": "Allow",
"Action": [
"iam:DeactivateMFADevice"
],
"Resource": [
"arn:aws:iam::account-id-without-hyphens:mfa/${aws:username}",
"arn:aws:iam::account-id-without-hyphens:user/${aws:username}"
],
"Condition": {
"Bool": {
"aws:MultiFactorAuthPresent": true
}
}
}
]
}
ただし、デバイスの非アクティブ化 ( iam:DeactivateMFADevice
) の場合は、条件aws:MultiFactorAuthPresent
が である必要がありますtrue
。これは健全なセキュリティ対策であり、ユーザーは MFA を使用せずに MFA を無効にすることはできません。ただし、このポリシーでは、STS を使用して API/CLI を介して MFA でログに記録し、役割を引き受けると、リソース"arn:aws:iam::account-id-without-hyphens:mfa/${aws:username}"
は存在しないため、実際のリソースを表していませ${aws:username}
ん。AWS コンソールをユーザーとして使用する場合、ブール値aws:MultiFactorAuthPresent
は true になる可能性があると思います。しかし、私が知る限り、API/CLI では両方aws:MultiFactorAuthPresent==true
と${aws:username}
存在することはできません。
では、MFA を使用しているときにデバイスを無効にすることをユーザーのみに許可するには、どのポリシーを作成すればよいでしょうか。
[免責事項、これはawless CLIで使用されます]