Atualmente, estou gerenciando múltiplas contas na AWS usando AWS Organizations e o IAM Identity Center. Uma das dificuldades que encontrei foi a gestão das credenciais no AWS CLI. O processo que estou fazendo é copiar manualmente o token de sessão gerado pelo AWS IAM Identity Center, o que se tornava um problema devido à sua expiração após um curto período.
Felizmente, a AWS oferece uma solução mais prática: o comando aws configure sso
. Esta comando simplifica a configuração do AWS CLI para integração com o IAM Identity Center, resolvendo os problemas relacionados à gestão de tokens que estou tendo.
Requisitos
- AWS CLI
- URL de login do SSO
Passos para Configuração
- Utilize o comando
aws configure sso
para configurar um SSO session no arquivo~/.aws/config
aws configure sso
Responda às perguntas:
- SSO session name: Nome de referência para o SSO na sua máquina.
- SSO start URL: URL de login do SSO.
- SSO region: Região do IAM Identity Center.
-
SSO registration scopes: Mantenha o padrão
sso:account:access
Exemplo:
❯ aws configure sso
SSO session name (Recommended): tech-corp
SSO start URL [None]: https://tech-corp.awsapps.com/start
SSO region [None]: us-east-1
SSO registration scopes [sso:account:access]:
Attempting to automatically open the SSO authorization page in your default browser.
If the browser does not open or you wish to use a different device to authorize this request, open the following URL:
https://device.sso.us-east-1.amazonaws.com/
Then enter the code:
DRWH-VBLG
Após isso, o AWS CLI abrirá uma página para autenticação no seu browser. Se não abrir automaticamente, você receberá um link para abrir manualmente no terminal.
- Configurar Conta e IAM Role Escolha a conta e a IAM Role desejada. Se você tiver apenas uma conta ou um IAM Role, o AWS CLI selecionará automaticamente:
There are 2 AWS accounts available to you.
> DeveloperAccount, developer-account-admin@example.com (`123456789011`)
ProductionAccount, production-account-admin@example.com (`123456789022`)
Using the account ID `123456789011`
There are 2 roles available to you.
> ReadOnly
FullAccess
- Configurar Informações Padrão Defina a região padrão, formato de saída e nome do profile:
CLI default client Region [None]: us-east-1
CLI default output format [None]: json
CLI profile name [123456789011_ReadOnly]: sandbox
- Testar a Configuração Use o profile configurado para executar comandos:
aws s3 ls --profile sandbox
Adicionando mais PROFILE
Para adicionar mais Profile, basta usar o comando aws configure sso
novamente. Ao inserir o nome da sessão SSO que você configurou anteriormente, o comando irá sugerir automaticamente opções e solicitará que você selecione a conta e o perfil que deseja configurar.
Como aws configure sso
funciona
O comando aws configure sso
configura as informações no arquivo ~/.aws/config
, enquanto o aws configure
modifica o ~/.aws/configure
. Exemplo:
[default]
region = us-east-1
[profile sandbox]
sso_session = tech-corp
sso_account_id = 180294220307
sso_role_name = ReadOnly
region = us-east-1
[sso-session tech-corp]
sso_start_url = https://tech-corp.awsapps.com/start
sso_region = us-east-1
sso_registration_scopes = sso:account:access
Para adicionar um novo profile manualmente, siga o padrão:
[profile `my-dev-profile`] # profile que vc vai usará
sso_session = `my-sso` # tech-corp
sso_account_id = `123456789011` # id da conta aws
sso_role_name = `readOnly` # iam role
region = `us-east-1`
output = `json`
Top comments (2)
Monstro!
Muito bem escrito e bom artigo!