As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usar atributos para controle de acesso
Os atributos para controle de acesso são a implementação do controle de acesso baseado em atributos () nos grupos de identidade do Amazon Cognito. ABAC Você pode usar IAM políticas para controlar o acesso aos AWS recursos por meio dos grupos de identidade do Amazon Cognito com base nos atributos do usuário. Esses atributos podem ser extraídos de provedores de identidade social e corporativa. Você pode mapear atributos nos tokens ou SAML declarações de acesso e ID dos provedores para tags que podem ser referenciadas nas políticas de permissões. IAM
Você pode escolher mapeamentos padrão ou criar seus próprios mapeamentos personalizados nos conjuntos de identidades do Amazon Cognito. Os mapeamentos padrão permitem que você escreva IAM políticas com base em um conjunto fixo de atributos do usuário. Os mapeamentos personalizados permitem que você selecione um conjunto personalizado de atributos do usuário que são referenciados nas IAM políticas de permissões. Os nomes dos atributos no console do Amazon Cognito são mapeados para a chave de tag principal, que são as tags referenciadas na política de permissões. IAM
Por exemplo, vamos supor que você tenha um serviço de transmissão de mídia com uma assinatura gratuita e paga. Você armazena os arquivos de mídia no Amazon S3 e os marca com tags gratuitas ou premium. Você pode usar atributos para controle de acesso a fim de permitir acesso a conteúdo gratuito e pago com base no nível de associação do usuário, que faz parte do perfil do usuário. Você pode mapear o atributo de associação para uma chave de tag para que o principal seja passado para a política de IAM permissões. Dessa forma, você pode criar uma única política de permissões e permitir condicionalmente o acesso a conteúdo premium com base no valor do nível de associação e na tag dos arquivos de conteúdo.
Tópicos
Usar atributos para controlar o acesso traz vários benefícios:
-
O gerenciamento de permissões é mais eficiente quando você usa atributos para controle de acesso. Você pode criar uma política de permissões básicas que usa atributos de usuário em vez de criar várias políticas para funções de trabalho diferentes.
-
Você não precisa atualizar suas políticas sempre que adicionar ou remover recursos ou usuários da sua aplicação. A política de permissões só concederá acesso aos usuários com os atributos de usuário correspondentes. Por exemplo, talvez seja necessário controlar o acesso a determinados buckets do S3 com base no cargo dos usuários. Nesse caso, você pode criar uma política de permissões para permitir o acesso a esses arquivos somente para usuários dentro do cargo definido. Para obter mais informações, consulte IAMTutorial: Usar tags de SAML sessão para ABAC.
-
Os atributos podem ser passados como tags de entidades para uma política que permita ou negue permissões com base nos valores destes atributos.
Uso de atributos para controle de acesso com conjuntos de identidades do Amazon Cognito
Antes de usar atributos para controle de acesso, verifique se você atende aos seguintes pré-requisitos:
Para usar atributos para controle de acesso, a Declaração que você define como fonte de dados define o valor da Chave de tag selecionada. O Amazon Cognito aplica a chave e o valor da tag à sessão do usuário. Suas IAM políticas podem avaliar o acesso do seu usuário a partir da ${aws:PrincipalTag/
condição. IAMavalia o valor da tag do seu usuário em relação à política.tagkey
}
Você deve preparar IAM funções cujas credenciais você deseja passar para seus usuários. A política de confiança desses perfis deve permitir que o Amazon Cognito assuma o perfil para o usuário. Quanto a atributos de controle de acesso, você também deve permitir que o Amazon Cognito aplique tags de entidade principal à sessão temporária do usuário. Conceda permissão para assumir a função com a ação AssumeRoleWithWebIdentity. Conceda permissão para marcar as sessões dos usuários com a ação somente com permissão sts:TagSession
. Para receber mais informações, consulte Passar tags de sessão no AWS Security Token Service no Guia do usuário do AWS Identity and Access Management . Por ver um exemplo de política de confiança que concede as permissões sts:AssumeRoleWithWebIdentity
e sts:TagSession
à entidade principal do serviço Amazon Cognito cognito-identity.amazonaws.com
, consulte Usar atributos para exemplo de política de controle de acesso.
Como configurar atributos para controle de acesso no console
-
Faça login no console do Amazon Cognito
e selecione Bancos de identidades. Selecione um banco de identidades. -
Selecione a guia Acesso do usuário.
-
Localize Provedores de identidade. Selecione o provedor de identidades a ser editado. Se você quiser adicionar um novo IdP, selecione Adicionar provedor de identidade.
-
Para alterar as tags de entidade principal que o Amazon Cognito atribui quando emite credenciais para usuários que se autenticaram com esse provedor, selecione Editar em Atributos para controle de acesso.
-
Para não aplicar nenhuma tag de entidade principal, selecione Inativo.
-
Para aplicar tags de entidade principal com base em declarações
sub
eaud
, selecione Usar mapeamentos padrão. -
Para criar seu próprio esquema personalizado de atributos para as tags de entidade principal, selecione Usar mapeamentos personalizados. Depois, insira a Chave de tag que você deseja obter de cada declaração e representar em uma tag.
-
-
Selecione Save Changes (Salvar alterações).
Usar atributos para exemplo de política de controle de acesso
Considere uma situação em que um funcionário do departamento jurídico de uma empresa precisa listar todos os arquivos em buckets que pertencem ao departamento e são classificados com seu nível de segurança. Suponha que o token que esse funcionário recebe do provedor de identidade contenha as seguintes solicitações.
Reivindicações
{ . . "sub" : "57e7b692-4f66-480d-98b8-45a6729b4c88", "department" : "legal", "clearance" : "confidential", . . }
Esses atributos podem ser mapeados para tags e referenciados nas políticas de IAM permissões como tags principais. Agora, você pode gerenciar o acesso alterando o perfil do usuário no lado do provedor de identidade. Como alternativa, você pode alterar atributos no lado do recurso usando nomes ou tags sem alterar a própria política.
A política de permissões a seguir faz duas coisas:
-
Permite acesso da lista a todos os buckets do S3 que terminam com um prefixo correspondente ao nome do departamento do usuário.
-
Permite acesso de leitura em arquivos nesses buckets, desde que a marca de depuração no arquivo corresponda ao atributo de depuração do usuário.
Política de permissões
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:List*", "Resource": "arn:aws:s3:::*-${aws:PrincipalTag/department}" }, { "Effect": "Allow", "Action": "s3:GetObject*", "Resource": "arn:aws:s3:::*-${aws:PrincipalTag/department}/*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/clearance": "${aws:PrincipalTag/clearance}" } } } ] }
A política de confiança determina quem pode assumir essa função. A política de relacionamento de confiança permite o uso de sts:AssumeRoleWithWebIdentity
e sts:TagSession
para permitir o acesso. Ela adiciona condições para restringir a política ao banco de identidades que você criou e garante que ela seja para uma função autenticada.
Política de confiança
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": [ "sts:AssumeRoleWithWebIdentity", "sts:TagSession" ], "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "IDENTITY-POOL-ID" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "authenticated" } } } ] }
Desativar atributos para controle de acesso (console)
Siga este procedimento para desativar atributos para controle de acesso.
Como desativar atributos para controle de acesso no console
-
Faça login no console do Amazon Cognito
e selecione Bancos de identidades. Selecione um banco de identidades. -
Selecione a guia Acesso do usuário.
-
Localize Provedores de identidade. Selecione o provedor de identidades a ser editado.
-
Selecione Editar em Atributos para controle de acesso.
-
Para não aplicar nenhuma tag de entidade principal, selecione Inativo.
-
Selecione Save Changes (Salvar alterações).
Mapeamentos padrão do provedor
A tabela a seguir possui as informações de mapeamento padrão para os provedores de autenticação que são compatíveis com o Amazon Cognito.
Provedor | Tipo de token | Valores de tag da entidade principal | Exemplo |
---|---|---|---|
Conjunto de usuários do Amazon Cognito |
Token de ID |
aud (ID do cliente) e sub (ID do usuário) |
“6jk8ltokc7ac9es6jrtg9q572f”, “57e7b692-4f66-480d-98b8-45a6729b4c88” |
|
Token de acesso |
aud(app_id), sub(user_id) |
"492844718097981", "112177216992379" |
|
Token de ID |
aud (ID do cliente) e sub (ID do usuário) |
"620493171733-eebk7c0hcp5lj3e1tlqp1gntt3k0rncv.apps.googleusercontent.com", "109220063452404746097" |
SAML |
Asserções |
“http://schemas.xmlsoap. org/ws/2005/05/identity/claims/nameidentifier" , "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name” |
“auth0|5e28d196f8f55a0eaaa95de3”, “user123@gmail.com” |
Apple |
Token de ID |
aud (ID do cliente) e sub (ID do usuário) |
"com.amazonaws.ec2-54-80-172-243.compute-1.client", "001968.a6ca34e9c1e742458a26cf8005854be9.0733" |
Amazon |
Token de acesso |
aud (ID do cliente no Amzn Dev Ac), user_id (ID do usuário) |
“amzn1.application-oa2-client.9d70d9382d3446108aaee3dd763a0fa6", “amzn1.account. AGHNIFJQMFSBG3G6XCPVB35ORQAA” |
OIDCProvedores padrão |
Tokens de ID e de acesso |
aud (como client_id), sub (como ID do usuário) |
"620493171733-eebk7c0hcp5lj3e1tlqp1gntt3k0rncv.apps.googleusercontent.com", "109220063452404746097" |
|
Token de acesso |
aud (ID da aplicação; segredo da aplicação), sub (ID do usuário) |
“DfwifTtKEX1FiIBRnOTlR0CFK;Xgj5xb8xIrIVCPjXgLIdkW7fXmwcJJrFvnoK9gwZkLexo1y5z1", “1269003884292222976" |
DevAuth |
Mapa |
Não aplicável |
“tag1", “tag2" |
nota
A opção de mapeamentos de atributo padrão é preenchida automaticamente para os nomes de Tag Key for Principal (Chave de tag para entidade principal) e Attribute (Atributo). Não é possível alterar os mapeamentos padrão.