我使用了几个不同的帐户并将所有凭据保存在 ~/.aws/credentials 中。 CLI 在所有其他帐户上都可以正常工作,因此这不是配置问题。唯一有效的是 aws sts get-caller-identity
。
奇怪的是,我属于管理员组(就像现在所有人一样),尽管拥有访问密钥和完全管理员权限,但我们都没有 CLI 访问权限。
我虽然是因为 MFA,但我通过 CLI 使用另一个带有 MFA 的帐户就好了。帐户上也有此政策(但看起来没有限制?):
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"iam:ListAccountAliases",
"iam:ListUsers",
"iam:GetAccountSummary",
"iam:GetAccountPasswordPolicy"
],
"Resource": "*",
"Effect": "Allow",
"Sid": "AllowAllUsersToListAccounts"
},
{
"Action": [
"iam:ChangePassword",
"iam:CreateLoginProfile",
"iam:DeleteLoginProfile",
"iam:GetLoginProfile",
"iam:ListAccessKeys",
"iam:UpdateLoginProfile",
"iam:ListSigningCertificates",
"iam:ListSSHPublicKeys",
"iam:GetSSHPublicKey",
"iam:UploadSSHPublicKey",
"iam:DeleteSSHPublicKey"
],
"Resource": [
"arn:aws:iam::____________:user/${aws:username}"
],
"Effect": "Allow",
"Sid": "AllowIndividualUserToSeeAndManageTheirOwnAccountInformation"
},
{
"Action": [
"iam:ListVirtualMFADevices",
"iam:ListMFADevices"
],
"Resource": [
"arn:aws:iam::____________:mfa/*",
"arn:aws:iam::____________:user/${aws:username}"
],
"Effect": "Allow",
"Sid": "AllowIndividualUserToListTheirOwnMFA"
},
{
"Action": [
"iam:CreateVirtualMFADevice",
"iam:RequestSmsMfaRegistration",
"iam:FinalizeSmsMfaRegistration",
"iam:EnableMFADevice",
"iam:ResyncMFADevice"
],
"Resource": [
"arn:aws:iam::____________:mfa/${aws:username}",
"arn:aws:iam::____________:user/${aws:username}"
],
"Effect": "Allow",
"Sid": "AllowIndividualUserToManageTheirOwnMFA"
}
]
}
可能是什么?
答案 0 :(得分:0)
没有“无 CLI 访问”的概念。 AWS CLI 是一个 Python 程序,它使用适用于 Python 的 AWS 开发工具包 (boto3) 进行 API 调用。 AWS 收到每个 API 调用时都会单独评估。
您提供的错误消息是说不允许用户列出 Amazon S3 存储桶,这是准确的,因为您提供的策略没有授予 Amazon S3 的任何权限。
另一个错误提到了 explicit deny
-- 所以要么没有使用您列出的政策,要么 Service control policy 生效,这限制了 API允许的调用。