Доступ администратора к консоли AWS, но нет доступа через CLI

#amazon-web-services #authentication #terraform #command-line-interface #aws-cli

#amazon-web-services #аутентификация #terraform #интерфейс командной строки #aws-cli

Вопрос:

Я использую несколько разных учетных данных и сохраняю все учетные данные в ~/.aws/credentials . CLI отлично работает со всеми другими учетными записями, так что это не проблема с конфигурацией. Работает только taht aws sts get-caller-identity .

Странно то, что я принадлежу к группе администраторов (как и все на данный момент), и ни у кого из нас нет доступа к CLI, несмотря на наличие ключей доступа и полных прав администратора.

Я думаю, что это из-за MFA, но я использую другую учетную запись с MFA просто отлично через CLI. В учетной записи также есть эта политика (но она не выглядит ограничительной?):

 {
  "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. Что вы подразумеваете под «отсутствием доступа к CLI»? Пожалуйста, приведите несколько примеров.

2. получение ошибок типа 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

3. Нет понятия «нет доступа к CLI». AWS CLI — это программа на Python, которая использует AWS SDK для Python (boto3) для выполнения вызовов API. Каждый вызов API оценивается индивидуально при получении AWS. Приведенная выше ошибка говорит о том, что пользователю не разрешено перечислять корзины Amazon S3, что было бы точным, поскольку предоставленная вами политика не предоставляет никаких разрешений для Amazon S3. Однако политика предоставляет такие разрешения, которые вы должны иметь возможность использовать aws iam list-account-aliases , что предполагает, что AWS CLI не используетучетные данные, которые вы ожидаете.

4. Спасибо! Я пару раз проверил учетные данные и восстановил ключи доступа — по-прежнему никакой разницы. Но я могу менять учетные записи по своему желанию, и никакая другая учетная запись не вызывает подобных проблем.

Ответ №1:

Нет понятия «нет доступа к CLI». AWS CLI — это программа на Python, которая использует AWS SDK для Python (boto3) для выполнения вызовов API. Каждый вызов API оценивается индивидуально при получении AWS.

В сообщении об ошибке, которое вы предоставили, говорится, что пользователю не разрешено перечислять корзины Amazon S3, что было бы точным, поскольку предоставленная вами политика не предоставляет никаких разрешений для Amazon S3.

В другой ошибке упоминается explicit deny — так что либо она не использует указанную вами политику, либо действует политика управления службами, которая ограничивает разрешенные вызовы API.

Комментарии:

1. Доступ извне консоли вообще отсутствует, за исключением aws sts get-caller-identity . Кроме того, к моей учетной записи привязаны две политики, указанная в моем вопросе, и доступ администратора: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*" } ] }

2. Может ли SCP запретить доступ извне консоли, одновременно предоставляя мне полные права администратора в консоли?

3. Нет, поведение будет идентичным. get-caller-identity Соответствует ли результат пользователю IAM, который вошел в консоль?

4. Да, он соответствует пользователю