Creazione di una configurazione di sicurezza - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione di una configurazione di sicurezza

Questo argomento descrive le procedure generali per la creazione di una configurazione di sicurezza mediante la console di EMR e AWS CLI. Include inoltre un riferimento per i parametri relativi a crittografia, autenticazione e ruoli IAM per EMRFS. Per ulteriori informazioni su queste caratteristiche, consulta i seguenti argomenti:

Per creare una configurazione di sicurezza mediante la console
  1. Apri la console Amazon EMR all'indirizzohttps://console.aws.amazon.com/emr.

  2. Nel riquadro di navigazione, scegliere Security Configurations (Configurazioni di sicurezza), quindi Create security configuration (Crea configurazione di sicurezza).

  3. Digitare un nome in Name (Nome) per la configurazione di sicurezza.

  4. Scegli le opzioni per Encryption (Crittografia) e Authentication (Autenticazione) come descritto nelle sezioni successive, quindi scegli Create (Crea).

Per creare una configurazione di sicurezza usando AWS CLI
  • Usa il comando create-security-configuration come mostrato nell'esempio seguente.

    • PerSecConfigName, specificare il nome della configurazione di sicurezza. Si tratta del nome che hai specificato alla creazione di un cluster che utilizza questa configurazione di sicurezza.

    • Per SecConfigDef, specifica una struttura JSON inline o il percorso di un file JSON locale file://MySecConfig.json. I parametri JSON definiscono le opzioni per Encryption (Crittografia), IAM Roles for EMRFS access to Amazon S3 (Ruoli IAM per l'accesso EMRFS ad Amazon S3) e Authentication (Autenticazione) come descritto nelle sezioni successive.

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

Configurazione della crittografia di dati

Prima di configurare la crittografia in una configurazione di sicurezza, è necessario creare le chiavi e i certificati utilizzati per la crittografia. Per ulteriori informazioni, consultare Fornitura di chiavi per la crittografia di dati a riposo con Amazon EMR e Fornitura di certificati per la crittografia di dati in transito con Amazon EMR.

Quando crei una configurazione di sicurezza, specifichi due set di opzioni di crittografia: la crittografia di dati inattivi e la crittografia di dati in transito. Le opzioni per la crittografia di dati a riposo includono Amazon S3 con EMRFS e la crittografia per dischi locali. Le opzioni per la crittografia In transito abilitano le funzionalità di crittografia open source per determinate applicazioni che supportano il protocollo Transport Layer Security (TLS). Le opzioni per la crittografia inattiva e per quella in transito possono essere attivate insieme o separatamente. Per ulteriori informazioni, consulta Crittografia dei dati a riposo e in transito.

Nota

L'utilizzo di AWS KMS comporta l'applicazione di costi per lo storage e l'uso delle chiavi di crittografia. Per ulteriori informazioni, consultare Prezzi di AWS KMS.

Impostazione delle opzioni di crittografia mediante la console

Scegli le opzioni in Encryption (Crittografia) in base alle linee guida riportate di seguito.

  • Scegli le opzioni in At rest encryption (Crittografia inattiva) per crittografare i dati archiviati nel file system.

    Puoi scegliere di crittografare i dati in Amazon S3, nei dischi locali o in entrambi.

  • In S3 data encryption (Crittografia di dati S3), per Encryption mode (Modalità di crittografia), scegli un valore per determinare il modo in cui Amazon EMR crittografa i dati Amazon S3 con EMRFS.

    La fase successiva dipende dalla modalità di crittografia scelta:

  • In Local disk encryption (Crittografia per dischi locali), scegli un valore per Key provider type (Tipo di provider di chiavi).

    • AWS KMS key

      Selezionare questa opzione per specificare una AWS KMS key. Per AWS KMS key, seleziona una chiave. La chiave deve esistere nella stessa regione del cluster EMR. Per ulteriori informazioni sui requisiti relativi alle chiavi, consulta Utilizzo di AWS KMS keys per la crittografia.

      Crittografia EBS

      Quando specifichi AWS KMS come provider di chiavi, puoi abilitare la crittografia EBS per crittografare il dispositivo root EBS e i volumi di archiviazione. Per abilitare tale opzione, è necessario concedere al ruolo del servizio EMR EMR_DefaultRole le autorizzazioni per utilizzare la AWS KMS key specificata. Per ulteriori informazioni sui requisiti relativi alle chiavi, consulta Abilitazione della crittografia EBS fornendo autorizzazioni aggiuntive per le chiavi KMS.

    • Personalizza

      Seleziona questa opzione per specificare un provider di chiavi personalizzato. Per S3 object (Oggetto S3), immetti il percorso in Amazon S3 oppure l'ARN Amazon S3 del file JAR del provider di chiavi personalizzato. PerClasse di provider chiave, inserite il nome completo di una classe dichiarata nell'applicazione che implementa il EncryptionMaterialsProvider interfaccia. Il nome di classe qui specificato deve essere diverso dal nome di classe fornito per CSE-Custom.

  • Scegli In-transit encryption (Crittografia in transito) per abilitare le funzionalità della crittografia TLS open source per dati in transito. Scegli Certificate provider type (Tipo di provider di certificati) in base alle seguenti linee guida:

    • PEM

      Seleziona questa opzione per utilizzare i file PEM forniti in un file ZIP. Due artefatti devono essere inclusi nel file ZIP: privateKey.pem e certificateChain.pem. Un terzo file, trustedCertificates.pem, è facoltativo. Per informazioni dettagliate, consulta Fornitura di certificati per la crittografia di dati in transito con Amazon EMR. Per S3 object (Oggetto S3), specifica il percorso in Amazon S3 o l'ARN Amazon S3 del campo del file ZIP.

    • Personalizza

      Seleziona questa opzione per specificare un provider di certificati personalizzato, quindi, per S3 object (Oggetto S3), immetti il percorso in Amazon S3, o l'ARN Amazon S3, del file JAR del provider di certificati personalizzato. PerClasse di provider chiave, inserite il nome completo di una classe dichiarata nell'applicazione che implementa il TLSArtifactsProvider interfaccia.

Impostazione delle opzioni di crittografia mediante la AWS CLI

Le sezioni seguenti includono scenari di esempio per illustrare il JSON ben formato --security-configuration per differenti configurazioni e provider di chiavi nonché un riferimento per i parametri JSON e i valori appropriati.

Esempio di opzioni di crittografia di dati in transito

L'esempio successivo illustra lo scenario seguente:

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

L'esempio successivo illustra lo scenario seguente:

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

Esempio di opzioni di crittografia di dati a riposo

L'esempio successivo illustra lo scenario seguente:

  • La crittografia di dati In transito è disabilitata e la crittografia di dati inattivi è abilitata.

  • SSE-S3 è utilizzato per la crittografia di Amazon S3.

  • La crittografia per dischi locali utilizza AWS KMS come provider di chiavi.

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

L'esempio successivo illustra lo scenario seguente:

  • La crittografia di dati in transito è abilitata e fa riferimento a un file ZIP con certificati PEM in Amazon S3 mediante l'ARN.

  • SSE-KMS è utilizzato per la crittografia di Amazon S3.

  • La crittografia per dischi locali utilizza AWS KMS come provider di chiavi.

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

L'esempio successivo illustra lo scenario seguente:

  • La crittografia di dati in transito è abilitata e fa riferimento a un file ZIP con certificati PEM in Amazon S3.

  • CSE-KMS è utilizzato per la crittografia di Amazon S3.

  • La crittografia per dischi locali utilizza un provider di chiavi personalizzato a cui si fa riferimento con il relativo ARN.

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

L'esempio successivo illustra lo scenario seguente:

  • La crittografia di dati in transito è abilitata con un provider di chiavi personalizzato.

  • CSE-Custom è utilizzato per i dati Amazon S3.

  • La crittografia per dischi locali utilizza un provider di chiavi personalizzato.

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

L'esempio successivo illustra lo scenario seguente:

  • La crittografia di dati In transito è disabilitata e la crittografia di dati inattivi è abilitata.

  • La crittografia Amazon S3 è abilitata con SSE-KMS.

  • Vengono utilizzate più chiavi AWS KMS, una per ogni bucket S3 e le eccezioni di crittografia vengono applicate a questi singoli bucket S3.

  • La crittografia del disco locale è disabilitata.

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

L'esempio successivo illustra lo scenario seguente:

  • La crittografia di dati In transito è disabilitata e la crittografia di dati inattivi è abilitata.

  • La crittografia Amazon S3 è abilitata con SSE-S3 e la crittografia dei dischi locali è disabilitata.

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

L'esempio successivo illustra lo scenario seguente:

  • La crittografia di dati In transito è disabilitata e la crittografia di dati inattivi è abilitata.

  • La crittografia su disco locale è abilitata con AWS KMS come provider di chiavi e la crittografia Amazon S3 è disabilitata.

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

L'esempio successivo illustra lo scenario seguente:

  • La crittografia di dati In transito è disabilitata e la crittografia di dati inattivi è abilitata.

  • La crittografia su disco locale è abilitata con AWS KMS come provider di chiavi e la crittografia Amazon S3 è disabilitata.

  • La crittografia EBS è abilitata.

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

Riferimento JSON per impostazioni di crittografia

La tabella seguente elenca i parametri JSON per le impostazioni di crittografia e fornisce una descrizione dei valori accettabili per ogni parametro.

Parametro Descrizione
"EnableInTransitEncryption" : true | false Specify true to enable in-transit encryption and false to disable it. If omitted, false is assumed, and in-transit encryption is disabled.
»EnableAtRestEncryption«: vero | false Specify true to enable at-rest encryption and false to disable it. If omitted, false is assumed and at-rest encryption is disabled.
Parametri di crittografia in transito
"InTransitEncryptionConfiguration" : Specifies a collection of values used to configure in-transit encryption when EnableInTransitEncryption is true.
»CertificateProviderType«: «PENNA» | "Custom" Specifies whether to use PEM certificates referenced with a zipped file, or a Personalizza certificate provider. If PEM is specified, S3Object must be a reference to the location in Amazon S3 of a zip file containing the certificates. If Custom is specified, S3Object must be a reference to the location in Amazon S3 of a JAR file, followed by a CertificateProviderClass entry.
«Oggetto S3":»ZipLocation» | "JarLocation" Provides the location in Amazon S3 to a zip file when PEM is specified, or to a JAR file when Personalizza is specified. The format can be a path (for example, s3://MyConfig/artefatti/CertFiles.zip) or an ARN (for example, arn:aws:s3: :Code/MyCertProvider.jar). If a zip file is specified, it must contain files named exactly privateKey.pem and certificateChain.pem. A file named trustedCertificates.pem is optional.
»CertificateProviderClass«:»MyClassID» Required only if Personalizza is specified for CertificateProviderType. MyClassID specifies a full class name declared in the JAR file, which implements the TLSArtifactsProvider interface. For example, com.mycompany.MyCertProvider.
Parametri di crittografia inattiva
"AtRestEncryptionConfiguration" : Specifies a collection of values for at-rest encryption when EnableAtRestEncryption is true, including Amazon S3 encryption and local disk encryption.
Parametri di crittografia di Amazon S3
«S3EncryptionConfiguration«: Specifies a collection of values used for Amazon S3 encryption with the EMR File System (EMRFS).
"EncryptionMode": "SSE-S3" | "SSE-KMS" | "CSE-KMS" | "CSE-Custom" Specifies the type of Amazon S3 encryption to use. If SSE-S3 is specified, no further Amazon S3 encryption values are required. If either SSE-KMS or CSE-KMS is specified, an AWS KMS key ARN must be specified as the AwsKmsKey value. If CSE-Custom is specified, S3Object and EncryptionKeyProviderClass values must be specified.
»AwsKmsKey«:»MyKeyFIENILE» Required only when either SSE-KMS or CSE-KMS is specified for EncryptionMode. MyKeyFILARE must be a fully specified ARN to a key (for example, arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012).
"S3Object" : "JarLocation" Required only when CSE-Custom is specified for CertificateProviderType. JarLocation provides the location in Amazon S3 to a JAR file. The format can be a path (for example, s3://MyConfig/artefatti/MyKeyProvider.jar) or an ARN (for example, arn:aws:s3: :Code/MyKeyProvider.jar).
»EncryptionKeyProviderClass«:»Il mio S3KeyClassID» Required only when CSE-Custom is specified for EncryptionMode. Il mio S3KeyClassID specifies a full class name of a class declared in the application that implements the EncryptionMaterialsProvider interface; for example, com.mycompany.mys3KeyProvider.
Parametri di crittografia per dischi locali
"LocalDiskEncryptionConfiguration" Specifies the key provider and corresponding values to be used for local disk encryption.
"EnableEbsEncryption": true | false Specify true to enable EBS encryption. EBS encryption encrypts the EBS root device volume and attached storage volumes. To use EBS encryption, you must specify AwsKms as your EncryptionKeyProviderType.
"EncryptionKeyProviderType": "AwsKms" | "Custom" Specifies the key provider. If AwsKms is specified, an KMS key ARN must be specified as the AwsKmsKey value. If Personalizza is specified, S3Object and EncryptionKeyProviderClass values must be specified.
»AwsKmsKey :»MyKeyFILARE» Required only when AwsKms is specified for Type (Tipo). MyKeyFIENILE must be a fully specified ARN to a key (for example, arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-456789012123).
"S3Object" : "JarLocation" Required only when CSE-Custom is specified for CertificateProviderType. JarLocation provides the location in Amazon S3 to a JAR file. The format can be a path (for example, s3://MyConfig/artefatti/MyKeyProvider.jar) or an ARN (for example, arn:aws:s3: :Code/MyKeyProvider.jar).

"EncryptionKeyProviderClass" : "MyLocalDiskKeyClassID"

Required only when Personalizza is specified for Type (Tipo). MyLocalDiskKeyClassID specifies a full class name of a class declared in the application that implements the EncryptionMaterialsProvider interface; for example, com.mycompany.MyLocalDiskKeyProvider.

Configurazione dell'autenticazione Kerberos

Una configurazione di sicurezza con impostazioni Kerberos può essere utilizzata da un cluster creato con attributi Kerberos, altrimenti si verifica un errore. Per ulteriori informazioni, consulta Usa Kerberos per l'autenticazione con Amazon EMR. Kerberos è disponibile solo in Amazon EMR versione 5.10.0 e versioni successive.

Configurazione delle impostazioni di Kerberos mediante la console

Scegliere le opzioni in Kerberos authentication (Autenticazione Kerberos) in base alle linee guida seguenti.

Parametro Descrizione

Kerberos

Specifica che Kerberos è abilitato per i cluster che utilizzano questa configurazione di protezione. Se un cluster utilizza questa configurazione di protezione, deve avere anche le impostazioni Kerberos specificate o, in caso contrario, genererà un errore.

Provider

KDC dedicato del cluster

Specifica che Amazon EMR crea un KDC sul nodo primario di qualsiasi cluster che utilizza questa configurazione di sicurezza. Quando crei il cluster, puoi specificare il nome del realm e la password di amministratore KDC.

Se necessario, puoi fare riferimento a questo KDC da altri cluster. Crea tali cluster utilizzando una configurazione di sicurezza diversa, specifica un KDC esterno e utilizza il nome del realm e la password di amministratore KDC specificati per il KDC dedicato al cluster.

KDC esterno

Disponibili solo in Amazon EMR versione 5.20.0 e successive. Specifica che i cluster che utilizzano questa configurazione di sicurezza autenticano le entità Kerberos principali utilizzando un server KDC esterno al cluster. Non viene creato un KDC nel cluster. Quando crei il cluster, specifichi il nome del realm e la password di amministratore KDC per il KDC esterno.

Durata del ticket

Facoltativo. Specifica il periodo di validità di un ticket Kerberos emesso dal KDC nei cluster che utilizzano questa configurazione di sicurezza.

La durata dei ticket è limitata per motivi di sicurezza. Le applicazioni e i servizi del cluster rinnovano automaticamente i ticket dopo la loro scadenza. Gli utenti che si connettono al cluster tramite SSH utilizzando le credenziali Kerberos devono eseguire kinit dalla linea di comando del nodo primario per rinnovare un ticket dopo la relativa scadenza.

Fiducia tra realm

Specifica una relazione di fiducia tra realm tra un KDC dedicato al cluster in cluster che utilizzano questa configurazione di sicurezza e un KDC in un altro realm Kerberos.

Le entità principali (in genere gli utenti) di un altro realm vengono autenticate nei cluster che utilizzano questa configurazione. È necessaria una configurazione aggiuntiva nell'altro realm Kerberos. Per ulteriori informazioni, consulta Tutorial: Configurazione di un trust tra realm con un controller di dominio Active Directory.

Proprietà di fiducia tra realm

Realm (Dominio)

Specifica il nome di realm Kerberos dell'altro realm della relazione di fiducia. Per convenzione, i nomi del realm Kerberos sono uguali al nome di dominio, ma utilizzano solo lettere maiuscole.

Dominio

Specifica il nome di dominio dell'altro realm della relazione di fiducia.

Server amministratore

Specifica il nome di dominio completo (FQDN) o l'indirizzo IP del server di amministrazione nell'altro realm della relazione di fiducia. Generalmente, il server amministratore e il server KDC vengono eseguiti sullo stesso computer con lo stesso nome di dominio completo (FQDN), ma comunicano su porte diverse.

Se non viene specificata alcuna porta, si utilizza la porta 749, ossia l'impostazione predefinita di Kerberos. Facoltativamente, puoi indicare la porta (ad esempio, domain.example.com:749).

Server KDC

Specifica il nome di dominio completo (FQDN) o l'indirizzo IP del server KDC nell'altro realm della relazione di fiducia. Generalmente, il server KDC e il server amministratore vengono eseguiti sullo stesso computer con lo stesso nome di dominio completo (FQDN), ma utilizzano porte diverse.

Se non viene specificata alcuna porta, si utilizza la porta 88, ossia l'impostazione predefinita di Kerberos. Facoltativamente, puoi indicare la porta (ad esempio, domain.example.com:88).

KDC esterno

Specifica che i cluster KDC esterni vengono utilizzati dal cluster.

Proprietà del KDC esterno

Server amministratore

Specifica il nome di dominio completo (FQDN) o l'indirizzo IP del server amministratore esterno. Generalmente, il server amministratore e il server KDC vengono eseguiti sullo stesso computer con lo stesso nome di dominio completo (FQDN), ma comunicano su porte diverse.

Se non viene specificata alcuna porta, si utilizza la porta 749, ossia l'impostazione predefinita di Kerberos. Facoltativamente, puoi indicare la porta (ad esempio, domain.example.com:749).

Server KDC

Specifica il nome di dominio completo (FQDN) del server KDC esterno. Generalmente, il server KDC e il server amministratore vengono eseguiti sullo stesso computer con lo stesso nome di dominio completo (FQDN), ma utilizzano porte diverse.

Se non viene specificata alcuna porta, si utilizza la porta 88, ossia l'impostazione predefinita di Kerberos. Facoltativamente, puoi indicare la porta (ad esempio, domain.example.com:88).

Integrazione con Active Directory

Specifica che l'autenticazione dell'entità Kerberos principale è integrata con un dominio Microsoft Active Directory.

Proprietà di integrazione con Active Directory

Realm di Active Directory

Specifica il nome del realm Kerberos del dominio Active Directory. Per convenzione, i nomi del realm Kerberos sono uguali al nome di dominio, ma utilizzano solo lettere maiuscole.

Dominio Active Directory

Specifica il nome del dominio di Active Directory.

Server Active Directory

Specifica il nome di dominio completo (FQDN) del controller di dominio Microsoft Active Directory.

Configurazione delle impostazioni di Kerberos mediante la AWS CLI

La seguente tabella mostra i parametri JSON per le impostazioni di Kerberos in una configurazione di sicurezza. Per gli esempi di configurazione, consulta Esempi di configurazione.

Parametro Descrizione

"AuthenticationConfiguration": {

Obbligatorio per Kerberos. Specifica che una configurazione di autenticazione fa parte di questa configurazione di sicurezza.

"KerberosConfiguration": {

Obbligatorio per Kerberos. Specifica le proprietà di configurazione Kerberos.

"Provider": "ClusterDedicatedKdc",

oppure

"Provider: "ExternalKdc",

ClusterDedicatedKdc specifica che Amazon EMR crea un KDC sul nodo primario di qualsiasi cluster che utilizza questa configurazione di sicurezza. Quando crei il cluster, puoi specificare il nome del realm e la password di amministratore KDC. Se necessario, puoi fare riferimento a questo KDC da altri cluster. Crea tali cluster utilizzando una configurazione di sicurezza diversa, specifica un KDC esterno e utilizza il nome del realm e la password di amministratore KDC che hai specificato quando hai creato il cluster con il KDC dedicato al cluster.

ExternalKdc specifica che il cluster utilizza un KDC esterno. Amazon EMR non crea un KDC sul nodo primario. Un cluster che utilizza questa configurazione di sicurezza deve specificare il nome del realm e la password di amministratore KDC del KDC esterno.

"ClusterDedicatedKdcConfiguration": {

Opzione obbligatoria quando specifichi ClusterDedicatedKdc.

"TicketLifetimeInHours": 24,

Facoltativo. Specifica il periodo di validità di un ticket Kerberos emesso dal KDC nei cluster che utilizzano questa configurazione di sicurezza.

La durata dei ticket è limitata per motivi di sicurezza. Le applicazioni e i servizi del cluster rinnovano automaticamente i ticket dopo la loro scadenza. Gli utenti che si connettono al cluster tramite SSH utilizzando le credenziali Kerberos devono eseguire kinit dalla linea di comando del nodo primario per rinnovare un ticket dopo la relativa scadenza.

"CrossRealmTrustConfiguration": {

Specifica una relazione di fiducia tra realm tra un KDC dedicato al cluster in cluster che utilizzano questa configurazione di sicurezza e un KDC in un altro realm Kerberos.

Le entità principali (in genere gli utenti) di un altro realm vengono autenticate nei cluster che utilizzano questa configurazione. È necessaria una configurazione aggiuntiva nell'altro realm Kerberos. Per ulteriori informazioni, consulta Tutorial: Configurazione di un trust tra realm con un controller di dominio Active Directory.

"Realm": "KDC2.COM",

Specifica il nome di realm Kerberos dell'altro realm della relazione di fiducia. Per convenzione, i nomi del realm Kerberos sono uguali al nome di dominio, ma utilizzano solo lettere maiuscole.

"Domain": "kdc2.com",

Specifica il nome di dominio dell'altro realm della relazione di fiducia.

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

Specifica il nome di dominio completo (FQDN) o l'indirizzo IP del server di amministrazione nell'altro realm della relazione di fiducia. Generalmente, il server amministratore e il server KDC vengono eseguiti sullo stesso computer con lo stesso nome di dominio completo (FQDN), ma comunicano su porte diverse.

Se non viene specificata alcuna porta, si utilizza la porta 749, ossia l'impostazione predefinita di Kerberos. Facoltativamente, puoi indicare la porta (ad esempio, domain.example.com:749).

"KdcServer": "kdc.com:88"

Specifica il nome di dominio completo (FQDN) o l'indirizzo IP del server KDC nell'altro realm della relazione di fiducia. Generalmente, il server KDC e il server amministratore vengono eseguiti sullo stesso computer con lo stesso nome di dominio completo (FQDN), ma utilizzano porte diverse.

Se non viene specificata alcuna porta, si utilizza la porta 88, ossia l'impostazione predefinita di Kerberos. Facoltativamente, puoi indicare la porta (ad esempio, domain.example.com:88).

}

}

"ExternalKdcConfiguration": {

Opzione obbligatoria quando specifichi ExternalKdc.

"TicketLifetimeInHours": 24,

Facoltativo. Specifica il periodo di validità di un ticket Kerberos emesso dal KDC nei cluster che utilizzano questa configurazione di sicurezza.

La durata dei ticket è limitata per motivi di sicurezza. Le applicazioni e i servizi del cluster rinnovano automaticamente i ticket dopo la loro scadenza. Gli utenti che si connettono al cluster tramite SSH utilizzando le credenziali Kerberos devono eseguire kinit dalla linea di comando del nodo primario per rinnovare un ticket dopo la relativa scadenza.

"KdcServerType": "Single",

Specifica che viene fatto riferimento a un singolo server KDC. Attualmente, Single è l'unico valore supportato.

»AdminServer«:»kdc.com: 749«,

Specifica il nome di dominio completo (FQDN) o l'indirizzo IP del server amministratore esterno. Generalmente, il server amministratore e il server KDC vengono eseguiti sullo stesso computer con lo stesso nome di dominio completo (FQDN), ma comunicano su porte diverse.

Se non viene specificata alcuna porta, si utilizza la porta 749, ossia l'impostazione predefinita di Kerberos. Facoltativamente, puoi indicare la porta (ad esempio, domain.example.com:749).

»KdcServer«:»kdc.com: 88«,

Specifica il nome di dominio completo (FQDN) del server KDC esterno. Generalmente, il server KDC e il server amministratore vengono eseguiti sullo stesso computer con lo stesso nome di dominio completo (FQDN), ma utilizzano porte diverse.

Se non viene specificata alcuna porta, si utilizza la porta 88, ossia l'impostazione predefinita di Kerberos. Facoltativamente, puoi indicare la porta (ad esempio, domain.example.com:88).

"AdIntegrationConfiguration": {

Specifica che l'autenticazione dell'entità Kerberos principale è integrata con un dominio Microsoft Active Directory.

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

Specifica il nome del realm Kerberos del dominio Active Directory. Per convenzione, i nomi del realm Kerberos sono uguali al nome di dominio, ma utilizzano solo lettere maiuscole.

"AdDomain": "ad.domain.com"

Specifica il nome del dominio di Active Directory.

"AdServer": "ad.domain.com"

Specifica il nome di dominio completo (FQDN) del controller di dominio Microsoft Active Directory.

}

}

}

}

Configurazione di ruoli IAM per le richieste EMRFS ad Amazon S3

I ruoli IAM per EMRFS ti consentono di fornire differenti autorizzazioni per dati EMRFS in Amazon S3. A questo proposito, crei mappature che specificano un ruolo IAM utilizzato per le autorizzazioni quando una richiesta di accesso contiene un identificatore da te specificato. L'identificatore può essere un ruolo o un utente Hadoop oppure un prefisso Amazon S3.

Per ulteriori informazioni, consulta Configurazione di ruoli IAM per le richieste EMRFS ad Amazon S3.

Specifica dei ruoli IAM per EMRFS mediante la AWS CLI

Di seguito è riportato un esempio di frammento JSON per specificare ruoli IAM personalizzati per EMRFS all'interno di una configurazione di sicurezza. Vengono illustrate le mappature dei ruoli per i tre diversi tipi di identificatori, seguite da un riferimento ai parametri.

{ "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" ] }] } } }
Parametro Descrizione

"AuthorizationConfiguration":

Campo obbligatorio.

"EmrFsConfiguration":

Campo obbligatorio. Contiene mappature dei ruoli.

  "RoleMappings":

Campo obbligatorio. Contiene una o più definizioni di mappatura dei ruoli. Le mappature dei ruoli vengono valutate dall'alto verso il basso nell'ordine in cui vengono visualizzate. Se una mappatura dei ruoli viene valutata come true (vera) per una chiamata EMRFS per i dati in Amazon S3, non vengono valutate altre mappature dei ruoli ed EMRFS utilizza il ruolo IAM specificato per la richiesta. Le mappature dei ruoli sono costituite dai parametri obbligatori seguenti:

   "Role":

Specifica l'identificatore ARN di un ruolo IAM nel formato arn:aws:iam::account-id:role/role-name. Questo è il ruolo IAM che Amazon EMR assume se la richiesta EMRFS ad Amazon S3 corrisponde a uno degli Identifiers specificato.

   "IdentifierType":

Il valore può essere uno dei seguenti:

  • "User" specifica che gli identificatori sono uno o più utenti Hadoop, i quali possono essere utenti di account Linux o entità Kerberos. Quando la richiesta EMRFS viene originata dall'utente o dagli utenti specificati, viene assunto il ruolo IAM.

  • "Prefix" specifica che l'identificatore è un percorso Amazon S3. Il ruolo IAM viene assunto per le chiamate alla posizione o alle posizioni con i prefissi specificati. Ad esempio, il prefisso s3://mybucket/ corrisponde a s3://mybucket/mydir e s3://mybucket/yetanotherdir.

  • "Group" specifica che gli identificatori sono uno o più Gruppi Hadoop. Il ruolo IAM viene assunto se la richiesta proviene da un utente nel gruppo o nei gruppi specificati.

   "Identifiers":

Specifica uno o più identificatori del tipo di identificatore appropriato. Separa più identificatori con virgole senza spazi.

Configurazione di richieste del servizio di metadati per istanze Amazon EC2

I metadati dell'istanza sono dati relativi all'istanza che puoi utilizzare per configurare o gestire un'istanza in esecuzione. Puoi accedere ai metadati dell'istanza da un'istanza in esecuzione utilizzando uno dei metodi seguenti:

  • Servizio di metadati dell'istanza Versione 1 (IMDSv1): un metodo di richiesta/risposta

  • Servizio di metadati dell'istanza Versione 2 (IMDSv2): un metodo orientato alla sessione

Mentre Amazon EC2 supporta sia IMDSv1 che IMDSv2, Amazon EMR supporta IMDSv2 in Amazon EMR 5.23.1, 5.27.1, 5.32 o versioni successive e 6.2 o versioni successive. In queste versioni, i componenti di Amazon EMR utilizzano IMDSv2 per tutte le chiamate IMDS. Per le chiamate IMDS nel codice dell'applicazione, è possibile utilizzare sia IMDSv1 che IMDSv2 oppure configurare IMDS per utilizzare solo IMDSv2 per una maggiore sicurezza. Quando specifichi l'utilizzo di IMDSv2, IMDSv1 non funziona più.

Per ulteriori informazioni, consulta Configurazione del servizio di metadati dell'istanza nella Guida per l'utente di Amazon EC2 per le istanze Linux.

Nota

Nelle versioni precedenti di Amazon EMR 5.x o 6.x, la disattivazione di IMDSv1 causa un errore di avvio del cluster poiché i componenti di Amazon EMR utilizzano IMDSv1 per tutte le chiamate IMDS. Quando si disattiva IMDSv1, assicurati che qualsiasi software personalizzato che utilizza IMDSv1 venga aggiornato a IMDSv2.

Specifica della configurazione del servizio di metadati dell'istanza utilizzando la AWS CLI

Di seguito è riportato un esempio di frammento JSON per specificare il servizio di metadati dell'istanza Amazon EC2 (IMDS) all'interno di una configurazione di sicurezza.

{ "InstanceMetadataServiceConfiguration" : { "MinimumInstanceMetadataServiceVersion": integer, "HttpPutResponseHopLimit": integer } }
Parametro Descrizione

"InstanceMetadataServiceConfiguration":

Campo obbligatorio.

"MinimumInstanceMetadataServiceVersion":

Campo obbligatorio. Specificare 1 o 2. Un valore di 1 consente IMDSv1 e IMDSv2. Un valore di 2 consente solo IMDSv2.

"HttpPutResponseHopLimit":

Campo obbligatorio. Il limite di hop della risposta HTTP PUT per le richieste di metadati dell'istanza. Maggiore è il numero, più è lungo il tragitto che le richieste di metadati dell'istanza possono percorrere. Default: 1. Specifica un numero intero da 1 a 64.

Specifica della configurazione del servizio di metadati dell'istanza utilizzando la console

Puoi configurare l'utilizzo di IMDS per un cluster quando lo avvii dalla console di Amazon EMR.

Per configurare l'utilizzo di IMDS tramite la console:
  1. Durante la creazione di una nuova configurazione di sicurezza, nella pagina Security configurations (Configurazioni di sicurezza), seleziona Configure EC2 Instance metadata service (Configura servizio di metadati dell'istanza EC2) sotto l'impostazione EC2 Instance Metadata Service (Servizio di metadati dell'istanza EC2). Questa configurazione è supportata solo in Amazon EMR 5.23.1, 5.27.1, 5.32 o versioni successive e 6.2 o versioni successive.

  2. Per l'opzione Minimum Instance Metadata Service Version (Versione del servizio di metadati dell'istanza minima), seleziona una delle seguenti opzioni:

    • Turn off IMDSv1 and only allow IMDSv2 (Disattiva IMDSv1 e consenti solo IMDSv2) se desideri consentire solo IMDSv2 in questo cluster. Consulta Passaggio all'utilizzo del servizio di metadati dell'istanza versione 2 nella Guida per l'utente di Amazon EC2 per le istanze Linux.

    • Allow both IMDSv1 and IMDSv2 on cluster (Consenti sia IMDSv1 che IMDSv2 sul cluster) se desideri consentire IMDSv1 e IMDSv2 orientato alla sessione su questo cluster.

  3. Per IMDSv2, è inoltre possibile configurare il numero consentito di hop di rete per il token dei metadati impostando HTTP put response hop limit (Limite di hop di risposta HTTP put) su un numero intero compreso tra 1 e 64.

Per ulteriori informazioni, consulta Configurazione del servizio di metadati dell'istanza nella Guida per l'utente di Amazon EC2 per le istanze Linux.

Consulta Configurazione dei dettagli dell'istanza e Configurazione del servizio di metadati dell'istanza nella Guida per l'utente di Amazon EC2 per le istanze Linux.