Ir para o conteúdo

Como posso resolver problemas de acesso negado causados por limites de permissões?

5 minuto de leitura
0

Quero solucionar erros de acesso negado ou não autorizado ao acessar meu serviço da AWS.

Breve descrição

O AWS Identity and Access Management (AWS IAM) retorna erros de acesso negado ou não autorizado quando sua política não atende aos requisitos de condições específicas.

Para resolver o problema, identifique o usuário ou o perfil específico do IAM que causa o problema. Consulte o limite de permissões anexado a essa entidade. Um limite de permissões permite que você use uma política gerenciada para definir o máximo de permissões para uma entidade do IAM. Esse atributo controla o máximo de permissões que uma política baseada em identidade pode conceder a um usuário ou perfil do IAM. Quando você define um limite de permissões para uma entidade, esta só pode realizar ações permitidas por ambas as políticas.

Observação: uma entidade só pode realizar ações permitidas pela política baseada em identidade e pelo limite de permissões.

Resolução

Se os limites de permissões não resolverem o erro, consulte as políticas de controle de serviços (SCPs) em sua conta da AWS. Em seguida, verifique se alguma política baseada em recursos contém negações para a entidade do IAM.

Verificar se uma ação é permitida em sua política do IAM, mas não no limite de permissões

O exemplo a seguir mostra uma ação que é permitida em uma política do IAM, mas não no limite de permissões. Neste exemplo, um usuário do IAM tem a política USER\ _IAM\ _POLICY anexada a ele:

IAM policy:(USER_IAM_POLICY)
 “Effect”: “Allow”,
            “Action”: [
                “ec2:*”,
                “s3:*”
            ],

Essa política dá ao usuário acesso total aos serviços do Amazon Elastic Compute Cloud (Amazon EC2) e do Amazon Simple Storage Service (Amazon S3). O usuário também tem um limite de permissões chamado USER\ _PB\ _POLICY definido.

Permissions Boundary:(USER_PB_POLICY)
 “Effect”: “Allow”,
            “Action”: [
                “cloudwatch:*”,
                “s3:*”
            ],

O limite de permissões define as permissões máximas que o usuário pode executar. Nesse exemplo, esse limite de permissão permite acesso total aos serviços do Amazon CloudWatch e do Amazon S3. Mas, como o Amazon S3 é o único serviço permitido tanto na política do IAM quanto no limite de permissões, o usuário só tem acesso ao S3. Se o usuário tentar acessar o Amazon EC2, receberá um erro de acesso negado.

Para resolver esse erro, edite o limite de permissões e permita o acesso ao Amazon EC2:

“Effect”: “Allow”,
            “Action”: [
                “cloudwatch:*”,
                “s3:*”,
                “ec2:*”
            ],

Incluir todas as ações necessárias no limite de permissões usando o console do IAM

Para editar o limite de permissões para incluir todas as ações que um usuário exige, conclua as seguintes etapas:

  1. Abra o console do IAM.
  2. No painel de navegação, selecione Perfis/usuários.
  3. Escolha a entidade do IAM que você deseja editar.
  4. Na seção Limite de permissões, verifique suas configurações. Se um limite de permissões for definido, isso significa que há um limite de permissões em vigor. O nome da política gerenciada que serve como limite de permissões em sua entidade do IAM está listado nesta seção.
  5. Expanda a política JSON e verifique se a ação que você precisa está autorizada no limite de permissões. Se o limite de permissões não permitir sua ação, edite a política JSON para permitir todas as ações que sua entidade do IAM exige.

Para mais informações sobre como modificar políticas, consulte Editar políticas do IAM.

Usar a chave de condição iam:PermissionsBoundary em suas políticas do IAM

Adicione a chave de condição iam:PermissionsBoundary às suas políticas do IAM. Essa chave de condição verifica se uma política específica está anexada como limite de permissões em uma entidade do IAM.

O exemplo a seguir mostra uma política do IAM chamada RestrictedRegionpermissionsBoundary:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "EC2RestrictRegion",
            "Effect": “Allow”,
            "Action": "ec2:*”
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestedRegion": [
                        "us-east-1"
                   ]
                }
            }
        }

Crie uma política e anexe-a a um administrador delegado que tenha a responsabilidade de criar usuários. Quando você anexa o exemplo de política a seguir ao administrador, ele só pode criar um usuário do IAM ao anexar a política RestrictedRegionPermissionsBoundary a esse usuário. Se o administrador tentar criar um usuário do IAM sem anexar a política, ele receberá um erro de acesso negado.

{
            "Sid": "CreateUser",
            "Effect": "Allow",
            "Action": [
                "iam:CreateUser"
            ],
            "Resource": "arn:aws:iam::444455556666:user/test1*",
            "Condition": {
                "StringEquals": {
                    "iam:PermissionsBoundary": "arn:aws:iam::444455556666:policy/RestrictedRegionPermissionsBoundary"
                }
            }

Para definir a política do IAM RestrictedRegionPermissionsBoundary como um limite de permissões ao criar um novo usuário, conclua as seguintes etapas:

  1. Abra o console do IAM.
  2. No painel de navegação, escolha Usuários e, em seguida, Adicionar usuário.
  3. Insira o nome de usuário que você deseja editar, escolha o tipo de acesso da AWS e, em seguida, Avançar.
  4. Expanda a seção Definir limite de permissões e escolha Usar um limite de permissões para controlar o máximo de permissões de perfis.
  5. No campo de pesquisa, digite RestrictedRegionPermissionsBoundary e escolha o botão de rádio para sua política.
  6. Escolha Next:Tags.
  7. Consulte suas configurações e crie um usuário.

Informações relacionadas

Avaliação de permissões efetivas com limites

AWSSupport-TroubleshootIAMAccessDeniedEvents