对 AWS 控制台的管理员访问权限,但无法通过 CLI 访问

时间:2021-01-26 10:06:27

标签: amazon-web-services authentication terraform command-line-interface aws-cli

我使用了几个不同的帐户并将所有凭据保存在 ~/.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"
    }
  ]
}

可能是什么?

1 个答案:

答案 0 :(得分:0)

没有“无 CLI 访问”的概念。 AWS CLI 是一个 Python 程序,它使用适用于 Python 的 AWS 开发工具包 (boto3) 进行 API 调用。 AWS 收到每个 API 调用时都会单独评估。

您提供的错误消息是说不允许用户列出 Amazon S3 存储桶,这是准确的,因为您提供的策略没有授予 Amazon S3 的任何权限。

另一个错误提到了 explicit deny -- 所以要么没有使用您列出的政策,要么 Service control policy 生效,这限制了 API允许的调用。