【发布时间】:2021-01-26 10:06:27
【问题描述】:
我使用几个不同的帐户并将所有凭据保存在 ~/.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"
}
]
}
会是什么?
【问题讨论】:
-
“没有 CLI 访问权限”是什么意思?请提供一些例子。
-
收到
An error occurred (AccessDenied) when calling the ListBuckets operation: Access Denied或AccessDenied: User: arn:aws:iam::______:user/username is not authorized to perform: iam:ListAccountAliases on resource: * with an explicit deny status code: 403等错误 -
没有“无 CLI 访问”的概念。 AWS CLI 是一个 Python 程序,它使用适用于 Python 的 AWS 开发工具包 (boto3) 进行 API 调用。 AWS 收到每个 API 调用时都会单独评估。上述错误表示不允许用户列出 Amazon S3 存储桶,这将是准确的,因为您提供的策略未授予 Amazon S3 的任何权限。但是,策略确实授予了权限,因此您应该能够使用
aws iam list-account-aliases,这表明 AWS CLI 未使用您期望的凭证。 -
谢谢!我检查了几次凭据并重新生成了访问密钥 - 仍然没有区别。但我可以随意更改帐户,没有其他帐户会导致类似问题。
标签: amazon-web-services authentication terraform command-line-interface aws-cli