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 API operaciones de EMR descripción y lista de Amazon que emiten datos de configuración personalizados (como DescribeCluster yListInstanceGroups) lo hacen en texto plano. Amazon EMR se integra AWS Secrets Manager para que puedas almacenar tus datos en Secrets Manager y usar el secreto ARN en tus configuraciones. De esta forma, no pasas datos de configuración confidenciales a Amazon EMR en texto plano y los expones a fuentes externasAPIs. Si indica que un par clave-valor contiene un secreto 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.

Concede EMR acceso a Amazon para recuperar el secreto

Amazon EMR utiliza un rol IAM de servicio para aprovisionar y gestionar los clústeres por ti. El rol 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 EC2 instancia de Amazon que se ejecuta dentro de un clúster. Para obtener más información sobre las funciones de servicio, consulte Función de servicio para Amazon EMR (EMRfunción) y Personalizar IAM funciones.

Para permitir que Amazon EMR recupere el valor secreto de Secrets Manager, añade la siguiente declaración de política a tu EMR rol de Amazon cuando lances tu clúster.

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

Si creas el secreto con un servicio gestionado por el cliente AWS KMS key, también debes añadir kms:Decrypt permiso al EMR rol de Amazon para la clave que utilices. 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 añadir la EMR.secret@ anotación a cualquier propiedad de configuración para indicar que su par clave-valor contiene un secreto ARN para un secreto almacenado en Secrets Manager.

El siguiente ejemplo muestra cómo proporcionar un secreto ARN 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 tu 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>" } }

Cuando llamas a una acción comoDescribeCluster, 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 un secretoARN, la configuración de la aplicación devuelta por la DescribeCluster llamada contiene el valor secreto ARN y no el valor 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 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.