Share Your AWS re:Post Experience - Quick 3 Question Survey
Help us improve AWS re:Post! We're interested in understanding how you use re:Post and its impact on your AWS journey. Please take a moment to complete our brief 3-question survey.
Como conceder acesso à API ou à AWS CLI para os usuários do Active Directory por meio do AD FS?
Eu configurei o acesso ao Console de Gerenciamento da AWS para meus usuários do Active Directory usando federação. Quero dar aos usuários o mesmo acesso à AWS Command Line Interface (AWS CLI) usando o Active Directory Federation Services (AD FS).
Breve descrição
Se você permitir que usuários federados do SAML 2.0 acessem o Console de Gerenciamento da AWS, então, os usuários que precisam de acesso programático ainda devem ter uma chave de acesso e uma chave secreta.
Para obter o ID da chave de acesso e a chave de acesso secreta para um usuário do AWS Identity and Access Management (AWS IAM), faça um das seguintes opções:
- Configurar a AWS CLI.
- Obter credenciais temporárias para que usuários federados acessem a AWS CLI.
Antes de conceder acesso a um usuário federado, faça o seguinte:
- Ativar a federação na AWS usando o Windows Active Directory, AD FS e SAML 2.0.
- Usar a versão 3.1.31.0 ou superior das ferramentas da AWS para PowerShell. Também é possível instalar a versão 2.36 ou superior (versão estável) do AWS SDK para Python na estação de trabalho.
- Use um arquivo .aws/credentials com o mínimo de credenciais.
Observação: essa solução não é compatível se você tem autenticação multifator (MFA) ativada para os usuários do seu diretório.
Resolução
Se o provedor de identidades (IdP) estiver configurado para funcionar com Integrated Windows Authentication (IWA), NTLM ou Kerberos (padrão para AD FS 2.0), consulte a Solução 1. Se o IdP estiver configurado para funcionar com a autenticação baseada em formulário (padrão para AD FS 3.0 e 4.0), consulte a Solução 2.
Observação: Se você receber erros ao executar comandos da AWS CLI, verifique se está utilizando a versão mais recente da AWS CLI.
PowerShell para AD FS usando IWA (PowerShell 2.0)
1. Importe o módulo Windows PowerShell executando o seguinte comando:
> Import-Module "C:\Program Files (x86)\AWS Tools\PowerShell\AWSPowerShell\AWSPowerShell.psd1"
2. Defina uma variável para O endpoint do AD FS executando um comando semelhante ao seguinte:
> $Endpoint = 'https://adfs.example.com/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices'
Observação: isso inclui o URL completo da sua página de login do AD FS e o nome de recurso uniforme (URN) de login da AWS.
3. Defina o endpoint SAML executando um comando semelhante ao seguinte:
> $EndpointName = Set-AWSSamlEndpoint -Endpoint "$Endpoint" -StoreAs 'ADFS-Login' -AuthenticationType NTLM
Observação: por padrão, o AuthenticationType (Tipo de autenticação) do AD FS 2.0 está definido como NTLM. Se não for especificado um valor para o AuthenticationType (Tipo de autenticação) no exemplo anterior do Cmdlet das ferramentas da AWS, o Kerberos será usado por padrão.
4. Use as configurações de endpoint armazenadas para se autenticar com o AD FS IdP para obter uma lista de funções que o usuário pode assumir usando um dos seguintes métodos:
Use as credenciais do usuário que está atualmente conectado à estação de trabalho.
> Set-AWSSamlRoleProfile -StoreAs 'SAMLUser' -EndpointName $EndpointName
-ou-
Especifique as credenciais de um usuário do Active Directory.
> $Credential = Get-Credential -Message "Enter the domain credentials for the endpoint" > Set-AWSSamlRoleProfile -EndpointName $EndpointName -NetworkCredential $credential -StoreAs 'SAMLUser'
5. Se várias funções estiverem disponíveis, você deverá selecionar a função que deseja assumir. Insira o caractere alfabético na sessão do terminal semelhante ao seguinte:
SAMLUser[A] A - 123456789012:role/ADFS-DevAdmin [B] B - 123456789012:role/ADFS-DevReadOnly [?] Help (default is "A"): A
6. Confirme se os usuários podem acessar a AWS CLI usando as credenciais federadas e o perfil especificado executando um comando semelhante ao seguinte:
Get-IAMSAMLProviderList -ProfileName SAMLUser
Python para AD FS com autenticação baseada em formulário (padrão para AD FS 3.0 e 4.0)
1. Instale os seguintes módulos no Python:
pip install --upgrade boto beautifulsoup4 requests
2. Implemente uma solução geral para acesso federado à API/CLI usando SAML 2.0 e, em seguida, baixe o script da etapa 4 desta publicação do blog vinculada.
3. Abra o script e defina a região e o formato de saída preferidos. Substitua adfs.example.com por seu URL e, em seguida, insira o nome de domínio totalmente qualificado (FQDN) do servidor AD FS.
region = 'eu-west-1' outputformat = 'json' awsconfigfile = '/.aws/credentials' idpentryurl = 'https://adfs.example.com/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices'
Observação: se você tiver um caminho de arquivo diferente para o arquivo de credenciais da AWS, especifique o caminho do arquivo.
4. Salve as alterações, execute o arquivo e, em seguida, preencha os seguintes campos, à medida que aparecerem:
bob@Ubuntu64:~$ ./working_samlapi.py Username: bob@example.com Password: *********** Please choose the role you would like to assume: [ 0 ]: arn:aws:iam::123456789012:role/ADFS-DevAdmin [ 1 ]: arn:aws:iam::123456789012:role/ADFS-DevReadOnly Selection: 0 ---------------------------------------------------------------- Your new access key pair has been stored in the AWS configuration file /home/ec2-user/.aws/credentials under the saml profile. Note that it will expire at 2018-03-14T14:57:45Z. After this time, you may safely rerun this script to refresh your access key pair. To use this credential, call the AWS CLI with the --profile option (e.g. aws --profile saml ec2 describe-instances). ----------------------------------------------------------------
5. Depois de federar com êxito, execute comandos usando o perfil SAML recém-configurado usando o parâmetro -- profile em seus comandos.
bob@Ubuntu64:~$ aws iam list-saml-providers --profile saml { "SAMLProviderList": [ { "CreateDate": "2018-03-14T13:28:24Z", "ValidUntil": "2118-03-14T13:28:23Z", "Arn": "arn:aws:iam::123456789012:saml-provider/adfs" } ] }
Informações relacionadas
Configurar a identidade federada com ferramentas da AWS para PowerShell
Vídeos relacionados


Conteúdo relevante
- feita há 2 meseslg...
- Resposta aceitafeita há um mêslg...
- feita há um mêslg...
- feita há um mêslg...
- AWS OFICIALAtualizada há 10 meses
- AWS OFICIALAtualizada há 4 anos
- AWS OFICIALAtualizada há um ano