¿Cómo puedo usar mis credenciales del rol de IAM o cambiar a otro rol de IAM para conectarme a Athena mediante el controlador JDBC?

4 minutos de lectura
0

Quiero usar un rol de AWS Identity and Access Management (IAM) para conectarme a Amazon Athena a través del controlador JDBC. -O bien, quiero cambiar a otro rol de IAM, ya sea en mi cuenta de AWS o en una cuenta diferente, antes de conectarme a Athena a través del controlador JDBC.

Resolución

Utilización de las credenciales del rol de IAM para la conexión con el controlador JDBC de Athena

Recupere las credenciales temporales del rol. El proceso de recuperación de las credenciales temporales depende de cómo asuma el rol.

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), asegúrese de utilizar la versión más reciente de AWS CLI.

Para obtener más información, consulte Uso de roles de IAM y eche un vistazo a la tabla Comparación de métodos para el uso de roles.

Las credenciales temporales contienen el token de sesión, el ID de la clave de acceso y la clave de acceso secreta. Estas tres credenciales son necesarias para autenticar la conexión de JDBC a Athena. Tenga en cuenta que las credenciales temporales tienen validez máxima de 12 horas.

1.En la máquina donde se ha instalado el controlador JDBC de Athena, guarde las credenciales temporales en el archivo de las credenciales de AWS ( ~/.aws/credentials) como perfil con nombre. Para obtener más información, consulte Opciones de los archivos de configuración y credenciales.

He aquí un ejemplo de credenciales temporales almacenadas en un perfil de AWS CLI denominado testprofile:

[testprofile]
aws_access_key_id=ASIAXXXXXXXXX
aws_secret_access_key=XXXXXXXX
aws_session_token=XXXXXXXXXXXXXXXXXX

2.    Para conectarse a Athena con el controlador JDBC, especifique el nombre del perfil en la cadena de conexión de JDBC (por ejemplo: jdbc:awsathena://AwsRegion=us-west-2;Profile=testprofile;). Como alternativa, defina el nombre del perfil en la propiedad de configuración de JDBC Perfil.

Nota: La propiedad de configuración de JDBC Perfil está disponible en la versión 2.0.6 del controlador JDBC de Athena y en versiones posteriores. Para obtener el controlador JDBC más reciente, consulte Enlaces para descargar el controlador JDBC.

Cambio a otro rol de IAM distinto y posterior conexión al controlador JDBC de Athena

Para cambiar de rol antes de conectarse al controlador JDBC de Athena, utilice la opción source_profile en el perfil con nombre:

1.En la máquina donde está instalado el controlador JDBC de Athena, añada un perfil con nombre al archivo de credenciales de AWS CLI (~/.aws/credentials). Para obtener más información sobre la creación de perfiles con nombre, consulte Perfiles con nombre. El perfil debe incluir las siguientes propiedades:

role_arn: el nombre de recurso de Amazon (ARN) del rol que desea asumir
source_profile: un perfil que contenga las credenciales de un usuario o un rol de IAM con permisos para asumir el rol

Por ejemplo, para asumir un rol denominado testrole con el ARN arn:aws:iam::123456789012:role/testrole, cree un perfil con nombre como a continuación:

[switchroletest]
role_arn=arn:aws:iam::123456789012:role/testrole
source_profile=default

En este ejemplo, el perfil predeterminado contiene las credenciales de un usuario o un rol de IAM con permisos para asumir el rol testrole:

[default]
aws_access_key_id=ASIAXXXXXXXXX
aws_secret_access_key=XXXXXXXX
aws_session_token=XXXXXXXXXXXXXXXXXX

Nota: AWS CLI permite especificar source_profile en el archivo de configuración de AWS CLI (/.aws/config) y las credenciales de usuario en un archivo de credenciales de AWS CLI independiente (/.aws/credentials). Sin embargo, el controlador JDBC de Athena solo admite la lectura de credenciales del archivo de credenciales de AWS CLI. Debido a esta limitación, los perfiles de los ejemplos anteriores deben colocarse en el mismo archivo de credenciales de AWS CLI (~/.aws/credentials) y no deben llevar el prefijo profile. El controlador JDBC de Athena no admite el uso de credential_source = Ec2InstanceMetadata en perfiles con nombre.

2.Para conectarse a Athena con el controlador JDBC, especifique el nombre del perfil en la cadena de conexión de JDBC (por ejemplo: jdbc:awsathena://AwsRegion=us-west-2;Profile=switchroletest;). Como alternativa, defina el nombre del perfil en la propiedad de configuración de JDBC Perfil.


Información relacionada

Solicitud de credenciales de seguridad temporales

Guía de instalación y configuración del controlador JDBC de Simba de Athena con conector SQL (versión 2.0.9)

Cambio a un rol de IAM (AWS CLI)

Uso de un rol de IAM de la AWS CLI

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años