Habilitar o acesso de usuários federados SAML 2.0 ao AWS Management Console
Você pode usar uma função para configurar o provedor de identidades (IdP) compatível com SAML 2.0 e o AWS para permitir que os usuários federados acessem o AWS Management Console. A função concede ao usuário permissões para executar tarefas no console. Se você desejar oferecer aos usuários federados SAML outras maneiras de acessar a AWS, consulte um dos seguintes tópicos:
-
Tools for Windows PowerShell: Alternar para um perfil do IAM (Ferramentas para Windows PowerShell)
-
API da AWS: Alternar para um perfil do IAM (API da AWS)
Visão geral
O diagrama a seguir ilustra o fluxo para logon único habilitado para o SAML.
nota
Esse uso específico de SAML difere do uso mais geral ilustrado em Federação SAML 2.0, pois esse um fluxo de trabalho abre o AWS Management Console em nome do usuário. Isso requer o uso do endpoint de login da AWS em vez de chamar diretamente a API AssumeRoleWithSAML
. O endpoint chama a API para o usuário e retorna uma URL que redireciona automaticamente o navegador do usuário para o AWS Management Console.
O diagrama ilustra as seguintes etapas:
-
O usuário acessa o portal de sua organização e seleciona a opção de ir para o AWS Management Console. Em sua organização, o portal geralmente é uma função do seu IdP que lida com a troca de confiança entre a organização e a AWS. Por exemplo, no Active Directory Federation Services, o portal URL é:
https://
ADFSServiceName
/adfs/ls/IdpInitiatedSignOn.aspx -
O portal verifica a identidade do usuário na sua organização.
-
O portal gera uma resposta de autenticação SAML que inclui declarações que identificam o usuário e incluem atributos sobre o usuário. Você também pode configurar seu IdP para incluir um atributo de declaração SAML chamado
SessionDuration
que especifica quanto tempo a sessão do console é válida. Você também pode configurar o IdP para passar atributos como tags de sessão. O portal envia essa resposta ao navegador cliente. -
O navegador cliente é redirecionado para o endpoint de logon único da AWS e publica a declaração SAML.
-
O endpoint solicita credenciais de segurança temporárias em nome do usuário e cria um URL de login do console que usa essas credenciais.
-
A AWS envia o URL de login de volta para o cliente como um redirecionamento.
-
O navegador cliente é redirecionado para o AWS Management Console. Se a resposta de autenticação SAML incluir atributos que sejam mapeados para várias funções do IAM, será solicitado que o usuário selecione a função para acessar o console.
Do ponto de vista do usuário, o processo ocorre de maneira transparente: o usuário começa no portal interno de sua organização e termina no AWS Management Console, sem nunca precisar fornecer nenhuma credencial da AWS.
Consulte as seções a seguir para obter uma visão geral de como configurar esse comportamento junto com links para ver as etapas detalhadas.
Configurar sua rede como um provedor SAML para a AWS
Na rede de sua organização, configure o armazenamento de identidades (como Windows Active Directory) para trabalhar com um IdP baseado em SAML como Windows Active Directory Federation Services, Shibboleth, etc. Usando seu IdP, gere o documento de metadados que descreve sua organização como um IdP e inclui chaves de autenticação. Você também pode configurar o portal da sua organização para rotear as solicitações do usuário do AWS Management Console para o endpoint SAML da AWS para autenticação usando declarações SAML. Como você configura seu IdP para produzir o arquivo metadata.xml depende do IdP. Consulte a documentação do IdP para obter instruções, ou consulte Integrar provedores de soluções SAML de terceiros com a AWS para obter os links para a documentação da web para muitos dos provedores SAML suportados.
Criar um provedor SAML no IAM
Em seguida, faça login no AWS Management Console e vá para o console do IAM. La você cria um novo provedor SAML, que é uma entidade no IAM que mantém informações sobre o IdP de sua organização. Como parte do processo, carregue o documento de metadados produzido pelo software de IdP em sua empresa mencionado na seção anterior. Para obter detalhes, consulte Criar um provedor de identidades SAML no IAM.
Configurar permissões na AWS para seus usuários federados
A próxima etapa é criar uma função do IAM que defina uma relação de confiança entre o IAM e o IdP da sua organização. Essa função deve identificar o IdP como um principal (entidade confiável) para fins de federação. Essa função também define o que os usuários autenticados pelo IdP de sua organização têm permissão para fazer na AWS. Você pode usar o console do IAM para criar essa função. Ao criar a política de confiança que indica quem pode assumir a função, especifique o provedor SAML criado anteriormente no IAM. Especifique também um ou mais atributos SAML que o usuário deve atender para poder assumir a função. Por exemplo, você pode especificar que apenas usuários cujo valor eduPersonOrgDN
SAML seja ExampleOrg
tenham permissão para fazer login. O assistente de função adiciona automaticamente uma condição para testar o atributo saml:aud
para garantir que a função seja assumida apenas para login no AWS Management Console. A política de confiança da função pode ter a seguinte aparência:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Federated": "arn:aws:iam::
account-id
:saml-provider/ExampleOrgSSOProvider"}, "Action": "sts:AssumeRoleWithSAML", "Condition": {"StringEquals": { "saml:edupersonorgdn": "ExampleOrg", "saml:aud": "https://signin.aws.amazon.com/saml" }} }] }
nota
Os IdPs do SAML usados em uma política de confiança de função devem estar na mesma conta em que a função está.
Você pode incluir endpoints regionais para o atributo saml:aud
em https://
. Para obter uma lista dos possíveis valores de region-code
.signin.aws.amazon.com/static/saml-metadata.xmlregion-code
(região-código), consulte a coluna Region (Região) em AWS Sign-In endpoints (Endpoints de login da ).
Para a política de permissões na função, você especifica permissões como faria para qualquer função, usuário ou grupo. Por exemplo, se os usuários da sua organização tiverem permissão para administrar instâncias do Amazon EC2, você poderá permitir explicitamente as ações do Amazon EC2 na política de permissões. Você pode fazer isso atribuindo uma política gerenciada, como a política gerenciada Acesso total ao Amazon EC2.
Para obter detalhes sobre a criação de uma função para um IdP SAML, consulte Criar um perfil para uma federação do SAML 2.0 (console).
Concluir configuração e criar declarações SAML
Informe a seu IdP de SAML que a AWS é a sua provedora de serviços instalando o arquivo saml-metadata.xml
encontrado em https://
ou region-code
.signin.aws.amazon.com/static/saml-metadata.xmlhttps://signin.aws.amazon.com/static/saml-metadata.xml
. Para obter uma lista dos possíveis valores de region-code
, consulte a coluna Região em Endpoints de login da AWS.
A forma de instalação desse arquivo depende do IdP. Alguns provedores dão a opção de digitar o URL, e o IdP obtém e instala o arquivo para você. Outros exigem que você baixe o arquivo pelo URL e forneça como arquivo local. Consulte a documentação do IdP para obter detalhes, ou consulte Integrar provedores de soluções SAML de terceiros com a AWS para obter os links para a documentação da web para muitos dos provedores SAML com suporte.
Você também configura as informações que o IdP deverá transmitir como atributos SAML para a AWS, como parte da resposta de autenticação. A maior parte dessas informações aparece na AWS como chaves de contexto de condição que você pode avaliar em suas políticas. Essas chaves de condição garantem que somente usuários autorizados nos contextos corretos recebam permissão para acessar os seus recursos da AWS. Você pode especificar janelas de tempo que restrinjam quando o console pode ser usado. Você também pode especificar o tempo máximo (até 12 horas) que os usuários podem acessar o console antes de precisar atualizar suas credenciais. Para obter mais detalhes, consulte Configurar declarações SAML para a resposta de autenticação.