¿Por qué los usuarios de IAM pueden usar Athena para acceder a los recursos de mi Catálogo de datos incluso después de haber restringido sus permisos en Lake Formation?

4 minutos de lectura
0

He restringido los permisos de un usuario de AWS Identity and Access Management (IAM) en AWS Lake Formation. Sin embargo, el usuario de IAM puede seguir accediendo a Amazon Athena para consultar una tabla.

Descripción corta

Para restringir el acceso de los usuarios de IAM, actualiza la configuración de seguridad predeterminada de los recursos nuevos y existentes del catálogo de datos para usar el modelo de permisos de Lake Formation.

Para obtener más información sobre los permisos predeterminados de Lake Formation, consulta Upgrading AWS Glue data permissions to the AWS Lake Formation model.

Resolución

Nota: Si se muestran errores al poner en marcha comandos de Interfaz de la línea de comandos de AWS (AWS CLI), consulte Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de AWS CLI.

Actualización de la configuración de seguridad predeterminada de un nuevo recurso de Data Catalog

Para ver un nuevo recurso de Catálogo de datos en tu lago de datos, consulta Changing the default settings for your data lake. Las actualizaciones de la configuración de seguridad predeterminada solo se aplican a los recursos nuevos.

Para actualizar solo la configuración de seguridad de recursos nuevos específicos, crea el recurso. A continuación, actualiza los permisos solo en el recurso. Para obtener más información, consulta Granting permissions on Data Catalog resources.

Actualización de la configuración de seguridad de un recurso de Catálogo de datos existente

Para eliminar los permisos de IAMAllowedPrincipals de una base de datos existente, sigue estos pasos:

  1. Abre la consola de AWS Lake Formation.
  2. En el panel de navegación, en Catálogo de datos, selecciona Bases de datos.
  3. Selecciona el círculo situado junto a la base de datos que quieres actualizar.
  4. Elige Acciones y, a continuación, elige Editar.
  5. En Permisos predeterminados para las tablas de nueva creación, desactiva Usar solo el control de acceso de IAM para las tablas nuevas de esta base de datos.
  6. Selecciona Guardar.
  7. En la página Bases de datos, asegúrate de que la base de datos esté seleccionada. Elige Acciones y, a continuación, elige Revocar.
  8. En el cuadro de diálogo Revocar permisos, ve a la lista de usuarios y roles de IAM y, en Grupo, elige IAMAllowedPrincipals
  9. En Permisos de base de datos, asegúrate de que esté seleccionada la opción Super y, a continuación, elige Revocar.

Para eliminar los permisos de IAMAllowedPrincipals de una tabla existente, sigue estos pasos:

  1. Abre la consola de AWS Lake Formation.
  2. En el panel de navegación, elige Tablas.
  3. En la página Tablas, selecciona el círculo situado junto a la tabla que quieras actualizar.
  4. Elige Acciones y, a continuación, elige Revocar.
  5. En el cuadro de diálogo Revocar permisos, ve a la lista de usuarios y roles de IAM y, en Grupo, elige IAMAllowedPrincipals
  6. En Permisos de tablas, asegúrate de que esté seleccionada la opción Super y, a continuación, elige Revocar

Nota: Asegúrate de que la ruta de Amazon Simple Storage Service (Amazon S3) a la base de datos o la tabla esté registrada en Lake Formation.

Tras cambiar la configuración de seguridad de un recurso existente, usa AWS CLI o la consola de Lake Formation para conceder permisos de tablas al usuario de IAM.

Para realizar operaciones de Lake Formation, los usuarios deben tener permisos de Lake Formation e IAM. Para consultar una tabla de Athena cuando Lake Formation administra los permisos, el usuario debe tener los siguientes permisos de IAM:

{  
    "Version": "2012-10-17",  
    "Statement": [  
        {  
            "Sid": "minimumAWSGlueLakeFormationAthenapermissiontorunselectqueryontable",  
            "Effect": "Allow",  
            "Action": [  
                "lakeformation:GetDataAccess",  
                "glue:SearchTables",  
                "glue:GetTables",  
                "glue:GetPartitions",  
                "glue:GetDatabases",  
                "glue:GetTable",  
                "glue:GetDatabase",  
                "athena:GetNamespace",  
                "athena:ListWorkGroups",  
                "athena:GetCatalogs",  
                "athena:GetNamespaces",  
                "athena:GetExecutionEngine",  
                "athena:GetExecutionEngines",  
                "athena:GetTables",  
                "athena:GetTable"  
            ],  
            "Resource": "*"  
        },  
        {  
            "Sid": "AthenaPermissionToRunQueryInAWorkergroup",  
            "Effect": "Allow",  
            "Action": [  
                "athena:StartQueryExecution",  
                "athena:GetQueryResults",  
                "athena:DeleteNamedQuery",  
                "athena:GetNamedQuery",  
                "athena:ListQueryExecutions",  
                "athena:StopQueryExecution",  
                "athena:GetQueryResultsStream",  
                "athena:ListNamedQueries",  
                "athena:CreateNamedQuery",  
                "athena:GetQueryExecution",  
                "athena:BatchGetNamedQuery",  
                "athena:BatchGetQueryExecution"  
            ],  
            "Resource": [  
                "arn:aws:athena:*:*:workgroup/*"  
            ]  
        },  
        {  
            "Sid": "allowS3PermissionToSaveAthenaQueryResults",  
            "Effect": "Allow",  
            "Action": [  
                "s3:PutObject",  
                "s3:GetObject",  
                "s3:ListBucketMultipartUploads",  
                "s3:AbortMultipartUpload",  
                "s3:CreateBucket",  
                "s3:ListBucket",  
                "s3:GetBucketLocation",  
                "s3:ListMultipartUploadParts"  
            ],  
            "Resource": [  
                "arn:aws:s3:::aws-athena-query-results-*"  
            ]  
        }  
    ]  
}
OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 5 meses