Criar um perfil para um provedor de identidade de terceiros (federação)
Você pode usar provedores de identidade em vez de criar usuários do IAM na sua Conta da AWS. Com um provedor de identidade (IdP), você pode gerenciar as identidades de usuários fora da AWS e fornecer a essas identidades de usuários externos permissões para acessar recursos da AWS na sua conta. Para obter mais informações sobre federação e provedores de identidade, consulte Provedores de identidade e federação.
Criar uma função para usuários federados (console)
Os procedimentos para criar um perfil para usuários federados dependem de sua opção de provedores de terceiros:
-
Para OpenID Connect (OIDC), consulte Criar uma função para uma federação do OpenID Connect (console).
-
Para SAML 2.0, consulte Criar um perfil para uma federação do SAML 2.0 (console).
Criar uma função para acesso federado (AWS CLI)
As etapas para criar uma função para provedores de identidade (OIDC ou SAML) na AWS CLI são idênticas. A diferença está no conteúdo da política de confiança que você cria nas etapas obrigatórias. Comece seguindo as etapas na seção Pré-requisitos para o tipo de provedor que você está usando:
-
Para um provedor do OIDC, consulte Pré-requisitos para a criação de uma função para o OIDC.
-
Para um provedor do SAML, consulte Pré-requisitos para a criação de uma função para o SAML.
A criação de uma função a partir da AWS CLI envolve várias etapas. Quando o console é usado para criar uma função, muitas das etapas são concluídas por você, mas com a AWS CLI, é necessário executar explicitamente cada etapa. Você deve criar a função e atribuir uma política de permissões à função. Opcionalmente, você também pode definir o limite de permissões para sua função.
Para criar uma função para a federação de identidades (AWS CLI)
-
Criar uma função: aws iam create-role
-
Anexar uma política de permissões à função: aws iam attach-role-policy
ou
Criar uma política de permissões em linha para a função: aws iam put-role-policy
-
(Opcional) Adicione atributos personalizados à função anexando tags: aws iam tag-role
Para ter mais informações, consulte Gerenciar etiquetas em funções do IAM (AWS CLI ou API da AWS).
-
(Opcional) Definir o limite de permissões para a função: aws iam put-role-permissions-boundary
Um limite de permissões controla o número máximo de permissões que uma função pode ter. Os limites de permissões são um recurso avançado da AWS.
O exemplo a seguir mostra as duas primeiras e as etapas mais comuns para a criação de uma função de provedor de identidade em um ambiente simples. Este exemplo permite que qualquer usuário na conta 123456789012
assuma a função e visualize o bucket example_bucket
do Amazon S3. Este exemplo também supõe que você esteja executando a AWS CLI em um computador Windows e já tenha configurado a AWS CLI com suas credenciais. Para obter mais informações, consulte Configurar a AWS Command Line Interface.
A política de confiança do exemplo a seguir será designada para um aplicativo móvel se o usuário fizer login usando o Amazon Cognito. Neste exemplo, us-east:12345678-ffff-ffff-ffff-123456
representa o ID do grupo de identidades atribuído pelo Amazon Cognito.
{ "Version": "2012-10-17", "Statement": { "Sid": "RoleForCognito", "Effect": "Allow", "Principal": {"Federated": "cognito-identity.amazonaws.com"}, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": {"StringEquals": {"cognito-identity.amazonaws.com:aud": "us-east:12345678-ffff-ffff-ffff-123456"}} } }
A política de permissões a seguir permite que qualquer pessoa que assuma a função execute apenas a ação ListBucket
no bucket example_bucket
do Amazon S3.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::example_bucket" } }
Para criar essa função Test-Cognito-Role
, você deve primeiro salvar a política de confiança anterior com o nome trustpolicyforcognitofederation.json
e a política de permissões anterior com o nome permspolicyforcognitofederation.json
na pasta policies
na unidade C:
local. Você pode usar os comandos a seguir para criar a função e anexar a política em linha.
# Create the role and attach the trust policy that enables users in an account to assume the role. $
aws iam create-role --role-name Test-Cognito-Role --assume-role-policy-document file://C:\policies\trustpolicyforcognitofederation.json
# Attach the permissions policy to the role to specify what it is allowed to do.
aws iam put-role-policy --role-name Test-Cognito-Role --policy-name Perms-Policy-For-CognitoFederation --policy-document file://C:\policies\permspolicyforcognitofederation.json
Criar uma função para acesso federado (API da AWS)
As etapas para criar uma função para provedores de identidade (OIDC ou SAML) na AWS CLI são idênticas. A diferença está no conteúdo da política de confiança que você cria nas etapas obrigatórias. Comece seguindo as etapas na seção Pré-requisitos para o tipo de provedor que você está usando:
-
Para um provedor do OIDC, consulte Pré-requisitos para a criação de uma função para o OIDC.
-
Para um provedor do SAML, consulte Pré-requisitos para a criação de uma função para o SAML.
Para criar uma função para a federação de identidades (API da AWS)
-
Criar uma função: CreateRole
-
Anexar uma política de permissões à função: AttachRolePolicy
ou
Criar uma política de permissões em linha para a função: PutRolePolicy
-
(Opcional) Adicione atributos personalizados ao usuário anexando tags: TagRole
Para ter mais informações, consulte Gerenciamento de etiquetas em usuários do IAM (AWS CLI ou API da AWS).
-
(Opcional) Definir o limite de permissões para a função: PutRolePermissionsBoundary
Um limite de permissões controla o número máximo de permissões que uma função pode ter. Os limites de permissões são um recurso avançado da AWS.