我正在尝试在 AWS 控制台中运行此命令:
aws route53 list-hosted-zones
我正在使用我的访问密钥/秘密,它在模拟账户中运行良好。我与我的团队核实过,我拥有以下权限AmazongRoute53FullAccess
:
以下是完整的错误消息:
PS C:\Users...> aws route53 list-hosted-zones --no-paginate
调用 ListHostedZones 操作时出现错误 (AccessDenied):用户:arn:aws:iam::362327418951:user/userName 无权执行:route53:ListHostedZones,且基于身份的策略中明确拒绝
答案1
检查 CC-MFA-USER 策略。
根据附加到您帐户的策略名称,我怀疑存在一项除非使用 MFA 进行身份验证否则拒绝访问的策略。
AWS 提供了一个示例策略:https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_iam_mfa-selfmanage.html
在上面的示例中,除非您使用 MFA 进行身份验证,否则最后一条语句将拒绝访问:
{
"Sid": "BlockMostAccessUnlessSignedInWithMFA",
"Effect": "Deny",
"NotAction": [
"iam:CreateVirtualMFADevice",
"iam:EnableMFADevice",
"iam:ListMFADevices",
"iam:ListUsers",
"iam:ListVirtualMFADevices",
"iam:ResyncMFADevice"
],
"Resource": "*",
"Condition": {
"BoolIfExists": {
"aws:MultiFactorAuthPresent": "false"
}
}
}
有几种使用 AWS CLI 进行 MFA 的选项:
- https://stackoverflow.com/a/41965046/2454476— 这似乎是最简单的选项,但我自己没有用过,而且它可能在旧版本的 CLI 上不可用
- https://stackoverflow.com/a/34796136/2454476— 这应该适用于任何版本的 CLI,但涉及一些额外的步骤。