Lógica de avaliação de política entre contas - AWS Identity and Access Management

Lógica de avaliação de política entre contas

Você pode permitir que um principal em uma conta acesse os recursos em uma segunda conta. Isso é chamado de acesso entre contas. Quando você permite o acesso entre contas, a conta na qual o principal existe é chamada de conta confiável. A conta na qual o recurso existe é a conta de confiança.

Para permitir o acesso entre contas, anexe uma política baseada em recursos ao recurso que deseja compartilhar. É necessário anexar uma política baseada em identidade para a identidade que atua como entidade principal na solicitação. A política baseada em recursos na conta de confiança deve especificar o principal da conta confiável que terá acesso ao recurso. Você pode especificar toda a conta ou os usuários do IAM, usuários federados, funções do IAM ou sessões de função assumida. Você também pode especificar um serviço da AWS como principal. Para obter mais informações, consulte Especificar um principal.

A política baseada em identidade do principal deve permitir o acesso solicitado ao recurso no serviço de confiança. Você pode fazer isso ao especificar o ARN do recurso ou ao permitir acesso a todos os recursos (*).

No IAM, você pode anexar uma política baseada em recurso a uma função do IAM para permitir que entidades de segurança em outras contas assumam essa função. A política baseada em recursos da função é chamada de política de confiança da função. Depois de assumir essa função, os principais permitidos podem usar as credenciais temporárias resultantes para acessar vários recursos na conta. Esse acesso é definido na política de permissões baseadas na identidade da função. Para saber como a ação de permitir o acesso entre contas usando as funções difere da ação de permitir o acesso entre contas usando outras políticas baseadas em recursos, consulte Acesso a recursos entre contas no IAM.

Importante

Outros serviços podem afetar a lógica de avaliação da política. Por exemplo, o AWS Organizations oferece suporte a políticas de controle de serviço que podem ser aplicadas a uma ou mais contas dos principais. O AWS Resource Access Manager oferece suporte a fragmentos de política que controlam quais ações os principais têm permissão para executar nos recursos compartilhados com eles.

Determinar se uma solicitação entre contas é permitida

Para solicitações entre contas, o solicitante na AccountA confiável deve ter uma política baseada em identidade. Essa política deve permitir fazer uma solicitação para o recurso na AccountB de confiança. Além disso, a política baseada em recursos na AccountB deve permitir que o solicitante na AccountA acesse o recurso.

Ao fazer uma solicitação entre contas, a AWS executa duas avaliações. A AWS avalia a solicitação na conta de confiança e na conta confiável. Para obter mais informações sobre como uma solicitação é avaliada dentro de uma única conta, consulte Determinar se uma solicitação é permitida ou negada em uma conta. A solicitação é permitida somente se ambas as avaliações retornarem uma decisão de Allow.

Avaliação entre contas
  1. Quando um principal em uma conta fazer uma solicitação para acessar um recurso em outra conta, esta é uma solicitação entre contas.

  2. O principal solicitante existe na conta confiável (AccountA). Quando a AWS avalia essa conta, ela verifica a política baseada em identidade e as políticas que podem limitar uma política baseada em identidade. Para obter mais informações, consulte Avaliação de políticas em uma única conta.

  3. O recurso solicitado existe na conta de confiança (AccountB). Quando a AWS avalia esta conta, ela verifica a política baseada em recursos que está em anexo ao recurso solicitado e todas as políticas que podem limitar uma política baseada em recursos. Para obter mais informações, consulte Avaliação de políticas em uma única conta.

  4. A AWS permite a solicitação somente se ambas avaliações de política de conta permitirem a solicitação.

Exemplo de avaliação de política entre contas

O exemplo a seguir demonstra um cenário no qual um usuário em uma conta recebe permissões por meio de uma política baseada em recursos em uma segunda conta.

Suponha que Carlos seja um desenvolvedor com um usuário do IAM chamadacarlossalazar na conta 111111111111. Ele quer salvar um arquivo no bucket Production-logs do Amazon S3 na conta 222222222222.

Suponha também que a política a seguir esteja anexada ao usuário do IAM carlossalazar.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowS3ListRead", "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Sid": "AllowS3ProductionObjectActions", "Effect": "Allow", "Action": "s3:*Object*", "Resource": "arn:aws:s3:::Production/*" }, { "Sid": "DenyS3Logs", "Effect": "Deny", "Action": "s3:*", "Resource": [ "arn:aws:s3:::*log*", "arn:aws:s3:::*log*/*" ] } ] }

A instrução AllowS3ListRead nesta política permite que o Carlos visualize uma lista de todos os buckets no Amazon S3. A declaração AllowS3ProductionObjectActions permite que Carlos tenha acesso total a objetos no bucket Production. A instrução DenyS3Logs nega a Carlos acesso a qualquer bucket do S3 com log em seu nome. Ela também nega o acesso a todos os objetos nesses buckets.

Além disso, a política baseada em recurso a seguir (chamada de política de bucket) está anexada ao bucket Production na conta 222222222222.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject*", "s3:PutObject*", "s3:ReplicateObject", "s3:RestoreObject" ], "Principal": { "AWS": "arn:aws:iam::111111111111:user/carlossalazar" }, "Resource": "arn:aws:s3:::Production/*" } ] }

Essa política permite que o usuário carlossalazar acesse objetos no bucket de Production. Ele poderá criar e editar, mas não excluir os objetos no bucket. Ele não conseguirá gerir o bucket propriamente dito.

Quando Carlos faz sua solicitação para salvar um arquivo no bucket Production-logs, a AWS determina quais políticas são aplicáveis à solicitação. Nesse caso, a política baseada em identidade anexada ao usuário carlossalazar é a única política aplicável à conta 111111111111. Na conta 222222222222, não há uma política baseada em recursos anexada ao bucket Production-logs. Quando a AWS avalia a conta 111111111111, ela retorna uma decisão de Deny. Isto ocorre porque a declaração DenyS3Logs na política baseada em identidade explicitamente nega o acesso a quaisquer buckets de log. Para obter mais informações sobre como uma solicitação é avaliada dentro de uma única conta, consulte Determinar se uma solicitação é permitida ou negada em uma conta.

Como a solicitação é explicitamente negada dentro de uma das contas, a decisão final é negar a solicitação.

Bucket de logs de solicitação para produção

Suponha que o Carlos perceba o erro e tente salvar o arquivo no bucket Production. A AWS primeiro verifica a conta 111111111111 para determinar se a solicitação é permitida. Somente a política baseada em identidade se aplica e permite a solicitação. A AWS verificará a conta 222222222222. Somente a política baseada em recursos anexada ao bucket Production é aplicável, e permite a solicitação. Como ambas as contas permitem a solicitação, a decisão final é permitir a solicitação.

Bucket de solicitação para produção