Creación de una configuración de seguridad - 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.

Creación de una configuración de seguridad

En este tema se describen los procedimientos generales para crear una configuración de seguridad con la EMR consola de Amazon y la AWS CLI, seguido de una referencia sobre los parámetros que comprenden el cifrado, la autenticación y las IAM funciones deEMRFS. 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. Abre la EMR consola de Amazon 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.

    • En SecConfigName, 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.

    • ParaSecConfigDef, especifique una JSON estructura en línea o la ruta a un JSON archivo local, por ejemplo. file://MySecConfig.json Los JSON parámetros definen las opciones de cifrado, IAMfunciones de EMRFS acceso a Amazon S3 y autenticación, tal y 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 cifrar los datos en reposo con Amazon EMR y Proporcionar certificados para cifrar los 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. Entre las opciones de cifrado de datos en reposo se incluyen Amazon S3 con cifrado EMRFS de disco local. Las opciones de cifrado en tránsito habilitan las funciones de cifrado de código abierto para determinadas aplicaciones compatibles con Transport Layer Security (). TLS Las opciones en reposo y en tránsito se pueden habilitar juntas o por separado. Para obtener más información, consulte Cifrado de datos en reposo y en tránsito.

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 S3, en Modo de cifrado, elija un valor para determinar con EMRFS qué EMR cifra Amazon los datos de Amazon S3.

    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 estar en la misma región que el EMR clúster. Para obtener más información sobre los requisitos de claves, consulte Utilización AWS KMS keys para el cifrado.

      EBSCifrado

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

    • Personalizada

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

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

    • PEM

      Seleccione esta opción para usar los PEM archivos que proporcione dentro de un archivo zip. Se requieren dos artefactos en el archivo zip: privateKey .pem y certificateChain .pem. Un tercer archivo, trustedCertificates .pem, es opcional. Para obtener más información, consulte Proporcionar certificados para cifrar los datos en tránsito con el cifrado de Amazon EMR. Para el objeto S3, especifique la ubicación en Amazon S3 o Amazon S3 ARN del campo del archivo zip.

    • Personalizada

      Seleccione esta opción para especificar un proveedor de certificados personalizado y, a continuación, para el objeto S3, introduzca la ubicación en Amazon S3 o Amazon S3 del ARN archivo de proveedor de certificados JAR 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

En las secciones siguientes se utilizan ejemplos de escenarios para ilustrarlos de forma correcta --security-configuration JSON para diferentes configuraciones y proveedores de claves, seguidos de una referencia para los JSON parámetros y los valores adecuados.

Opciones de cifrado de datos en tránsito de ejemplo

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:

  • El cifrado de datos en tránsito está deshabilitado y el cifrado de datos en reposo está habilitado.

  • 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:

  • El cifrado de datos en tránsito está habilitado y hace referencia a un archivo zip con PEM certificados en Amazon S3, mediante. 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:

  • El cifrado de datos en tránsito está activado y hace referencia a un archivo zip con PEM certificados en Amazon S3.

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

  • El cifrado de discos locales utiliza un proveedor de claves personalizadas al que hace referenciaARN.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "s3://MyConfigStore/artifacts/MyCerts.zip" } }, "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:

  • El cifrado de datos en tránsito 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:

  • El cifrado de datos en tránsito está deshabilitado y el cifrado de datos en reposo está habilitado.

  • 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 cubos 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": "sse-s3-bucket-name", "EncryptionMode": "SSE-S3" }, { "BucketName": "cse-kms-bucket-name", "EncryptionMode": "CSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, { "BucketName": "sse-kms-bucket-name", "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:

  • El cifrado de datos en tránsito está deshabilitado y el cifrado de datos en reposo está habilitado.

  • El cifrado de Amazon S3 está habilitado con 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:

  • El cifrado de datos en tránsito está deshabilitado y el cifrado de datos en reposo está habilitado.

  • 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:

  • El cifrado de datos en tránsito está deshabilitado y el cifrado de datos en reposo está habilitado.

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

  • EBSel cifrado está activado.

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 EMR WAL cifrado

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

EnableInTransitEncryptiony EnableAtRestEncryption aún podría ser cierto, si se quiere habilitar el cifrado relacionado.

El ejemplo siguiente ilustra el supuesto siguiente:

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

  • 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 } }'

EnableInTransitEncryptiony EnableAtRestEncryption aún podría ser cierto si se quiere habilitar el cifrado relacionado.

JSONreferencia para la configuración de cifrado

En la siguiente tabla se enumeran los JSON parámetros de la configuración de cifrado y se proporciona una descripción de los valores aceptables para cada parámetro.

Parámetro 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.
Parámetros de cifrado en tránsito
"InTransitEncryptionConfiguration" : Especifica un conjunto de valores que se utiliza para configurar el cifrado en tránsito cuando EnableInTransitEncryption es true.
"CertificateProviderType": "PEM" | "Custom" Especifica si se deben utilizar certificados PEM a los que se hace referencia con un archivo comprimido o un proveedor de certificados Custom. 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 se especifica Custom, S3Object debe ser una referencia a la ubicación en Amazon S3 de un JAR archivo, 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 JAR archivo 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 JAR archivo, que implementa la TLSArtifactsProvider interfaz. Por ejemplo, com.mycompany.MyCertProvider.
Parámetros de cifrado en reposo
"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 Amazon EMR File System (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 SSE-KMS alguno de los dos, se AWS KMS key ARN debe especificar un valor como AwsKmsKey valor. Si se especifica CSE-Custom, se deben especificar los valores S3Object y EncryptionKeyProviderClass.
"AwsKmsKey" : "MyKeyARN" Necesario solo SSE-KMS si CSE-KMS se especifica uno de los dosEncryptionMode. MyKeyARNdebe estar completamente especificada ARN en una clave (por ejemplo,arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012).
"S3Object" : "JarLocation" Necesario solo cuando CSE-Custom se especifica paraCertificateProviderType. JarLocationproporciona la ubicación en Amazon S3 a un JAR archivo. 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" Necesario 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 EBS cifrado. EBSel cifrado cifra el volumen del dispositivo EBS raíz y los volúmenes de almacenamiento adjuntos. Para utilizar el EBS cifrado, debe especificarlo AwsKms como su. EncryptionKeyProviderType
"EncryptionKeyProviderType": "AwsKms" | "Custom" Especifica el proveedor de claves. Si AwsKms se especifica, se ARN debe especificar una KMS clave como AwsKmsKey valor. Si se especifica Custom, se deben especificar los valores S3Object y EncryptionKeyProviderClass.
"AwsKmsKey : "MyKeyARN" Se requiere solo cuando AwsKms se especifica paraType. MyKeyARNdebe especificarse ARN completamente en una clave (por ejemplo,arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-456789012123).
"S3Object" : "JarLocation" Necesario solo cuando CSE-Custom se especifica paraCertificateProviderType. JarLocationproporciona la ubicación en Amazon S3 a un JAR archivo. 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"

Necesario 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.
EMRWALparámetros de cifrado
"EMRWALEncryptionConfiguration" Especifica el valor del EMR WAL cifrado.
"AwsKmsKey" Especifica el ID de CMK clave 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 Utilice Kerberos para la autenticación con Amazon EMR. Kerberos solo está disponible en la EMR versión 5.10.0 y posteriores de Amazon.

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

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

Parámetro 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

Dedicado a clústeres 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 KDC administrador.

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

Externo KDC

Disponible solo con Amazon EMR 5.20.0 y versiones posteriores. Especifica que los clústeres que utilizan esta configuración de seguridad autentican a los principales de Kerberos mediante un KDC servidor externo al clúster. A no KDC se crea en el clúster. Al crear el clúster, se especifica el nombre de dominio y la contraseña de KDC administrador del dominio externoKDC.

Ciclo de vida del ticket

Opcional. Especifica el período durante el que un vale 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 conectan al clúster SSH mediante credenciales de Kerberos deben correr kinit desde la línea de comandos del nodo principal para renovarse una vez que caduque un ticket.

Relación de confianza entre ámbitos

Especifica una confianza entre dominios entre un clúster dedicado a KDC los clústeres que utilizan esta configuración de seguridad y un KDC dominio 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.

Propiedades de la relación de confianza entre ámbitos

Á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 la dirección IP del servidor de administración en el otro ámbito de la relación de confianza. El servidor de administración y el KDC servidor suelen ejecutarse en la misma máquina con el mismo FQDN dispositivo, pero se comunican en puertos diferentes.

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).

KDCservidor

Especifica el nombre de dominio completo (FQDN) o la dirección IP del KDC servidor en el otro ámbito de la relación de confianza. El KDC servidor y el servidor de administración suelen ejecutarse en la misma máquina con los mismos puertosFQDN, pero utilizan puertos diferentes.

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).

Externo KDC

Especifica que el clúster KDC utiliza los clústeres externos.

KDCPropiedades externas

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 KDC servidor suelen ejecutarse en la misma máquina con el mismo FQDN dispositivo, pero se comunican en puertos diferentes.

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).

KDCservidor

Especifica el nombre de dominio completo (FQDN) del KDC servidor externo. El KDC servidor y el servidor de administración suelen ejecutarse en la misma máquina con los mismos puertosFQDN, pero utilizan puertos diferentes.

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 el AWS CLI

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

Parámetro 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",

ClusterDedicatedKdcespecifica 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 KDC administrador. Si es necesario, puede hacer referencia KDC a esto desde otros clústeres. Cree esos clústeres con una configuración de seguridad diferente, especifique una externa KDC y utilice el nombre de dominio y la contraseña de KDC administrador que especificó al crear el clúster con el clúster dedicadoKDC.

ExternalKdcespecifica que el clúster usa una externa. KDC Amazon EMR no crea una KDC en el nodo principal. Un clúster que utilice esta configuración de seguridad debe especificar el nombre de dominio y la contraseña de KDC administrador del dominio externoKDC.

"ClusterDedicatedKdcConfiguration": {

Es obligatorio cuando se especifica ClusterDedicatedKdc.

"TicketLifetimeInHours": 24,

Opcional. Especifica el período durante el que un vale 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 conectan al clúster SSH mediante credenciales de Kerberos deben correr kinit desde la línea de comandos del nodo principal para renovarse una vez que caduque un ticket.

"CrossRealmTrustConfiguration": {

Especifica una confianza entre dominios entre un clúster dedicado a KDC los clústeres que utilizan esta configuración de seguridad y un KDC dominio 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 la dirección IP del servidor de administración en el otro ámbito de la relación de confianza. El servidor de administración y el KDC servidor suelen ejecutarse en la misma máquina con el mismo FQDN dispositivo, pero se comunican en puertos diferentes.

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 la dirección IP del KDC servidor en el otro ámbito de la relación de confianza. El KDC servidor y el servidor de administración suelen ejecutarse en la misma máquina con los mismos puertosFQDN, pero utilizan puertos diferentes.

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 vale 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 conectan al clúster SSH mediante credenciales de Kerberos deben correr kinit desde la línea de comandos del nodo principal para renovarse una vez que caduque un ticket.

"KdcServerType": "Single",

Especifica que se hace referencia a un único KDC servidor. Singlees el único valor admitido actualmente.

"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 KDC servidor suelen ejecutarse en la misma máquina con el mismo FQDN dispositivo, pero se comunican en puertos diferentes.

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 KDC servidor externo. El KDC servidor y el servidor de administración suelen ejecutarse en la misma máquina con los mismos puertosFQDN, pero utilizan puertos diferentes.

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.

}

}

}

}

Configurar IAM funciones para EMRFS las solicitudes a Amazon S3

IAMfunciones que EMRFS le permiten proporcionar diferentes permisos a los EMRFS datos en Amazon S3. Usted crea asignaciones que especifican un IAM rol que se usa para los permisos cuando una solicitud de acceso contiene un identificador que usted especifique. El identificador puede ser un usuario o un rol de Hadoop o un prefijo de Amazon S3.

Para obtener más información, consulte Configurar IAM funciones para EMRFS las solicitudes a Amazon S3.

Especificar IAM las funciones para usar el EMRFS AWS CLI

A continuación, se muestra un JSON fragmento de ejemplo para especificar IAM funciones personalizadas 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_MyBuckets", "IdentifierType": "Prefix", "Identifiers": [ "s3://MyBucket/","s3://MyOtherBucket/" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_AdminGroup", "IdentifierType": "Group", "Identifiers": [ "AdminGroup" ] }] } } }
Parámetro 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 un mapeo de roles se evalúa como verdadero para una EMRFS llamada de datos en Amazon S3, no se evalúa ningún otro mapeo de roles y se EMRFS usa el IAM rol especificado para la solicitud. Las asignaciones de roles tienen los siguientes parámetros obligatorios:

   "Role":

Especifica el ARN identificador de un IAM rol en el formato. arn:aws:iam::account-id:role/role-name Esta es la IAM función que EMR asume Amazon si la EMRFS solicitud a Amazon S3 coincide con alguna de las Identifiers especificadas.

   "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 EMRFS solicitud se origina en el usuario o los usuarios especificados, se asume la IAM función.

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

  • "Group" especifica que los identificadores son uno o más grupos de Hadoop. La IAM función 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.

Configurar las solicitudes de servicios de metadatos a las EC2 instancias de Amazon

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:

  • Versión 1 (IMDSv1) del servicio de metadatos de instancias: un método de solicitud/respuesta

  • Versión 2 (IMDSv2) del servicio de metadatos de instancia: un método orientado a la sesión

Si bien Amazon EC2 admite ambas IMDSv1 opciones yIMDSv2, Amazon EMR admite IMDSv2 Amazon EMR 5.23.1, 5.27.1, 5.32 o versiones posteriores y 6.2 o versiones posteriores. En estas versiones, EMR los componentes de Amazon se utilizan IMDSv2 para todas las IMDS llamadas. Para IMDS las llamadas en el código de su aplicación, puede usar ambos IMDSv1 códigos o configurarlos para IMDS que se usen solo IMDSv2 para mayor seguridad. IMDSv2 Si especificas que IMDSv2 debe usarse, ya IMDSv1 no funciona.

Para obtener más información, consulta Cómo configurar el servicio de metadatos de la instancia en la Guía del EC2 usuario de Amazon.

nota

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

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

El siguiente es un JSON fragmento de ejemplo para especificar el servicio de metadatos de EC2 instancias de Amazon (IMDS) 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 Descripción

"InstanceMetadataServiceConfiguration":

Si no lo especificas IMDS en una configuración de seguridad y utilizas una EMR versión de Amazon que lo requieraIMDSv1, Amazon utilizará IMDSv1 de EMR forma predeterminada la versión mínima del servicio de metadatos de la instancia. 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 IMDSv1 yIMDSv2. Un valor de solo 2 permiteIMDSv2.

"HttpPutResponseHopLimit":

Obligatorio. El límite de saltos de HTTP PUT respuesta deseado para, por ejemplo, las solicitudes de metadatos. 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

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

Para configurar el IMDS uso de la consola:
  1. Al crear una nueva configuración de seguridad en la página de configuraciones de seguridad, seleccione Configurar el servicio de metadatos de la EC2 instancia en la configuración del servicio de metadatos de la EC2 instancia. Esta configuración solo es compatible con 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:

  3. Por ejemploIMDSv2, también puede configurar el número permitido de saltos de red para el token de metadatos estableciendo el límite de saltos de respuesta HTTP put en un número entero comprendido entre y. 1 64

Para obtener más información, consulta Cómo configurar el servicio de metadatos de la instancia en la Guía del EC2 usuario de Amazon.

Consulte Configurar los detalles de la instancia y Configurar el servicio de metadatos de la instancia en la Guía del EC2 usuario de Amazon.