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:
- Abra o console do IAM.
- No painel de navegação, selecione Perfis/usuários.
- Escolha a entidade do IAM que você deseja editar.
- 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.
- 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:
- Abra o console do IAM.
- No painel de navegação, escolha Usuários e, em seguida, Adicionar usuário.
- Insira o nome de usuário que você deseja editar, escolha o tipo de acesso da AWS e, em seguida, Avançar.
- 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.
- No campo de pesquisa, digite RestrictedRegionPermissionsBoundary e escolha o botão de rádio para sua política.
- Escolha Next:Tags.
- Consulte suas configurações e crie um usuário.
Informações relacionadas
Avaliação de permissões efetivas com limites
AWSSupport-TroubleshootIAMAccessDeniedEvents