Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la publicación del blog
Configuración de permisos de IAM
Amazon Redshift proporciona la política administrada AmazonRedshiftDataFullAccess. Esta política proporciona acceso pleno a las operaciones de la API de datos de Amazon Redshift. Esta política también permite el acceso limitado a operaciones específicas de la API de Amazon Redshift, AWS Secrets Manager e IAM que se necesitan para autenticar y obtener acceso a un clúster de Amazon Redshift o a un grupo de trabajo de Redshift sin servidor.
También puede crear una política de IAM propia que permita obtener acceso a recursos específicos. Para crear su política, utilice la política AmazonRedshiftDataFullAccess como la plantilla de partida. Una vez creada la política, agréguela a todos los usuarios que deban acceder a la API de datos.
Tenga en cuenta los siguientes requisitos de la política de IAM asociada al usuario:
-
Si se utiliza AWS Secrets Manager para la autenticación, confirmar la política permite que se use la acción
secretsmanager:GetSecretValuepara recuperar el secreto etiquetado con la claveRedshiftDataFullAccess. -
Si se utilizan credenciales temporales para autenticar un clúster, confirmar la política permite el uso de la acción
redshift:GetClusterCredentialsen el nombre de usuario de base de datosredshift_data_api_usercorrespondiente a cualquiera de las bases de datos del clúster. Es necesario que este nombre de usuario ya se haya creado en su base de datos. -
Si utiliza credenciales temporales para autenticarse en un grupo de trabajo sin servidor, confirme que la política permite el uso de la acción
redshift-serverless:GetCredentialspara recuperar el grupo de trabajo etiquetado con la claveRedshiftDataFullAccess. El usuario de la base de datos se asigna 1:1 a la identidad de AWS Identity and Access Management (IAM) de origen. Por ejemplo, el usuario sample_user se asigna al usuarioIAM:sample_userde la base de datos y el rol de IAM sample_role se asigna aIAMR:sample_role. Para obtener más información acerca de las identidades de IAM, consulte Identidades (usuarios, grupos de usuarios y roles) en la Guía del usuario de IAM. -
La acción de IAM
redshift-data:GetStatementResultpermite el acceso a las operacionesGetStatementResultyGetStatementResultV2de la API.
En los siguientes enlaces, encontrará más información sobre AWS Identity and Access Management en la Guía del usuario de IAM.
-
Para obtener más información sobre cómo crear roles de IAM, consulte Creación de roles de IAM.
-
Para obtener más información sobre cómo crear una política de IAM, consulte Creación de políticas de IAM.
-
Para obtener información sobre cómo agregar una política de IAM a un usuario, consulte Adición y eliminación de permisos de identidad de IAM.
Ejecución de una consulta en un clúster que es propiedad de otra cuenta
Para ejecutar una consulta en un clúster que es propiedad de otra cuenta, la cuenta propietaria debe proporcionar un rol de IAM que la API de datos pueda asumir en la cuenta que llama. Por ejemplo, supongamos que la cuenta B posee un clúster al que la cuenta A necesita acceder. La cuenta B puede asociar la política administrada de AWS AmazonRedshiftDataFullAccess al rol de IAM de la cuenta B. A continuación, la cuenta B se fía de la cuenta A gracias a una política de confianza como la siguiente:
Por último, el rol de IAM de la cuenta A debe ser capaz de asumir el rol de IAM de la cuenta B.
Especificación de un rol de IAM que restrinja los recursos a los grupos de trabajo de Redshift sin servidor y a los clústeres de Amazon Redshift en una Cuenta de AWS
Puede especificar los ARN de recursos en la política basada en identidad para controlar el acceso a los grupos de trabajo de Redshift sin servidor y a los clústeres de Amazon Redshift en una Cuenta de AWS. En este ejemplo se muestra cómo podría crear una política que permita el acceso a la API de datos solo para el grupo de trabajo y los clústeres en la Cuenta de AWS especificada.
Configuración de una política de IAM que restrinja el acceso a la información de la instrucción SQL solo al propietario de la instrucción
De forma predeterminada, la API de datos de Amazon Redshift trata el rol de IAM utilizado al llamar a ExecuteStatement y BatchExecuteStatement como el propietario de la instrucción SQL. Cualquier persona a la que se le permita asumir el rol puede acceder a la información sobre la instrucción SQL, incluidos los resultados. Para restringir el acceso a la información de una instrucción SQL a una sesión de rol de IAM con un propietario concreto, agregue una condición redshift-data:statement-owner-iam-userid:
"${aws:userid}". La siguiente política de IAM restringe el acceso.
Puede utilizar la condición statement-owner-iam-userid con CancelStatement, DescribeStatement, GetStatementResult y ListStatements. Para obtener más información, consulte Acciones definidas por la API de datos de Amazon Redshift.
Configuración de una política de IAM que restrinja el acceso a los resultados de SQL solo al propietario de la sesión
De forma predeterminada, la API de datos de Amazon Redshift trata el rol de IAM utilizado al llamar a ExecuteStatement y BatchExecuteStatement como el propietario de la sesión de base de datos que ejecuta la instrucción SQL. Cualquier usuario al que se le permita asumir el rol puede enviar consultas a la sesión de base de datos. Para restringir el acceso de sesión a una sesión de rol de IAM con un propietario concreto, agregue una condición redshift-data:session-owner-iam-userid: "${aws:userid}". La siguiente política de IAM restringe el acceso.
La siguiente política de IAM permite que solo el propietario de la sesión obtenga los resultados de las instrucciones. La condición session-owner-iam-userid se usa para limitar el acceso a los recursos al userid especificado.
Puede utilizar la condición session-owner-iam-userid con ExecuteStatement y BatchExecuteStatement. Para obtener más información, consulte Acciones definidas por la API de datos de Amazon Redshift.