View a markdown version of this page

Cree una configuración de seguridad con la consola Amazon EMR o con AWS CLI - 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.

Cree una configuración de seguridad con la consola Amazon EMR o con AWS CLI

En este tema se describen los procedimientos generales para crear una configuración de seguridad con la consola de Amazon EMR y la AWS CLI, seguido de una referencia sobre los parámetros que comprenden las funciones de cifrado, autenticación e IAM para EMRFS. Para obtener más información sobre estas características, consulte los siguientes temas:

Creación de una configuración de seguridad utilizando la consola
  1. Abra la consola de Amazon EMR en https://console.aws.amazon.com/emr.

  2. En el panel de navegación, elija Security Configurations (Configuraciones de seguridad), Create security configuration (Crear configuración de seguridad).

  3. Escriba un nombre para la configuración de seguridad en el campo Name (Nombre).

  4. Elija opciones de Cifrado y Autenticación, tal y como se describe en las secciones siguientes y, a continuación, elija Crear.

Para crear una configuración de seguridad mediante el AWS CLI
  • Utilice el comando create-security-configuration, tal y como se muestra en el ejemplo siguiente.

    • ParaSecConfigName, especifique el nombre de la configuración de seguridad. Este es el nombre que especifica cuando crea un clúster que usa esta configuración de seguridad.

    • En SecConfigDef, especifique una estructura JSON en línea o la ruta a un archivo JSON local, como por ejemplo, file://MySecConfig.json. Los parámetros de JSON definen opciones de Cifrado, Roles de IAM para el acceso de EMRFS a Amazon S3 y Autenticación, tal como se describe en las secciones siguientes.

    aws emr create-security-configuration --name "SecConfigName" --security-configuration SecConfigDef

Configuración del cifrado de datos

Antes de configurar el cifrado en una configuración de seguridad, cree las claves y los certificados que se utilizan para el cifrado. Para obtener más información, consulte Proporcionar claves para cifrado de datos en reposo y Proporcionar certificados para el cifrado de datos en tránsito con el cifrado de Amazon EMR.

Al crear una configuración de seguridad, debe especificar dos conjuntos de opciones de cifrado: cifrado de datos en reposo y cifrado de datos en tránsito. Las opciones para el cifrado de datos en reposo incluyen Amazon S3 con EMRFS y el cifrado de disco local. In-transitlas opciones de cifrado habilitan las funciones de cifrado de código abierto para determinadas aplicaciones compatibles con Transport Layer Security (TLS). At-rest las opciones y las opciones en tránsito se pueden habilitar juntas o por separado. Para obtener más información, consulte Cifrar datos en reposo y en tránsito con Amazon EMR.

nota

Al utilizarlas AWS KMS, se cobran cargos por el almacenamiento y el uso de las claves de cifrado. Para obtener más información, consulte AWS KMS Precios.

Especificación de las opciones de cifrado con la consola

Elija opciones en Encryption (Cifrado) de acuerdo con las siguientes directrices.

  • Elija las opciones en At rest encryption (Cifrado en reposo) para cifrar los datos almacenados en el sistema de archivos.

    Puede elegir cifrar datos en Amazon S3, discos locales o ambas opciones.

  • En Cifrado de datos de S3, para Modo de cifrado, seleccione un valor para determinar cómo Amazon EMR cifra los datos de Amazon S3 con EMRFS.

    Lo que haga a continuación depende del modo de cifrado que haya elegido:

  • En Local disk encryption (Cifrado de disco local), seleccione un valor para Key provider type (Tipo de proveedor de clave).

    • AWS KMS key

      Seleccione esta opción para especificar una AWS KMS key. En AWS KMS key, seleccione una clave. La clave debe existir en la misma región que su clúster de EMR. Para obtener más información sobre los requisitos de claves, consulte Utilización AWS KMS keys para el cifrado.

      Cifrado de EBS

      Si lo especifica AWS KMS como proveedor de claves, puede habilitar el cifrado de EBS para cifrar los volúmenes de almacenamiento y los dispositivos raíz de EBS. Para habilitar esta opción, debe conceder el rol de servicio de Amazon EMR EMR_DefaultRole con permisos para utilizar la AWS KMS key que especifique. Para obtener más información sobre los requisitos de claves, consulte Habilitación del cifrado de EBS proporcionando permisos adicionales para las claves de KMS.

    • Personalizada

      Seleccione esta opción para especificar un proveedor de claves personalizadas. En Objeto de S3, especifique la ubicación en Amazon S3 o el ARN de Amazon S3 del archivo JAR del proveedor de claves personalizadas. En Clase de proveedor de claves, introduzca el nombre completo de la clase declarada en la aplicación que implementa la interfaz. EncryptionMaterialsProvider El nombre de clase que proporcione aquí debe ser diferente del nombre de clase indicado CSE-Custom.

  • Elija el In-transit cifrado para habilitar las funciones de cifrado TLS de código abierto para los datos en tránsito. Elija un Certificate provider type (Tipo de proveedor de certificados) de acuerdo con las directrices siguientes:

    • EMR-managed

      Seleccione esta opción para que Amazon EMR cree y almacene certificados privados por usted. Al seleccionar esta opción, Amazon EMR cargará el PEM-encoded certificado de la autoridad de certificación creada AWS Secrets Manager en tu cuenta para que lo utilices en tus almacenes de confianza. Si lo desea, puede configurar la clave y las etiquetas de KMS utilizadas para este secreto. Si lo desea, también puede especificar una duración de validez personalizada para los certificados creados y un sufijo comodín personalizado para la SAN del certificado, además del comodín DNS privado predeterminado (*.ec2.internal en us-east-1 y *). region.compute.internal en todas las demás regiones).

    • PEM

      Seleccione esta opción para utilizar los archivos PEM que proporcione dentro de un archivo zip. Se requieren dos artefactos en el archivo zip: privado y certificado. Key.pem Chain.pem Un tercer archivo, de confianzaCertificates.pem, es opcional. Para obtener más información, consulte Proporcionar certificados para el cifrado de datos en tránsito con el cifrado de Amazon EMR. En Objeto de S3, especifique la ubicación en Amazon S3 o el ARN de Amazon S3 del campo del archivo ZIP.

    • Personalizada

      Seleccione esta opción para especificar un proveedor de certificados personalizado y, a continuación, en Objeto de S3, especifique la ubicación en Amazon S3 o el ARN de Amazon S3 del archivo JAR del proveedor de certificados personalizado. En Clase de proveedor de claves, introduzca el nombre completo de la clase declarada en la aplicación que implementa la TLSArtifactsProvider interfaz.

Para especificar las opciones de cifrado mediante el AWS CLI

Las secciones que aparecen a continuación utilizan escenarios de ejemplo para ilustrar una estructura JSON --security-configuration con el formato correcto para diferentes configuraciones y proveedores de claves, así como una referencia para los parámetros JSON y sus valores adecuados.

Opciones de cifrado de datos en tránsito de ejemplo

El ejemplo siguiente ilustra el supuesto siguiente:

  • In-transit el cifrado de datos está activado y el cifrado de datos en reposo está desactivado.

  • Amazon EMR creará y gestionará los certificados privados por usted, con un comodín que se basará en el sufijo de DNS privado de EC2 de la región. El ARN del secreto creado se agrega al CACertificateSecretARN campo visible en la respuesta de la API describe-security-configuration.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": false, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "EMR" } } } }'

El ejemplo siguiente ilustra el supuesto siguiente:

  • In-transit el cifrado de datos se habilita con EMR-managed los certificados de Amazon, especificando una clave KMS y etiquetas del cliente para la creación de secretos y añadiendo el sufijo DNS público de EC2 para la región a la lista SAN de los certificados creados. El certificado de CA generado caducará en 30 días, momento en el que será necesario eliminar la configuración de seguridad y volver a crearla para poder seguir utilizándola.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": false, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "EMR", "AwsKmsKey": "arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012", "SecretTags": [{"Key": "cluster-type", "Value": "test"}], "WildcardDnsSuffix": "us-east-2.compute.amazonaws.com", "ValidityInDays": 30 } } } }'

El ejemplo siguiente ilustra el supuesto siguiente:

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": false, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "s3://MyConfigStore/artifacts/MyCerts.zip" } } } }'

El ejemplo siguiente ilustra el supuesto siguiente:

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": false, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "CertificateProviderClass": "com.mycompany.MyCertProvider" } } } }'

Opciones de cifrado de datos en reposo de ejemplo

El ejemplo siguiente ilustra el supuesto siguiente:

  • In-transit el cifrado de datos está desactivado y el cifrado de datos en reposo está activado.

  • SSE-S3 se utiliza para el cifrado de Amazon S3.

  • El cifrado del disco local AWS KMS se utiliza como proveedor de claves.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-S3" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'

El ejemplo siguiente ilustra el supuesto siguiente:

  • In-transit el cifrado de datos está activado y hace referencia a un archivo zip con certificados PEM en Amazon S3, mediante el ARN.

  • SSE-KMS se utiliza para el cifrado de Amazon S3.

  • El cifrado del disco local AWS KMS se utiliza como proveedor de claves.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "arn:aws:s3:::MyConfigStore/artifacts/MyCerts.zip" } }, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'

El ejemplo siguiente ilustra el supuesto siguiente:

  • In-transit el cifrado de datos se habilita con EMR-managed los certificados de Amazon, especificando una clave KMS y etiquetas del cliente para la creación de secretos y añadiéndolas *.mydomain.com a la lista SAN de los certificados creados.

  • CSE-KMS se utiliza para el cifrado de Amazon S3.

  • El cifrado en disco local utiliza un proveedor de claves personalizadas al que hace referencia su ARN.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "EMR", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012", "SecretTags": [{"Key": "cluster-type", "Value": "test"}], "WildcardDnsSuffix": "mydomain.com" } }, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "CSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "Custom", "S3Object": "arn:aws:s3:::artifacts/MyKeyProvider.jar", "EncryptionKeyProviderClass": "com.mycompany.MyKeyProvider" } } } }'

El ejemplo siguiente ilustra el supuesto siguiente:

  • In-transit el cifrado de datos está habilitado con un proveedor de claves personalizadas.

  • CSE-Custom se utiliza para los datos de Amazon S3.

  • El cifrado de disco local utiliza un proveedor de claves personalizadas.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": "true", "EnableAtRestEncryption": "true", "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "CertificateProviderClass": "com.mycompany.MyCertProvider" } }, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "CSE-Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "EncryptionKeyProviderClass": "com.mycompany.MyKeyProvider" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "EncryptionKeyProviderClass": "com.mycompany.MyKeyProvider" } } } }'

El ejemplo siguiente ilustra el supuesto siguiente:

  • In-transit el cifrado de datos está desactivado y el cifrado de datos en reposo está activado.

  • El cifrado de Amazon S3 está habilitado con SSE-KMS.

  • Se utilizan varias AWS KMS claves, una por cada depósito de S3, y se aplican excepciones de cifrado a estos depósitos de S3 individuales.

  • El cifrado de disco local se ha deshabilitado.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012", "Overrides": [ { "BucketName": "amzn-s3-demo-bucket1", "EncryptionMode": "SSE-S3" }, { "BucketName": "amzn-s3-demo-bucket2", "EncryptionMode": "CSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, { "BucketName": "amzn-s3-demo-bucket3", "EncryptionMode": "SSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } ] } }, "EnableInTransitEncryption": false, "EnableAtRestEncryption": true } }'

El ejemplo siguiente ilustra el supuesto siguiente:

  • In-transit el cifrado de datos está desactivado y el cifrado de datos en reposo está activado.

  • El cifrado de Amazon S3 está habilitado SSE-S3 y el cifrado de disco local está deshabilitado.

aws emr create-security-configuration --name "MyS3EncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-S3" } } } }'

El ejemplo siguiente ilustra el supuesto siguiente:

  • In-transit el cifrado de datos está desactivado y el cifrado de datos en reposo está activado.

  • El cifrado del disco local está habilitado AWS KMS como proveedor de claves y el cifrado de Amazon S3 está deshabilitado.

aws emr create-security-configuration --name "MyLocalDiskEncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'

El ejemplo siguiente ilustra el supuesto siguiente:

  • In-transit el cifrado de datos está desactivado y el cifrado de datos en reposo está activado.

  • El cifrado del disco local está habilitado AWS KMS como proveedor de claves y el cifrado de Amazon S3 está deshabilitado.

  • El cifrado de la EBS está habilitado.

aws emr create-security-configuration --name "MyLocalDiskEncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "LocalDiskEncryptionConfiguration": { "EnableEbsEncryption": true, "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'

El ejemplo siguiente ilustra el supuesto siguiente:

SSE-EMR-WAL se utiliza para el cifrado EMR WAL

aws emr create-security-configuration --name "MySecConfig" \ --security-configuration '{ "EncryptionConfiguration": { "EMRWALEncryptionConfiguration":{ }, "EnableInTransitEncryption":false, "EnableAtRestEncryption":false } }'

EnableInTransitEncryption y EnableAtRestEncryption aún podrían ser verdaderos, si desea habilitar el cifrado relacionado.

El ejemplo siguiente ilustra el supuesto siguiente:

  • SSE-KMS-WAL se utiliza para el cifrado EMR WAL

  • El cifrado del lado del servidor AWS Key Management Service se utiliza como proveedor de claves

aws emr create-security-configuration --name "MySecConfig" \ --security-configuration '{ "EncryptionConfiguration": { "EMRWALEncryptionConfiguration":{ "AwsKmsKey":"arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, "EnableInTransitEncryption":false, "EnableAtRestEncryption":false } }'

EnableInTransitEncryption y EnableAtRestEncryption aún podrían ser verdaderos, si desea habilitar el cifrado relacionado.

Referencia de JSON para la configuración de cifrado

En la siguiente tabla se muestran los parámetros JSON de configuración de cifrado y se ofrece una descripción de valores aceptados para cada parámetro.

Parámetro Description (Descripción)
"EnableInTransitEncryption" : true | false Especifique true para habilitar el cifrado en tránsito y false para deshabilitarlo. Si se omite, se supone el valor false y el cifrado en tránsito está deshabilitado.
"EnableAtRestEncryption": true | false Especifique true para habilitar el cifrado en reposo y false para deshabilitarlo. Si se omite, se supone el valor false y el cifrado en reposo está deshabilitado.
In-transit parámetros de cifrado
"InTransitEncryptionConfiguration" : Especifica un conjunto de valores que se utiliza para configurar el cifrado en tránsito cuando EnableInTransitEncryption es true.
"CertificateProviderType": "EMR" | "PEM" | "Custom" Especifica si se van a utilizar certificados EMR creados y gestionados, PEM certificados a los que se hace referencia en un archivo comprimido o un proveedor de Custom certificados. Si PEM se especifica, S3Object debe ser una referencia a la ubicación en Amazon S3 de un archivo zip que contenga los certificados. Si Custom se especifica, S3Object debe ser una referencia a la ubicación en Amazon S3 de un archivo JAR, seguida de una CertificateProviderClass entrada.
"S3Object" : "ZipLocation" | "JarLocation" Proporciona la ubicación en Amazon S3 a un archivo zip cuando PEM se especifica o a un archivo JAR cuando Custom se especifica. El formato puede ser una ruta (por ejemplo, s3://MyConfig/artifacts/CertFiles.zip) o un ARN (por ejemplo, arn:aws:s3:::Code/MyCertProvider.jar). Si se especifica un archivo zip, debe contener archivos denominados exactamente privateKey.pem y certificateChain.pem. Un archivo denominado trustedCertificates.pem es opcional.
"CertificateProviderClass" : "MyClassID" Necesario solo si Custom se especifica paraCertificateProviderType. MyClassIDespecifica un nombre de clase completo declarado en el archivo JAR, que implementa la TLSArtifactsProvider interfaz. Por ejemplo, com.mycompany.MyCertProvider.
"AwsKmsKey" : "MyKeyARN" Opcional, solo si EMR se especifica paraCertificateProviderType. Una clave administrada por el cliente para cargar el certificado de CA creado. AWS Secrets ManagerMyKeyARNdebe ser un ARN completamente especificado para una clave (por ejemplo,arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-456789012123).
"SecretTags" : [{"Key":"mykey","Value":"myvalue"}] Opcional, solo si EMR se especifica paraCertificateProviderType. Etiquetas para añadir al certificado de CA creado AWS Secrets Manager. Para incluir este campo, la persona que llama debe tener secretsmanager:TagResource permisos.
"ValidityInDays" : number Opcional, solo si EMR está especificado paraCertificateProviderType. Durante cuántos días serán válidos los certificados creados, a partir de la fecha de creación de la configuración de seguridad. Si no se especifica, el valor predeterminado es de 20 años.
"WildcardDnsSuffix" : "mydomain.com" Opcional, solo si EMR se especifica paraCertificateProviderType. Un dominio para agregar con un prefijo comodín a la lista de certificados creados de la SAN. Se especifique o no, el certificado siempre se incluirá *.ec2.internal en us-east-1 *.region.compute.internal y en todas las demás regiones.
At-rest parámetros de cifrado
"AtRestEncryptionConfiguration" : Especifica un conjunto de valores para el cifrado en reposo cuando EnableAtRestEncryption estátrue, incluido el cifrado de Amazon S3 y el cifrado de disco local.
Parámetros de cifrado de Amazon S3
"S3EncryptionConfiguration" : Especifica un conjunto de valores utilizados para el cifrado de Amazon S3 con el sistema de archivos EMR de Amazon (EMRFS).
"EncryptionMode": "SSE-S3" | "SSE-KMS" | "CSE-KMS" | "CSE-Custom" Especifica el tipo de cifrado de Amazon S3 que se va a utilizar. Si SSE-S3 se especifica, no se requieren más valores de cifrado de Amazon S3. Si CSE-KMS se especifica uno SSE-KMS o, se debe especificar un AWS KMS key ARN como valor. AwsKmsKey Si se especifica CSE-Custom, se deben especificar los valores S3Object y EncryptionKeyProviderClass.
"AwsKmsKey" : "MyKeyARN" Necesario solo cuando se especifica CSE-KMS o SSE-KMS para EncryptionMode. MyKeyARN debe ser un ARN totalmente especificado para una clave (por ejemplo, arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012).
"S3Object" : "JarLocation" Se requiere solo cuando CSE-Custom se especifica paraCertificateProviderType. JarLocationproporciona la ubicación en Amazon S3 a un archivo JAR. El formato puede ser una ruta (por ejemplo, s3://MyConfig/artifacts/MyKeyProvider.jar) o un ARN (por ejemplo, arn:aws:s3:::Code/MyKeyProvider.jar).
"EncryptionKeyProviderClass" : "MyS3KeyClassID" Se requiere solo cuando CSE-Custom se especifica paraEncryptionMode. MyS3KeyClassIDespecifica el nombre completo de una clase declarada en la aplicación que implementa la EncryptionMaterialsProvider interfaz; por ejemplo,com.mycompany.MyS3KeyProvider.
Parámetros de cifrado de disco local
"LocalDiskEncryptionConfiguration" Especifica el proveedor de claves y valores correspondientes que utilizar para el cifrado de disco local.
"EnableEbsEncryption": true | false Especifique si true desea habilitar el cifrado EBS. El cifrado de EBS cifra el volumen del dispositivo raíz de EBS y los volúmenes de almacenamiento adjuntos. Para utilizar el cifrado de EBS, debe especificarlo como su. AwsKms EncryptionKeyProviderType
"EncryptionKeyProviderType": "AwsKms" | "Custom" Especifica el proveedor de claves. Si AwsKms se especifica, se debe especificar un ARN de clave KMS como valor. AwsKmsKey Si se especifica Custom, se deben especificar los valores S3Object y EncryptionKeyProviderClass.
"AwsKmsKey : "MyKeyARN" Se requiere solo cuando AwsKms se especifica paraType. MyKeyARNdebe ser un ARN completamente especificado para una clave (por ejemplo,arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-456789012123).
"S3Object" : "JarLocation" Se requiere solo cuando CSE-Custom se especifica paraCertificateProviderType. JarLocationproporciona la ubicación en Amazon S3 a un archivo JAR. El formato puede ser una ruta (por ejemplo, s3://MyConfig/artifacts/MyKeyProvider.jar) o un ARN (por ejemplo, arn:aws:s3:::Code/MyKeyProvider.jar).

"EncryptionKeyProviderClass" : "MyLocalDiskKeyClassID"

Se requiere solo cuando Custom se especifica paraType. MyLocalDiskKeyClassIDespecifica el nombre completo de una clase declarada en la aplicación que implementa la EncryptionMaterialsProvider interfaz; por ejemplo,com.mycompany.MyLocalDiskKeyProvider.
Parámetros de cifrado EMR WAL
"EMRWALEncryptionConfiguration" Especifica el valor del cifrado EMR WAL.
"AwsKmsKey" Especifica el ID de clave CMK Arn.

Configuración de la autenticación de Kerberos

Una configuración de seguridad con la configuración de Kerberos solo se puede utilizar en un clúster que se crea con los atributos de Kerberos o si se produce un error. Para obtener más información, consulte Uso de Kerberos para la autenticación con Amazon EMR. Kerberos solo está disponible en la versión 5.10.0 y posteriores de Amazon EMR.

Especificación de la configuración de Kerberos con la consola

Elija opciones en Autenticación de Kerberos de acuerdo con las siguientes directrices.

Parámetro Description (Descripción)

Kerberos

Especifica que Kerberos está habilitado para los clústeres que utilizan esta configuración de seguridad. Si un clúster usa esta configuración de seguridad, también debe tener la configuración de Kerberos especificada o se producirá un error.

Proveedor

Cluster-dedicated KDC

Especifica que Amazon EMR crea un KDC en el nodo principal de cualquier clúster que utilice esta configuración de seguridad. Al crear el clúster, debe especificar el nombre del dominio y la contraseña de administrador del KDC.

Si es necesario, puede hacer referencia a este KDC desde otros clústeres. Cree esos clústeres con una configuración de seguridad diferente, especifique un KDC externo y utilice el nombre de dominio y la contraseña de administrador del KDC que especifique para el KDC dedicado al clúster.

KDC externo

Solo está disponible en la versión de Amazon EMR 5.20.0 y posteriores. Especifica que los clústeres que utilizan esta configuración de seguridad autentican las entidades principales de Kerberos mediante un servidor de KDC externo al clúster. No se crea un KDC en el clúster. Al crear el clúster, debe especificar el nombre de dominio y la contraseña de administrador del KDC para el KDC externo.

Ciclo de vida del ticket

Opcional. Especifica el período durante el que un ticket de Kerberos emitido por el KDC es válido en los clústeres que utilizan esta configuración de seguridad.

El ciclo de vida de los tickets es limitado por motivos de seguridad. Las aplicaciones de clúster y los servicios renuevan automáticamente los tickets después de que expiren. Los usuarios que se conecten al clúster mediante SSH utilizando las credenciales de Kerberos tienen que ejecutar el comando kinit desde la línea de comandos del nodo principal para la renovación tras la expiración de un ticket.

Cross-realm confianza

Especifica una relación de confianza entre ámbitos entre un KDC dedicado a un clúster en los clústeres que utilizan esta configuración de seguridad y un KDC situado en un ámbito de Kerberos diferente.

Las entidades principales (normalmente los usuarios) de otro ámbito se autentican en los clústeres que utilizan esta configuración. Se requiere una configuración adicional en el otro ámbito de Kerberos. Para obtener más información, consulte Tutorial: Configuración de una relación de confianza entre ámbitos con un dominio de Active Directory.

Cross-realm propiedades de confianza

Ámbito

Especifica el nombre de ámbito de Kerberos del otro ámbito en la relación de confianza. Por convención, los nombres de ámbito de Kerberos son los mismos que los nombres de dominio, pero en mayúsculas.

Dominio

Especifica el nombre de dominio del otro ámbito en la relación de confianza.

Servidor de administración

Especifica el nombre de dominio completo (FQDN) o dirección IP del servidor de administración del otro ámbito de la relación de confianza. El servidor de administración y el servidor de KDC suelen ejecutarse en el mismo equipo con el mismo FQDN, pero utilizan puertos distintos para comunicarse.

Si no se especifica ningún puerto, se usa el puerto predeterminado de Kerberos: el 749. También se puede especificar el puerto (por ejemplo, domain.example.com:749).

Servidor de KDC

Especifica el nombre de dominio completo (FQDN) o dirección IP del servidor de KDC del otro ámbito de la relación de confianza. El servidor de KDC y el servidor de administración suelen ejecutarse en el mismo equipo con el mismo FQDN, pero utilizan puertos distintos.

Si no se especifica ningún puerto, se usa el puerto predeterminado de Kerberos: el 88. También se puede especificar el puerto (por ejemplo, domain.example.com:88).

KDC externo

Especifica que el clúster utiliza el KDC externo del clúster.

Propiedades de KDC externo

Servidor de administración

Especifica el nombre de dominio completo (FQDN) o la dirección IP del servidor de administración externo. El servidor de administración y el servidor de KDC suelen ejecutarse en el mismo equipo con el mismo FQDN, pero utilizan puertos distintos para comunicarse.

Si no se especifica ningún puerto, se usa el puerto predeterminado de Kerberos: el 749. También se puede especificar el puerto (por ejemplo, domain.example.com:749).

Servidor de KDC

Especifica el nombre de dominio completo (FQDN) del servidor de KDC externo. El servidor de KDC y el servidor de administración suelen ejecutarse en el mismo equipo con el mismo FQDN, pero utilizan puertos distintos.

Si no se especifica ningún puerto, se usa el puerto predeterminado de Kerberos: el 88. También se puede especificar el puerto (por ejemplo, domain.example.com:88).

Integración de Active Directory

Especifica que la autenticación de la entidad principal de Kerberos está integrada en un dominio de Microsoft Active Directory.

Propiedades de la integración de Active Directory

Ámbito de Active Directory

Especifica el nombre de ámbito de Kerberos del dominio de Active Directory. Por convención, los nombres de ámbito de Kerberos suelen ser los mismos que los nombres de dominio, pero en mayúsculas.

Dominio de Active Directory

Especifica el nombre de dominio de Active Directory.

Servidor de Active Directory

Especifica el nombre de dominio completo (FQDN) del controlador de dominio de Microsoft Active Directory.

Especificar la configuración de Kerberos mediante AWS CLI

En la siguiente tabla de referencia, se muestran los parámetros JSON para la configuración de Kerberos en una configuración de seguridad. Para ver configuraciones de ejemplo, consulte Ejemplos de configuraciones.

Parámetro Description (Descripción)

"AuthenticationConfiguration": {

Obligatorio para Kerberos. Especifica que una configuración de autenticación forma parte de esta configuración de seguridad.

"KerberosConfiguration": {

Obligatorio para Kerberos. Especifica las propiedades de configuración de Kerberos.

"Provider": "ClusterDedicatedKdc",

o

"Provider: "ExternalKdc",

ClusterDedicatedKdc especifica que Amazon EMR crea un KDC en el nodo principal de cualquier clúster que utilice esta configuración de seguridad. Al crear el clúster, debe especificar el nombre del dominio y la contraseña de administrador del KDC. Si es necesario, puede hacer referencia a este KDC desde otros clústeres. Cree esos clústeres con una configuración de seguridad diferente, especifique un KDC externo y utilice el nombre de ámbito y la contraseña de administrador del KDC que especificó al crear el clúster con el KDC dedicado a un clúster.

ExternalKdc especifica que el clúster usa un KDC externo. Amazon EMR no crea un KDC en el nodo principal. Un clúster que utilice esta configuración de seguridad debe especificar el nombre de ámbito y la contraseña de administrador del KDC del KDC externo.

"ClusterDedicatedKdcConfiguration": {

Es obligatorio cuando se especifica ClusterDedicatedKdc.

"TicketLifetimeInHours": 24,

Opcional. Especifica el período durante el que un ticket de Kerberos emitido por el KDC es válido en los clústeres que utilizan esta configuración de seguridad.

El ciclo de vida de los tickets es limitado por motivos de seguridad. Las aplicaciones de clúster y los servicios renuevan automáticamente los tickets después de que expiren. Los usuarios que se conecten al clúster mediante SSH utilizando las credenciales de Kerberos tienen que ejecutar el comando kinit desde la línea de comandos del nodo principal para la renovación tras la expiración de un ticket.

"CrossRealmTrustConfiguration": {

Especifica una relación de confianza entre ámbitos entre un KDC dedicado a un clúster en los clústeres que utilizan esta configuración de seguridad y un KDC situado en un ámbito de Kerberos diferente.

Las entidades principales (normalmente los usuarios) de otro ámbito se autentican en los clústeres que utilizan esta configuración. Se requiere una configuración adicional en el otro ámbito de Kerberos. Para obtener más información, consulte Tutorial: Configuración de una relación de confianza entre ámbitos con un dominio de Active Directory.

"Realm": "KDC2.COM",

Especifica el nombre de ámbito de Kerberos del otro ámbito en la relación de confianza. Por convención, los nombres de ámbito de Kerberos son los mismos que los nombres de dominio, pero en mayúsculas.

"Domain": "kdc2.com",

Especifica el nombre de dominio del otro ámbito en la relación de confianza.

"AdminServer": "kdc.com:749",

Especifica el nombre de dominio completo (FQDN) o dirección IP del servidor de administración del otro ámbito de la relación de confianza. El servidor de administración y el servidor de KDC suelen ejecutarse en el mismo equipo con el mismo FQDN, pero utilizan puertos distintos para comunicarse.

Si no se especifica ningún puerto, se usa el puerto predeterminado de Kerberos: el 749. También se puede especificar el puerto (por ejemplo, domain.example.com:749).

"KdcServer": "kdc.com:88"

Especifica el nombre de dominio completo (FQDN) o dirección IP del servidor de KDC del otro ámbito de la relación de confianza. El servidor de KDC y el servidor de administración suelen ejecutarse en el mismo equipo con el mismo FQDN, pero utilizan puertos distintos.

Si no se especifica ningún puerto, se usa el puerto predeterminado de Kerberos: el 88. También se puede especificar el puerto (por ejemplo, domain.example.com:88).

}

}

"ExternalKdcConfiguration": {

Es obligatorio cuando se especifica ExternalKdc.

"TicketLifetimeInHours": 24,

Opcional. Especifica el período durante el que un ticket de Kerberos emitido por el KDC es válido en los clústeres que utilizan esta configuración de seguridad.

El ciclo de vida de los tickets es limitado por motivos de seguridad. Las aplicaciones de clúster y los servicios renuevan automáticamente los tickets después de que expiren. Los usuarios que se conecten al clúster mediante SSH utilizando las credenciales de Kerberos tienen que ejecutar el comando kinit desde la línea de comandos del nodo principal para la renovación tras la expiración de un ticket.

"KdcServerType": "Single",

Especifica que se hace referencia a un único servidor de KDC. Single es el único valor admitido en este momento.

"AdminServer": "kdc.com:749",

Especifica el nombre de dominio completo (FQDN) o la dirección IP del servidor de administración externo. El servidor de administración y el servidor de KDC suelen ejecutarse en el mismo equipo con el mismo FQDN, pero utilizan puertos distintos para comunicarse.

Si no se especifica ningún puerto, se usa el puerto predeterminado de Kerberos: el 749. También se puede especificar el puerto (por ejemplo, domain.example.com:749).

"KdcServer": "kdc.com:88",

Especifica el nombre de dominio completo (FQDN) del servidor de KDC externo. El servidor de KDC y el servidor de administración suelen ejecutarse en el mismo equipo con el mismo FQDN, pero utilizan puertos distintos.

Si no se especifica ningún puerto, se usa el puerto predeterminado de Kerberos: el 88. También se puede especificar el puerto (por ejemplo, domain.example.com:88).

"AdIntegrationConfiguration": {

Especifica que la autenticación de la entidad principal de Kerberos está integrada en un dominio de Microsoft Active Directory.

"AdRealm": "AD.DOMAIN.COM",

Especifica el nombre de ámbito de Kerberos del dominio de Active Directory. Por convención, los nombres de ámbito de Kerberos suelen ser los mismos que los nombres de dominio, pero en mayúsculas.

"AdDomain": "ad.domain.com"

Especifica el nombre de dominio de Active Directory.

"AdServer": "ad.domain.com"

Especifica el nombre de dominio completo (FQDN) del controlador de dominio de Microsoft Active Directory.

}

}

}

}

Configuración de roles de IAM para solicitudes de EMRFS a Amazon S3

Los roles de IAM para EMRFS le permiten proporcionar diferentes permisos a los datos de EMRFS en Amazon S3. Puede crear asignaciones que especifiquen un rol de IAM que se use para obtener permisos cuando una solicitud de acceso contenga un identificador que haya especificado. El identificador puede ser un usuario o un rol de Hadoop o un prefijo de Amazon S3.

Para obtener más información, consulte Configuración de roles de IAM para solicitudes de EMRFS a Amazon S3.

Especificar las funciones de IAM para EMRFS mediante AWS CLI

A continuación, se muestra un ejemplo de fragmento de JSON para especificar roles de IAM personalizados para EMRFS dentro de una configuración de seguridad. Muestra las asignaciones de roles para los tres tipos de identificadores diferentes, seguidas de una referencia de parámetros.

{ "AuthorizationConfiguration": { "EmrFsConfiguration": { "RoleMappings": [{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_user1", "IdentifierType": "User", "Identifiers": [ "user1" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_to_demo_s3_buckets", "IdentifierType": "Prefix", "Identifiers": [ "s3://amzn-s3-demo-bucket1/","s3://amzn-s3-demo-bucket2/" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_AdminGroup", "IdentifierType": "Group", "Identifiers": [ "AdminGroup" ] }] } } }
Parámetro Description (Descripción)

"AuthorizationConfiguration":

Obligatorio.

"EmrFsConfiguration":

Obligatorio. Contiene asignaciones de roles.

  "RoleMappings":

Obligatorio. Contiene una o más definiciones de asignación de roles. Las asignaciones de roles se evalúan de forma descendente por orden de aparición. Si una asignación de roles se evalúa como true en una invocación de datos de EMRFS en Amazon S3, no se evalúan más asignaciones de roles y EMRFS utiliza el rol de IAM especificado para la solicitud. Las asignaciones de roles tienen los siguientes parámetros obligatorios:

   "Role":

Especifica el identificador de ARN de un rol de IAM en el formato arn:aws:iam::account-id:role/role-name. Este es el rol de IAM que asume Amazon EMR si la solicitud de EMRFS a Amazon S3 coincide con alguno de los Identifiers especificados.

   "IdentifierType":

Puede ser uno de los siguientes:

  • "User" especifica que los identificadores son uno o más usuarios de Hadoop, que pueden ser usuarios de cuentas de Linux o entidades principales de Kerberos. Cuando la solicitud de EMRFS se origina en el usuario o los usuarios especificados, se asume el rol de IAM.

  • "Prefix" especifica que el identificador es una ubicación de Amazon S3. El rol de IAM se asume para las llamadas a la ubicación o ubicaciones con los prefijos especificados. Por ejemplo, el prefijo s3://amzn-s3-demo-bucket/ coincide con s3://amzn-s3-demo-bucket/mydir y s3://amzn-s3-demo-bucket/yetanotherdir.

  • "Group" especifica que los identificadores son uno o más grupos de Hadoop. El rol de IAM se asume si la solicitud proviene de un usuario del grupo o grupos especificados.

   "Identifiers":

Especifica uno o más identificadores del tipo de identificador adecuado. Separe varios identificadores con comas sin espacios.

Configuración de las solicitudes de servicios de metadatos a las instancias de Amazon EC2

Los metadatos de instancia son datos sobre una instancia que se pueden utilizar para configurar o administrar la instancia en ejecución. Para acceder a los metadatos de instancia desde una instancia en ejecución puede utilizar uno de los métodos siguientes:

  • Instance Metadata Service, versión 1 (IMDSv1): un método request/response

  • Servicio de metadatos de instancia, versión 2 (IMDSv2): un método orientado a la sesión

Si bien Amazon EC2 admite IMDSv1 e IMDSv2, Amazon EMR admite IMDSv2 en Amazon EMR 5.23.1, 5.27.1, 5.32 o versiones posteriores y 6.2 o versiones posteriores. En estas versiones, los componentes de Amazon EMR utilizan IMDSv2 para todas las llamadas al IMDS. Para las llamadas al IMDS en el código de la aplicación, puede utilizar IMDSv1 e IMDSv2, o configurar el IMDS para que utilice solo IMDSv2 para mayor seguridad. Si especifica que debe usarse IMDSv2, IMDSv1 dejará de funcionar.

Para obtener más información, consulte Configuración del servicio de metadatos de instancia en la Guía del usuario de Amazon EC2.

nota

En versiones anteriores de Amazon EMR 5.x o 6.x, la desactivación de IMDSv1 provocaba un error en el arranque del clúster, ya que los componentes de Amazon EMR utilizaban IMDSv1 para todas las llamadas al IMDS. Al desactivar IMDSv1, asegúrese de que cualquier software personalizado que utilice IMDSv1 esté actualizado para usar IMDSv2.

Especificar la configuración del servicio de metadatos de la instancia mediante el AWS CLI

A continuación, se muestra un ejemplo de un fragmento de JSON para especificar el servicio de metadatos de instancias (IMDS) de Amazon EC2 dentro de una configuración de seguridad. El uso de una configuración de seguridad personalizada es opcional.

{ "InstanceMetadataServiceConfiguration" : { "MinimumInstanceMetadataServiceVersion": integer, "HttpPutResponseHopLimit": integer } }
Parámetro Description (Descripción)

"InstanceMetadataServiceConfiguration":

Si no especifica el IMDS en una configuración de seguridad y utiliza una versión de Amazon EMR que requiera IMDSv1, Amazon EMR utilizará IMDSv1 de forma predeterminada como la versión de servicio de metadatos de instancia mínima. Si desea utilizar su propia configuración, se requieren los dos parámetros siguientes.

"MinimumInstanceMetadataServiceVersion":

Obligatorio. Indique 1 o 2. Un valor de 1 permite el uso de IMDSv1 e IMDSv2. Un valor de 2 solo permite el uso de IMDSv2.

"HttpPutResponseHopLimit":

Obligatorio. Límite de saltos de respuesta HTTP PUT deseado para las solicitudes de metadatos de instancia. Cuanto mayor sea el número, más solicitudes de metadatos de instancia pueden viajar. Predeterminado: 1. Puede especificar un número entero del 1 al 64.

Especificación la configuración del servicio de metadatos de la instancia con la consola

Puede configurar el uso del IMDS para un clúster al lanzarlo desde la consola de Amazon EMR.

Para configurar el uso del IMDS mediante la consola:
  1. Al crear una nueva configuración de seguridad en la página Configuraciones de seguridad, seleccione Configurar el servicio de metadatos de instancias de EC2 en la configuración del servicio de metadatos de instancias de EC2. Esta configuración solo se admite en Amazon EMR 5.23.1, 5.27.1, 5.32 o versiones posteriores y 6.2 o versiones posteriores.

  2. Para ver la opción Versión mínima del servicio de metadatos de instancias, seleccione una de las siguientes opciones:

    • Desactivar IMDSv1 y permitir solo IMDSv2 si quiere permitir únicamente el uso de IMDSv2 en este clúster. Consulte Transición al uso del servicio de metadatos de instancias, versión 2 en la Guía del usuario de Amazon EC2.

    • Permitir tanto IMDSv1 como IMDSv2 en el clúster si quiere permitir el uso de IMDSv1 e IMDSv2 orientado a la sesión en este clúster.

  3. En IMDSv2, también puede configurar el número permitido de saltos de red para el token de metadatos configurando un número entero entre 1 y 64 en Límite de saltos de respuesta de HTTP PUT.

Para obtener más información, consulte Configuración del servicio de metadatos de instancia en la Guía del usuario de Amazon EC2.

Consulte Configuración de los detalles de la instancia y Configuración del servicio de metadatos de instancia en la Guía del usuario de Amazon EC2.