Как получить AWS STS с использованием Federated User? - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь получить временные учетные данные STS через федеративного пользователя через корпоративную учетную запись.Корпоративная политика не разрешает использование пользователей IAM, и аутентификация выполняется через AD.

С помощью AWS Cli, я пытаюсь это сделать, но получаю сообщение об ошибке

aws sts assume-role --role-arn arn:aws:iam::<ID>:role/aws-service-role/ecs.amazonaws.com/<role> --role-session-name "Rolesession1" --external-id <federated user login> --debug

Конфигурация AWS:

[default]
region = us-east-1
output = json

[default]
aws_access_key_id =
aws_secret_access_key =
aws_session_token =

Stacktrace:

Произошла ошибка (InvalidClientTokenId) при вызове операции AssumeRole: маркер безопасности, включенный в запрос, недействителен.2019-01-29 09: 15: 54,986 - MainThread - awscli.clidriver - DEBUG - Выход с rc 255

Произошла ошибка (InvalidClientTokenId) при вызове операции AssumeRole: маркер безопасности, включенный в запрос, недействителен.}

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Хорошо, у меня это работает.Сейчас это двухэтапный процесс.

  1. Я использовал этот код Обновление учетных данных STS, предоставленное Amazon .Это запишет ваши учетные данные на ~/.aws/credentials.Ваше имя пользователя и пароль - это то, с чем вы входите в свою корпоративную сеть.
  2. Теперь вы можете использовать AWS_CLI для доступа к API-интерфейсам AWS.Это также будет работать с Ansible playbooks.Вам нужно будет найти учетные данные из файла ~/.aws/credential, поместив их в файл vars.yaml или непосредственно в свою книгу воспроизведения, например:
ec2_access_key: "{{ lookup('ini', 'aws_access_key_id section=saml file=~/.aws/credentials') }}"
ec2_secret_key: "{{ lookup('ini', 'aws_secret_access_key section=saml file=~/.aws/credentials') }}"
ec2_security_token: "{{ lookup('ini', 'aws_session_token section=saml file=~/.aws/credentials') }}"
0 голосов
/ 29 января 2019

Вам потребуется настроить SAML в Active Directory (с использованием ADFS) и объединить интерфейс командной строки AWS через SAML.

В этой статье приведены пошаговые инструкции, как это сделать: https://aws.amazon.com/premiumsupport/knowledge-center/adfs-grant-ad-access-api-cli/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...