AWS Elementos de política JSON da: Principal - AWS Identity and Access Management

AWS Elementos de política JSON da: Principal

Use o elemento Principal em uma política para especificar o principal cujo acesso a um recurso é permitido ou negado. Você não pode usar o elemento Principal em uma política baseada em identidade do IAM. Você pode usá-lo nas políticas de confiança para funções do IAM e em políticas baseadas em recurso. As políticas baseadas em recursos são políticas que você incorpora diretamente em um recurso. Por exemplo, você pode incorporar políticas em um bucket do Amazon S3 ou uma AWS KMS key.

Você pode especificar qualquer um dos seguintes principais em uma política:

  • Conta e usuário raiz da AWS

  • Usuários do IAM

  • Usuários federados (uso de federação do SAML ou de identidades da web)

  • Funções do IAM

  • Sessões de função assumida

  • AWSServiços da

  • Usuários anônimos (não recomendado)

Use o elemento Principal das seguintes maneiras:

  • Nas funções do IAM, use o elemento Principal na política de confiança da função para especificar quem pode assumir a função. Para o acesso entre contas, você deve especificar o identificador de 12 dígitos da conta confiável. Para saber se as entidades de contas fora de sua zona de confiança (organização confiável ou conta) têm acesso para assumir as suas funções, consulte O que é o IAM Access Analyzer?.

    nota

    Depois de criar a função, você pode alterar a conta para "*" a fim de permitir que todas as pessoas assumam a função. Se você fizer isso, recomendamos que você limite quem pode acessar a função através de outros meios, tal como um elemento Condition que limita o acesso somente a determinados endereços IP. Não deixe a função acessível a todos!

  • Em políticas baseadas em recursos, use o elemento Principal para especificar as contas ou os usuários que têm permissão para acessar o recurso.

Não use o elemento Principal em políticas que você anexa a usuários e grupos do IAM. Da mesma forma, não especifique uma entidade de segurança na política de permissões para uma função do IAM. Nesses casos, a entidade de segurança é implicitamente o usuário ao qual a política está anexada (para usuários do IAM) ou o usuário que assume a função (para políticas de acesso à função). Quando a política é anexada a um grupo do IAM a entidade de segurança é o usuário do IAM desse grupo que está fazendo a solicitação.

Especificar um principal

Especifique uma entidade de segurança usando o nome de recurso da Amazon (ARN) ou outro identificador da entidade de segurança, conforme mostrado nas seções a seguir. Você não pode especificar grupos e perfis de instâncias do IAM como entidades de segurança.

Você pode especificar mais de uma entidade de segurança para cada um dos tipos de entidade de segurança nas seções a seguir usando uma matriz. As matrizes podem levar um ou mais valores. Se mais de um valor for incluído, a matriz será inserida em colchetes ([ e ]) e delimitada por vírgula, como no exemplo a seguir:

"Principal" : { "AWS": [ "arn:aws:iam::123456789012:root", "arn:aws:iam::555555555555:root" ] }

Entidades de segurança da conta da AWS

Ao usar um identificador de conta da AWS como a entidade principal em uma política, você delega autoridade à conta. Um administrador nessa conta pode então conceder acesso a qualquer identidade nessa conta. Isso inclui usuários e funções do IAM nessa conta. Ao especificar uma conta da AWS você pode usar o ARN da conta (arn:aws:iam::AWS-account-ID:root), ou uma forma abreviada que consiste no prefixo AWS: seguido pelo ID da conta.

Por exemplo, dado um ID da conta de 123456789012, você pode usar um dos seguintes métodos para especificar essa conta no elemento Principal:

"Principal": { "AWS": "arn:aws:iam::123456789012:root" }
"Principal": { "AWS": "123456789012" }

Você também pode especificar mais de uma conta da AWS (ou um ID de usuário canônico) como uma entidade de segurança usando uma matriz, com qualquer combinação dos métodos que mencionamos anteriormente.

"Principal": { "AWS": [ "arn:aws:iam::123456789012:root", "999999999999" ] }

Alguns serviços da AWS são compatíveis com opções adicionais para especificar uma conta do principal. Por exemplo, o Amazon S3 permite que você especifique um ID de usuário canônico usando o seguinte formato:

"Principal": { "CanonicalUser": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be" }

Entidades de segurança de usuários individuais do IAM

Você pode especificar um usuário individual do IAM (ou uma matriz de usuários) como a entidade de segurança, como nos exemplos a seguir. Ao especificar mais de um principal no elemento, você concede permissões para cada principal. Isso é um OR lógico e um AND não lógico, porque você é autenticado como um principal de cada vez.

nota

Em um elemento Principal, o nome de usuário diferencia letras maiúsculas de minúsculas.

"Principal": { "AWS": "arn:aws:iam::AWS-account-ID:user/user-name" }
"Principal": { "AWS": [ "arn:aws:iam::AWS-account-ID:user/user-name-1", "arn:aws:iam::AWS-account-ID:user/UserName2" ] }

Ao especificar usuários em um elemento Principal, você não pode usar um curinga (*) para se referir a "todos os usuários". Principais devem sempre nomear um usuário ou usuários específicos.

Importante

Se o seu elemento Principal em uma política de confiança de função contiver um ARN que aponte para um usuário do IAM específico, o ARN será transformado no ID exclusivo da entidade de segurança do usuário quando a política for salva. Isso ajuda a reduzir o risco de alguém elevar seus privilégios ao remover e recriar o usuário. Normalmente, você não vê esse ID no console, pois há também uma transformação reversa de volta para o ARN do usuário quando a política de confiança é exibida. No entanto, se você excluir o usuário, o relacionamento é interrompido. A política não se aplica mais, mesmo se você recriar o usuário. Isso porque o novo usuário tem um novo ID principal que não corresponde ao ID armazenado na política de confiança. Quando isso ocorre, o ID principal aparece no console, pois a AWS não pode mais mapeá-lo de volta para um ARN válido. O resultado é que, se você excluir e recriar um usuário referenciado no elemento Principal de uma política de confiança, você deve editar a função para substituir o agora incorreto ID principal pelo ARN correto. O ARN será novamente transformado no novo ID principal do usuário quando você salvar a política.

Entidades de segurança de usuário federado de identidade da Web

"Principal": { "Federated": "cognito-identity.amazonaws.com" }
"Principal": { "Federated": "www.amazon.com" }
"Principal": { "Federated": "graph.facebook.com" }
"Principal": { "Federated": "accounts.google.com" }

Entidades de segurança de usuário SAML federado

"Principal": { "Federated": "arn:aws:iam::AWS-account-ID:saml-provider/provider-name" }

Entidades de segurança de função do IAM

"Principal": { "AWS": "arn:aws:iam::AWS-account-ID:role/role-name" }
Importante

Se o seu elemento Principal em uma política de confiança de função contiver um ARN que aponte para uma função do IAM específica, o ARN será transformado no ID exclusivo da entidade de segurança da função quando a política for salva. Isso ajuda a reduzir o risco de alguém elevar seus privilégios ao remover e recriar a função. Normalmente, você não vê esse ID no console, pois há também uma transformação reversa de volta para o ARN da função quando a política de confiança é exibida. No entanto, se você excluir a função, o relacionamento é interrompido. A política não se aplica mais, mesmo se você recriar a função, pois a nova função possui um novo ID principal que não corresponde ao ID armazenado na política de confiança. Quando isso ocorre, o ID principal aparece no console, pois a AWS não pode mais mapeá-lo de volta para um ARN válido. O resultado final é que, se você excluir e recriar uma função referenciada no elemento Principal de uma política de confiança, você deve editar a função para substituir o agora incorreto ID principal pelo ARN correto. O ARN será novamente transformado no novo ID principal da função quando você salvar a política.

Entidades de segurança específicas da sessão de função assumida

"Principal": { "AWS": "arn:aws:sts::AWS-account-ID:assumed-role/role-name/role-session-name" }

Ao especificar uma sessão de função assumida em um elemento Principal, não é possível usar um curinga (*) para significar "todas as sessões". Os principais devem sempre nomear uma sessão específica.

Entidades de produto da AWS

As funções do IAM que podem ser assumidas por um produto da AWS são chamadas de funções de serviço. As funções de serviço devem incluir uma política de confiança. Políticas de confiança são políticas baseadas em recursos anexadas a uma função que define quais entidades principais podem assumir a função. Algumas funções de serviço têm políticas de confiança predefinidas. No entanto, em alguns casos, você deve especificar o escopo principal do serviço na política de confiança. Um escopo principal do serviço é um identificador que é usado para conceder permissões a um serviço.

O identificador de uma entidade principal de serviço inclui o nome do serviço e geralmente está no seguinte formato:

service-name.amazonaws.com

O escopo principal do serviço é definido pelo serviço. É possível encontrar a entidade de segurança de alguns serviços abrindo Produtos da AWS compatíveis com o IAM, verificando se o serviço tem Yes (Sim) na coluna Service-linked role (Função vinculada ao serviço) e abrindo o link Yes (Sim) para visualizar a documentação da função vinculada a esse serviço. Localize a seção Service-Linked Role Permissions (Permissões da função vinculada ao serviço) desse serviço para visualizar o principal do serviço.

O exemplo a seguir mostra uma política que pode ser anexada a uma função do serviço. A política permite que dois serviços, o Amazon ECS eo Elastic Load Balancing, assumam a função. Os serviços podem então realizar qualquer tarefa concedida pela política de permissões atribuída à função (não exibida). Para especificar vários principais de serviço, você não especifica dois elementos Service; pode ter apenas um. Em vez disso, você usa uma variedade de principais de serviços múltiplas como o valor de um único elemento Service.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ecs.amazonaws.com", "elasticloadbalancing.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Entidades de segurança de usuário anônimo (acesso público)

Para políticas baseadas em recursos, como políticas de bucket do Amazon S3, um caractere curinga (*) no elemento da entidade de segurança especifica todos os usuários ou o acesso público. Os seguintes elementos são equivalentes:

"Principal": "*"
"Principal" : { "AWS" : "*" }

Não é possível usar um curinga para corresponder a parte de um nome ou um ARN.

Recomendamos que você não use um curinga no elemento Principal em uma política de confiança da função, a menos que você também restrinja o acesso por meio de um elemento Condition na política. Caso contrário, qualquer usuário do IAM em qualquer conta em sua partição poderá acessar a função.

Mais informações

Para obter mais informações, consulte: