Error: "AccessDeniedException" - AWS Resource Access Manager

Error: "AccessDeniedException"

Escenario

Obtiene una excepción de acceso denegado al intentar compartir un recurso o ver un recurso compartido.

Causa

Puede obtener este error si intenta crear un recurso compartido cuando sin disponer de los permisos necesarios. Esto puede deberse a que no se otorgan permisos suficientes en las políticas adjuntadas a su entidad principal de AWS Identity and Access Management (IAM). También puede deberse a las restricciones impuestas por una política de control de servicio (SCP) de AWS Organizations que afecte a su Cuenta de AWS.

Solución

Para proporcionar acceso, añada permisos a sus usuarios, grupos o roles:

Para resolver el error, debe asegurarse de que los permisos se concedan mediante instrucciones Allow en la política de permisos utilizada por la entidad principal que realiza la solicitud. Además, las SCP de su organización no deben bloquear los permisos.

Para crear un recurso compartido, necesita los dos permisos siguientes:

  • ram:CreateResourceShare

  • ram:AssociateResourceShare

Para ver un recurso compartido, necesita el siguiente permiso:

  • ram:GetResourceShares

Para adjuntar permisos a un recurso compartido, necesita el siguiente permiso:

  • resourceOwningService:PutPolicyAction

    Esto es un marcador de posición. Debe reemplazarlo por el permiso "PutPolicy" (o equivalente) para el servicio propietario del recurso que desea compartir. Por ejemplo, si desea compartir una regla de solucionador de Route 53, el permiso necesario sería: route53resolver:PutResolverRulePolicy. Si desea permitir la creación de un recurso compartido que contenga varios tipos de recursos, debe incluir el permiso correspondiente para cada tipo de recurso que desea permitir.

En el siguiente ejemplo se muestra el aspecto que tendría una política de permisos de IAM de este tipo.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ram:CreateResourceShare", "ram:AssociateResourceShare", "ram:GetResourceShares", "resourceOwningService:PutPolicyAction" ], "Resource": "*" } ] }