Notas de uso - Amazon Redshift

Notas de uso

Para revocar los privilegios de un objeto, debe cumplir con uno de los siguientes criterios:

  • Ser el propietario del objeto.

  • Ser un superusuario.

  • Tener un privilegio concedido para ese objeto y privilegio.

    Por ejemplo, el siguiente comando permite al usuario HR realizar comandos SELECT en la tabla de empleados y conceder y revocar el mismo privilegio para otros usuarios:

    grant select on table employees to HR with grant option;

    HR no puede revocar privilegios para ninguna operación que no sea SELECT o ninguna tabla que no sea la de empleados.

Los superusuarios pueden obtener acceso a todos los objetos independientemente de los comandos GRANT y REVOKE que establecen privilegios de objeto.

PUBLIC representa un grupo que siempre incluye a todos los usuarios. De manera predeterminada, todos los miembros de PUBLIC, tienen privilegios CREATE y USAGE en el esquema PUBLIC. Para restringir los permisos de los usuarios en el esquema PUBLIC, primero debe revocar todos los permisos de PUBLIC en el esquema PUBLIC y después conceder privilegios a usuarios o grupos específicos. En el siguiente ejemplo, se controlan los privilegios de creación de tablas en el esquema PUBLIC.

revoke create on schema public from public;

Para revocar privilegios de una tabla de Lake Formation, el rol de IAM asociado al esquema externo de la tabla debe tener permiso para revocar privilegios a la tabla externa. El siguiente ejemplo crea un esquema externo con un rol IAM myGrantor asociado. El rol IAM myGrantor tiene el permiso para retirar permisos a otros. El comando REVOKE utiliza los permisos del rol myGrantor IAM que está asociado al esquema externo para retirar permisos al rol IAM myGrantee.

create external schema mySchema from data catalog database 'spectrum_db' iam_role 'arn:aws:iam::123456789012:role/myGrantor' create external database if not exists;
revoke select on external table mySchema.mytable from iam_role 'arn:aws:iam::123456789012:role/myGrantee';
nota

Si el rol de IAM también tiene el permiso ALL en un AWS Glue Data Catalog que está habilitado para Lake Formation, no se revoca el permiso ALL. Solo el permiso SELECT se retira. Puede ver los permisos de Lake Formation en la consola de dicho servicio.

Notas de uso para revocar el permiso ASSUMEROLE

Las siguientes notas de uso se aplican para revocar el privilegio ASSUMEROLE en Amazon Redshift.

Solo un superusuario de base de datos puede revocar el privilegio ASSUMEROLE para usuarios y grupos. Un superusuario siempre conserva el privilegio ASSUMEROLE.

Para habilitar el uso del privilegio ASSUMEROLE para usuarios y grupos, un superusuario ejecuta una vez la siguiente instrucción en el clúster. Antes de conceder el privilegio ASSUMEROLE a usuarios y grupos, un superusuario debe ejecutar una vez la siguiente instrucción en el clúster.

revoke assumerole on all from public for all;

Notas de uso para revocar permisos de machine learning

No puede conceder ni revocar directamente permisos relacionados con una función de ML. Una función de ML pertenece a un modelo de ML y los permisos se controlan mediante el modelo. En su lugar, puede revocar los permisos relacionados con el modelo de ML. En el siguiente ejemplo, se muestra cómo revocar el permiso de ejecución a todos los usuarios asociados al modelo customer_churn.

REVOKE EXECUTE ON MODEL customer_churn FROM PUBLIC;

También puede revocar todos los permisos a un usuario para el modelo de ML customer_churn.

REVOKE ALL on MODEL customer_churn FROM ml_user;

Se producirá un error en la revocación del permiso EXECUTE relacionado con una función de ML si existe una función de ML en el esquema, aunque dicha función de ML ya disponga del permiso EXECUTE mediante GRANT EXECUTE ON MODEL. Recomendamos utilizar un esquema independiente cuando utilice el comando CREATE MODEL para mantener las funciones de ML en un esquema independiente por sí mismas. En el siguiente ejemplo, se muestra cómo hacerlo.

CREATE MODEL ml_schema.customer_churn FROM customer_data TARGET churn FUNCTION ml_schema.customer_churn_prediction IAM_ROLE default SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket' );