Erro: "AccessDeniedException"
Cenário
Você recebe uma exceção de Acesso Negado ao tentar compartilhar um recurso ou visualizar um compartilhamento de recursos.
Causa
Você pode receber esse erro se tentar criar um compartilhamento de recursos sem ter as permissões necessárias. Isso pode ser causado por permissões insuficientes nas políticas anexadas à sua entidade principal do AWS Identity and Access Management (IAM). Isso também pode acontecer devido às restrições impostas por uma política de controle de serviços (SCP) do AWS Organizations que afeta sua Conta da AWS.
Solução
Para conceder acesso, adicione as permissões aos seus usuários, grupos ou perfis:
-
Usuários e grupos no AWS IAM Identity Center:
Crie um conjunto de permissões. Siga as instruções em Criação de um conjunto de permissões no Guia do usuário do AWS IAM Identity Center.
-
Usuários gerenciados no IAM com provedor de identidades:
Crie um perfil para a federação de identidades. Siga as instruções em Criando um perfil para um provedor de identidades de terceiros (federação) no Guia do Usuário do IAM.
-
Usuários do IAM:
-
Crie um perfil que seu usuário possa assumir. Siga as instruções em Criação de um perfil para um usuário do IAM no Guia do usuário do IAM.
-
(Não recomendado) Vincule uma política diretamente a um usuário ou adicione um usuário a um grupo de usuários. Siga as instruções em Adição de permissões a um usuário (console) no Guia do usuário do IAM.
-
Para resolver o erro, você precisa garantir que as permissões sejam concedidas por declarações Allow na política de permissão usada pela entidade principal que faz a solicitação. Além disso, as permissões não devem ser bloqueadas pelos SCPs da sua organização.
Para criar um compartilhamento de recursos, você precisa das duas permissões a seguir:
-
ram:CreateResourceShare
-
ram:AssociateResourceShare
Para visualizar um compartilhamento de recursos, você precisa das permissões a seguir:
-
ram:GetResourceShares
Para anexar permissões a um compartilhamento de recursos, você precisa das permissões a seguir:
-
resourceOwningService:PutPolicyActionIsso é um espaço reservado. Você deve substituí-la pela permissão “PutPolicy” (ou equivalente) para o serviço que possui o recurso que você deseja compartilhar. Por exemplo, se você estiver compartilhando uma regra de resolução do Route 53, então a permissão necessária seria:
route53resolver:PutResolverRulePolicy. Se você quiser permitir a criação de um compartilhamento de recursos que contenha vários tipos de recursos, deverá incluir a permissão relevante para cada tipo de recurso que você deseja permitir.
O exemplo a seguir mostra a possível aparência dessa política de permissão do IAM.