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

Data da última atualização: 21/03/2022

Recebi um erro de acesso negado ou não autorizado ao tentar acessar meu serviço da AWS. Como posso solucionar erros de acesso negado na minha conta da AWS?

Breve descrição

É possível receber um erro de acesso negado ou não autorizado porque a sua política do AWS Identity and Access Management (IAM) não atende a requisitos de condições específicos. Primeiro, analise todas as políticas de controle de serviço (SCPs) em sua conta e, em seguida, verifique se não há negações presentes em suas políticas baseadas em recursos. Se isso não resolver o erro, o problema pode estar sendo causado pela presença de um limite de permissões.

Um limite de permissões é um recurso que permite usar uma política gerenciada que define o número máximo de permissões que uma política baseada em identidade pode conceder a uma entidade do IAM (usuário ou função). Quando você define um limite de permissões para uma entidade, essa entidade só pode executar ações aceitas por suas políticas baseadas em identidade e seu limite de permissões.

Observação: o limite de permissões define o número máximo de as permissões para uma entidade, mas não concede as permissões.

Para solucionar erros de autorização, siga estas etapas:

  • Verifique se uma ação é permitida na política do IAM mas não é permitida no limite de permissões
  • Inclua todas as ações necessárias no limite de permissões usando o console do IAM
  • Use a chave de condição “iam:PermissionsBoundary” na política do IAM

Resolução

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

O exemplo a seguir mostra uma ação que é permitida em uma política do IAM, mas não é permitida 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 fornece 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 o número de permissões máximas que o usuário pode executar. Neste exemplo, esse limite de permissão permite acesso total aos serviços do Amazon CloudWatch e do Simple Storage Service (Amazon S3). Mas, como o Amazon S3 é o único serviço permitido na política do IAM e no limite de permissões, o usuário só tem acesso ao S3. Se o usuário tentar acessar o Amazon EC2, ele 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:*”
            ],

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

Siga estas etapas para editar o limite de permissões para incluir todas as ações exigidas por um usuário:

  1. Abra o console do IAM.
  2. No painel de navegação, escolha Roles/Users (Funções/usuários).
  3. Escolha a entidade do IAM que deseja editar.
  4. Na seçãoPermissions boundary (Limite de permissões), verifique as configurações. Se um limite de permissões estiver definido, isso significa que há um limite de permissões em vigor. O nome da política gerenciada usada como limite de permissões na entidade do IAM está listado nesta seção.
  5. Expanda a política JSON e verifique se a ação necessária está incluída na lista de permissões no limite de permissões. Se sua ação não estiver na lista de permissões, edite a política JSON para permitir todas as ações exigidas pela entidade do IAM.

Para obter mais informações sobre a edição de políticas, consulte Editar políticas do IAM.

Use a chave de condição iam:PermissionsBoundary nas políticas do IAM

Adicione a chave de condição iam:PermissionsBoundary às políticas do IAM. Essa chave de condição verifica se uma política específica está anexada como um limite de permissões a 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 tem a responsabilidade de criar usuários. Quando anexamos o exemplo de política a seguir ao administrador, ele só pode criar um usuário do IAM quando ele anexa 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::111222333444:user/test1*",
            "Condition": {
                "StringEquals": {
                    "iam:PermissionsBoundary": "arn:aws:iam::111222333444:policy/RestrictedRegionPermissionsBoundary"
                }
            }

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

  1. Abra o console do IAM.
  2. No painel de navegação, escolha Users (Usuários) e, em seguida, escolha Add Users (Adicionar usuários).
  3. Insira o nome de usuário que deseja editar, escolha o AWS access type (tipo de acesso da AWS) e, em seguida, escolha next (próximo).
  4. Expanda a seção Set permissions boundary (Definir limite de permissões) e escolha Use a permissions boundary to control the maximum role permissions (Usar um limite de permissões para controlar o número máximo de permissões de função).
  5. No campo de pesquisa, insira RestrictedRegionPermissionsBoundary e escolha o botão de opção para a política.
  6. Escolha Next:Tags (Próximo: etiquetas).
  7. Revise as configurações e crie o usuário.

Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?