Puede conectarse a Amazon Redshift con un perfil de autenticación. - Amazon Redshift

Puede conectarse a Amazon Redshift con un perfil de autenticación.

Si tiene muchas conexiones a Amazon Redshift, puede ser difícil administrar la configuración de todas ellas. A menudo, cada conexión JDBC u ODBC utiliza opciones de configuración específicas. Mediante un perfil de autenticación, puede almacenar las opciones de conexión juntas. De esta forma, los usuarios pueden elegir un perfil con el que se conectarán y evitar administrar la configuración de opciones individuales. Los perfiles se pueden aplicar a varios escenarios y tipos de usuario.

Después de crear un perfil de autenticación, los usuarios pueden agregar el perfil listo para usar a una cadena de conexión. De este modo, pueden conectarse a Amazon Redshift con la configuración correcta para cada rol y caso de uso.

Para obtener información de la API de Amazon Redshift, consulte CreateAuthenticationProfile.

Creación de un perfil de autenticación

Con el uso de la AWS CLI, crea un perfil de autenticación con el comando create-authentication-profile. De este modo, se presupone que dispone de un clúster de Amazon Redshift y una base de datos existentes. Sus credenciales deben tener permiso para conectarse a la base de datos de Amazon Redshift y derechos para obtener el perfil de autenticación. Proporciona las opciones de configuración como cadena JSON o hace referencia a un archivo que contiene la cadena JSON.

create-authentication-profile --authentication-profile-name<value: String> --authentication-profile-content<value: String>

En el siguiente ejemplo, se crea un perfil denominado ExampleProfileName. Aquí, puede agregar claves y valores que definan el nombre de su clúster y otras configuraciones de opciones, como una cadena JSON.

create-authentication-profile --authentication-profile-name "ExampleProfileName" --authentication-profile-content "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" }

Este comando crea el perfil con la configuración JSON especificada. Se devuelve lo siguiente, lo que indica que se ha creado el perfil.

{"AuthenticationProfileName": "ExampleProfileName", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" }

Limitaciones y cuotas para crear un perfil de autenticación

Cada cliente tiene una cuota de diez (10) perfiles de autenticación.

Pueden producirse ciertos errores con los perfiles de autenticación. Algunos ejemplos son si crea un nuevo perfil con un nombre existente o si supera su cuota de perfil. Para obtener más información, consulte CreateAuthenticationProfile.

No se pueden almacenar ciertos valores y claves de opción para cadenas de conexión JDBC, ODBC y Python en el almacén de perfiles de autenticación:

  • AccessKeyID

  • access_key_id

  • SecretAccessKey

  • secret_access_key_id

  • PWD

  • Password

  • password

No puede almacenar la clave o el valor AuthProfile en el almacén de perfiles, para cadenas de conexión JDBC u ODBC. Para las conexiones de Python, no puede almacenar auth_profile.

Los perfiles de autenticación se almacenan en Amazon DynamoDB y se administran mediante AWS.

Trabajo con perfiles de autenticación

Después de crear un perfil de autenticación, puede incluir el nombre del perfil como opción de conexión para la versión 2.0 de JDBC AuthProfile. Con esta opción de conexión se recuperan las configuraciones almacenadas.

jdbc:redshift:iam://endpoint:port/database?AuthProfile=<Profile-Name>&AccessKeyID=<Caller-Access-Key>&SecretAccessKey=<Caller-Secret-Key>

A continuación, se muestra un ejemplo de la cadena URL de un JDBC.

jdbc:redshift:iam://examplecluster:us-west-2/dev?AuthProfile="ExampleProfile"&AccessKeyID="AKIAIOSFODNN7EXAMPLE"&SecretAccessKey="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"

Especifique tanto AccessKeyID como SecretAccessKey en la URL de JDBC, junto con el nombre del perfil de autenticación.

También puede separar las opciones de configuración con delimitadores de punto y coma, como en el siguiente ejemplo, que incluye opciones para registrar.

jdbc:redshift:iam://my_redshift_end_point:5439/dev?LogLevel=6;LogPath=/tmp;AuthProfile=my_profile;AccessKeyID="AKIAIOSFODNN7EXAMPLE";SecretAccessKey="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
nota

No agregue información confidencial al perfil de autenticación. Por ejemplo, no almacene un valor AccessKeyID o SecretAccessKey en un perfil de autenticación. El almacén de perfiles de autenticación tiene reglas para prohibir el almacenamiento de claves secretas. Se produce un error si intenta almacenar una clave y un valor asociados a información confidencial.

Obtención de perfiles de autenticación

Para enumerar los perfiles de autenticación existentes, llame al siguiente comando.

describe-authentication-profiles --authentication-profile-name <value: String>

En el siguiente ejemplo, se muestran dos perfiles recuperados. Se devuelven todos los perfiles si no especifica un nombre de perfil.

{ "AuthenticationProfiles": [ { "AuthenticationProfileName": "testProfile1", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" }, { "AuthenticationProfileName": "testProfile2", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" } ] }