Есть ли команда / подкоманда, которую можно передать aws
утилите, которая может 1) проверить, что учетные данные в ~/.aws/credentials
файле действительны, и 2) дать некоторое указание, к какому пользователю принадлежат учетные данные? Я ищу что-то общее, что не делает никаких предположений о том, что у пользователя есть разрешения на IAM или какой-либо конкретный сервис.
Вариант использования для этого - проверка работоспособности во время развертывания, чтобы убедиться, что учетные данные в порядке. В идеале был бы какой-то способ проверить возвращаемое значение и прервать развертывание, если есть недействительные учетные данные.
amazon-web-services
aws-cli
smitelli
источник
источник
Ответы:
Используйте GetCallerIdentity :
aws sts get-caller-identity
В отличие от других вызовов API / CLI, он всегда будет работать независимо от ваших разрешений IAM.
Вы получите вывод в следующем формате:
Точный формат ARN зависит от типа учетных данных, но часто включает имя пользователя (человека).
Он использует стандартные коды ошибок AWS CLI, которые дают 0 в случае успеха и 255, если у вас нет учетных данных.
источник
aws iam get-user --profile test-mfa
, я получаю:An error occurred (AccessDenied) when calling the GetUser operation
. Однакоaws sts get-caller-identity --profile test-mfa
выводит (аналогично, без активного маркера сеанса MFA)test-mfa
учетную запись, ARN и идентификатор пользователя.Существует прямой способ -
aws iam get-user
сообщить подробности о том, кто вы (текущий пользователь IAM), - при условии, что у пользователя естьiam
привилегии.Есть пара вызовов CLI, которые поддерживают
--dry-run
флаг, например,aws ec2 run-instances
вы говорите, есть ли у вас необходимый config / cred для выполнения операции.Также есть
--auth-dry-run
проверка того, есть ли у вас необходимые разрешения для команды, без фактического запуска команды. Если у вас есть необходимые разрешения, команда возвращает DryRunOperation; в противном случае возвращается UnauthorizedOperation. [Из документации AWS - Общие параметры ]Вы сможете перечислить ключи доступа IAM из консоли управления, которые вы можете перепроверить, чтобы узнать, кому и какому ключу был назначен.
Лучший способ понять, какой пользователь / роль имеет какие привилегии, это использовать IAM Policy Simulator .
источник
AccessDenied
ошибку, которая включала полнуюarn:aws:iam::123...890:user/somebody
строку как часть вывода ошибки.