Almacenamiento de datos de configuración confidenciales en AWS Secrets Manager - Amazon EMR

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Almacenamiento de datos de configuración confidenciales en AWS Secrets Manager

Las operaciones de la API de descripción y lista de Amazon EMR que emiten datos de configuración personalizados (como DescribeCluster yListInstanceGroups) lo hacen en texto sin formato. Amazon EMR se integra AWS Secrets Manager para que pueda almacenar sus datos en Secrets Manager y utilizar el ARN secreto en sus configuraciones. De esta forma, no pasa datos de configuración confidenciales a Amazon EMR en texto plano y los expone a fuentes externas. APIs Si indica que un par de clave-valor contiene un ARN para un secreto almacenado en Secrets Manager, Amazon EMR recupera este secreto cuando envía los datos de configuración al clúster. Amazon EMR no envía la anotación cuando usa external APIs para mostrar la configuración.

Creación de un secreto

Para crear un secreto, siga los pasos de Creación de un secreto de AWS Secrets Manager en Guía del usuario de AWS Secrets Manager . En el Paso 3, debe elegir el campo Texto no cifrado para ingresar su valor confidencial.

Tenga en cuenta que, si bien Secrets Manager permite que un secreto contenga hasta 65536 bytes, Amazon EMR limita la longitud combinada de la clave de propiedad (excluida la anotación) y el valor secreto recuperado a 1024 caracteres.

Concesión de acceso a Amazon EMR para recuperar el secreto

Amazon EMR utiliza un rol de servicio de IAM para aprovisionar y gestionar los clústeres por usted. La función de servicio de Amazon EMR define las acciones permitidas para Amazon EMR cuando aprovisiona recursos y realiza tareas de nivel de servicio que no se realizan en el contexto de una instancia de Amazon que se ejecuta dentro de un clúster. EC2 Para obtener más información sobre los roles de servicio, consulte Rol de servicio para Amazon EMR (rol de EMR) y Personalización de roles de IAM.

Para permitir que Amazon EMR recupere el valor secreto de Secrets Manager, agregue la siguiente declaración de política a su función de Amazon EMR al lanzar el clúster.

{ "Sid":"AllowSecretsRetrieval", "Effect":"Allow", "Action":"secretsmanager:GetSecretValue", "Resource":[ "arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>" ] }

Si crea el secreto con un servidor gestionado por el cliente AWS KMS key, también debe añadir kms:Decrypt permiso al rol de Amazon EMR para la clave que utilice. Para obtener más información, consulte Autenticación y control de acceso para AWS Secrets Manager en la Guía del usuario de AWS Secrets Manager .

Uso del secreto en una clasificación de configuración

Puede agregar la anotación EMR.secret@ a cualquier propiedad de configuración para indicar que su par de clave-valor contiene un ARN de un secreto almacenado en Secrets Manager.

En el siguiente ejemplo se muestra cómo proporcionar el ARN de un secreto en una clasificación de configuración:

{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"<sensitive-access-key>", "EMR.secret@presto.s3.secret-key":"arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>" } }

Al crear el clúster y enviar la configuración anotada, Amazon EMR valida las propiedades de la configuración. Si su configuración es válida, Amazon EMR elimina la anotación de la configuración y recupera el secreto de Secrets Manager para crear la configuración real antes de aplicarla al clúster:

{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"<sensitive-access-key>", "presto.s3.secret-key":"<my-secret-key-retrieved-from-Secrets-Manager>" } }

Al llamar a una acción como DescribeCluster, Amazon EMR devuelve la configuración de la aplicación actual en el clúster. Si una propiedad de configuración de la aplicación está marcada como que contiene el ARN de un secreto, la configuración de la aplicación devuelta por la llamada a DescribeCluster contiene el ARN y no el valor del secreto. Esto garantiza que el valor del secreto solo esté visible en el clúster:

{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"<sensitive-access-key>", "presto.s3.secret-key":"arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>" } }

Actualización del valor del secreto

Amazon EMR recupera el valor del secreto de una configuración anotada cada vez que el grupo de instancias adjunto se inicia, se reconfigura o cambia de tamaño. Puede usar Secrets Manager para modificar el valor de un secreto utilizado en la configuración de un clúster en ejecución. Cuando lo haga, puede enviar una solicitud de reconfiguración a cada grupo de instancias en el que desee recibir el valor actualizado. Para obtener más información sobre cómo reconfigurar un grupo de instancias y los aspectos que debe tener en cuenta al hacerlo, consulte Reconfiguración de un grupo de instancias en un clúster en ejecución.