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}"
}
]
}