Créer une configuration de sécurité - Amazon EMR

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Créer une configuration de sécurité

Cette rubrique couvre les procédures générales pour la création d'une configuration de sécurité à l'aide de la console EMR et de l'AWS CLI. Elle comporte également une référence pour les paramètres qui comprennent le chiffrement, l'authentification et les rôles IAM pour EMRFS. Pour plus d'informations sur ces fonctions, consultez les rubriques suivantes :

Pour créer une configuration de sécurité à l'aide de la console

  1. Ouvrez la console Amazon EMR à l'adressehttps://console.aws.amazon.com/elasticmapreduce/.

  2. Dans le volet de navigation, choisissez Security Configurations (Configurations de sécurité), puis Create security configuration (Créer une configuration de sécurité).

  3. Dans Name (Nom), saisissez un nom pour la configuration de sécurité.

  4. Choisissez des options pourChiffrementetAuthentificationcomme décrit dans les sections ci-dessous, puis choisissezCréation.

Pour créer une configuration de sécurité à l'aide de l'AWS CLI

  • Utilisez la commande create-security-configuration, comme illustré dans l'exemple suivant.

    • PourSecConfigName, spécifiez le nom de la configuration de sécurité. Il s'agit du nom que vous spécifiez lors de la création d'un cluster qui utilise cette configuration de sécurité.

    • Pour SecConfigDef, spécifiez une structure JSON en ligne ou le chemin d'accès à un fichier JSON local, comme file://MySecConfig.json. Les paramètres JSON définissent les options pourChiffrement,Rôles IAM pour l'accès EMRFS à Amazon S3, etAuthentificationcomme indiqué dans les sections ci-dessous.

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

Configuration du chiffrement des données

Avant de configurer le chiffrement dans une configuration de sécurité, créez les clés et certificats utilisés pour le chiffrement. Pour plus d’informations, consultez Fourniture de clés pour le chiffrement de données au repos avec Amazon EMR et Fourniture de certificats pour le chiffrement des données en transit avec le chiffrement Amazon EMR.

Lorsque vous créez une configuration de sécurité, vous spécifiez deux jeux d'options de chiffrement : le chiffrement des données au repos et le chiffrement des données en transit. Les options de chiffrement des données au repos incluent Amazon S3 avec EMRFS et le chiffrement du disque local. Les options de chiffrement en transit activent les fonctions de chiffrement open source pour certaines applications qui prennent en charge le protocole TLS (Transport Layer Security). Les options de chiffrement des données au repos et en transit peuvent être activées ensemble ou séparément. Pour plus d'informations, consultez Chiffrez les données au repos et en transit.

Note

Lorsque vous utilisez AWS KMS, des frais s'appliquent pour le stockage et l'utilisation des clés de chiffrement. Pour plus d'informations, consultez AWS KMS Pricing (Tarification CTlong).

Spécification des options de chiffrement à l'aide de

Choisissez les options sous Encryption (Chiffrement) en fonction des indications suivantes.

  • Choisissez les options sous At rest encryption (Chiffrement au repos) pour chiffrer les données stockées dans le système de fichiers.

    Vous pouvez choisir de chiffrer les données dans Amazon S3, sur des disques locaux ou les deux.

  • SousChiffrement des données S3, pourMode Chiffrement, choisissez une valeur pour déterminer comment Amazon EMR chiffre les données Amazon S3 avec EMRFS.

    L'étape suivante varie selon le mode de chiffrement que vous avez choisi :

  • Sous Local disk encryption (Chiffrement de disque local), choisissez une valeur pour Key provider type (Type de fournisseur de clé).

    • AWS KMS key

      Sélectionnez cette option pour spécifier unAWS KMS key. PourAWS KMS key, sélectionnez une clé. Cette clé doit être dans la même région que votre cluster EMR. Pour plus d'informations sur les exigences relatives aux clés, consultez A l'aide deAWS KMS keyspour le Chiffrement.

      Chiffrement EBS

      Lorsque vous spécifiezAWS KMSen tant que fournisseur de clés, vous pouvez activer le chiffrement EBS pour crypter le périphérique racine et les volumes de stockage EBS. Pour activer cette option, vous devez attribuer le rôle de service EMREMR_DefaultRoleavec l'autorisation d'utiliser le.AWS KMS keyque vous spécifiez. Pour plus d'informations sur les exigences relatives aux clés, consultez Activation du chiffrement EBS en fournissant des autorisations supplémentaires pour les clés KMS.

    • Personnalisé

      Sélectionnez cette option pour spécifier un fournisseur de clés personnalisé. Pourobjet S3, entrez l'emplacement dans Amazon S3, ou dans l'ARN Amazon S3, de votre fichier JAR de fournisseur de clés personnalisé. PourClasse de fournisseurs clés, entrez le nom complet d'une classe déclarée dans votre application qui implémente le EncryptionMaterialsProvider interface. Le nom de classe que vous indiquez ici doit être différent du nom de classe fourni pour CSE-Custom.

  • Choisissez In-transit encryption (Chiffrement en transit) pour activer les fonctionnalités de chiffrement TLS open source pour les données en transit. Dans Certificate provider type (Type de fournisseur de certificat), sélectionnez un type de fournisseur de certificat conformément aux consignes suivantes :

    • PEM

      Sélectionnez cette option pour utiliser les fichiers PEM que vous fournissez au sein d'un fichier zip. Deux objets sont obligatoires dans le fichier zip : privateKey.pem et certificateChain.pem. Un troisième fichier, trustedCertificates.pem, est facultatif. Consultez Fourniture de certificats pour le chiffrement des données en transit avec le chiffrement Amazon EMR pour plus de détails. Pourobjet S3, spécifiez l'emplacement dans Amazon S3, ou dans l'ARN Amazon S3, du champ du fichier zip.

    • Personnalisé

      Sélectionnez cette option pour spécifier un fournisseur de certificats personnalisé, puis, pourobjet S3, entrez l'emplacement dans Amazon S3, ou dans l'ARN Amazon S3, de votre fichier JAR personnalisé de fournisseur de certificats. PourClasse de fournisseurs clés, entrez le nom complet d'une classe déclarée dans votre application qui implémente le TLSArtifactsProvider interface.

Spécification des options de chiffrement à l'AWS CLI

Les sections suivantes utilisent des exemples de scénarios pour illustrer le code JSON --security-configuration bien formé pour différentes configurations et différents fournisseurs de clés, suivis d'une référence pour les paramètres JSON et les valeurs à utiliser.

Exemples d'options de chiffrement des données en transit

L'exemple suivant illustre le scénario suivant :

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'exemple suivant illustre le scénario suivant :

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

Exemples d'options de chiffrement des données au repos

L'exemple suivant illustre le scénario suivant :

  • Le chiffrement des données en transit est désactivé et le chiffrement des données au repos est activé.

  • SSE-S3 est utilisée pour le chiffrement Amazon S3.

  • Le chiffrement de disque local utilise AWS KMS comme fournisseur de clés.

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'exemple suivant illustre le scénario suivant :

  • Le chiffrement des données en transit est activé et fait référence à un fichier zip avec des certificats PEM dans Amazon S3, à l'aide de l'ARN.

  • SSE-KMS est utilisé pour le chiffrement Amazon S3.

  • Le chiffrement de disque local utilise AWS KMS comme fournisseur de clés.

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'exemple suivant illustre le scénario suivant :

  • Le chiffrement des données en transit est activé et fait référence à un fichier zip avec des certificats PEM dans Amazon S3.

  • Le CSE-KMS est utilisé pour le chiffrement Amazon S3.

  • Le chiffrement de disque local utilise un fournisseur de clés personnalisé référencé par son 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'exemple suivant illustre le scénario suivant :

  • Le chiffrement des données en transit est activé avec un fournisseur de clés personnalisé.

  • CSE-Custom est utilisé pour les données Amazon S3.

  • Le chiffrement de disque local utilise un fournisseur de clés personnalisé.

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'exemple suivant illustre le scénario suivant :

  • Le chiffrement des données en transit est désactivé et le chiffrement des données au repos est activé.

  • Le chiffrement Amazon S3 est activé avec SSE-KMS.

  • MultipleAWS KMSdes clés sont utilisées, une par compartiment S3, et des exceptions de chiffrement sont appliquées à ces compartiments S3 individuels.

  • Le chiffrement de disque local est désactivé.

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'exemple suivant illustre le scénario suivant :

  • Le chiffrement des données en transit est désactivé et le chiffrement des données au repos est activé.

  • Le chiffrement Amazon S3 est activé avec SSE-S3 et le chiffrement du disque local est désactivé.

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

L'exemple suivant illustre le scénario suivant :

  • Le chiffrement des données en transit est désactivé et le chiffrement des données au repos est activé.

  • Le chiffrement du disque local est activé avecAWS KMSen tant que fournisseur de clés et que le chiffrement Amazon S3 est désactivé.

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'exemple suivant illustre le scénario suivant :

  • Le chiffrement des données en transit est désactivé et le chiffrement des données au repos est activé.

  • Le chiffrement du disque local est activé avecAWS KMSen tant que fournisseur de clés et que le chiffrement Amazon S3 est désactivé.

  • Le chiffrement EBS est activé.

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

Référence JSON pour les paramètres de chiffrement

Le tableau suivant répertorie les paramètres JSON à définir pour le chiffrement et décrit les valeurs acceptables pour chacun d'eux.

Paramètre Description
"EnableInTransitEncryption" : vrai | false Specify vrai to enable in-transit encryption and false to disable it. If omitted, false is assumed, and in-transit encryption is disabled.
«EnableAtRestEncryption« vrai | false Specify vrai to enable at-rest encryption and false to disable it. If omitted, false is assumed and at-rest encryption is disabled.
Paramètres de chiffrement en transit
"InTransitEncryptionConfiguration" : Specifies a collection of values used to configure in-transit encryption when EnableInTransitEncryption is true.
«CertificateProviderType« : « POÈME » | « Personnalisé » Specifies whether to use PEM certificates referenced with a zipped file, or a Personnalisé certificate provider. If PEM is specified, Objet S3 must be a reference to the location in Amazon S3 of a zip file containing the certificates. If Custom is specified, Objet S3 must be a reference to the location in Amazon S3 of a JAR file, followed by a CertificateProviderClass entry.
« Objet S3 » : «ZipLocation« | "JarLocation" Provides the location in Amazon S3 to a zip file when PEM is specified, or to a JAR file when Personnalisé is specified. The format can be a path (for example, s3 ://MyConfig/Artefacts/CertFiles.zip) or an ARN (for example, arn: CodesMyCertProvider.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« : «MyClassIDENTIFIANT« Required only if Personnalisé is specified for CertificateProviderType. MyClassIDENTIFIANT specifies a full class name declared in the JAR file, which implements the TLSArtifactsProvider interface. For example, com.mycompany.MyCertProvider.
Paramètres de chiffrement au repos
"AtRestEncryptionConfiguration" : Specifies a collection of values for at-rest encryption when EnableAtRestEncryption is true, including Amazon S3 encryption and local disk encryption.
Paramètres de chiffrement Amazon S3
« S3EncryptionConfiguration« : Specifies a collection of values used for Amazon S3 encryption with the EMR File System (EMRFS).
"EncryptionMode": « SSE-S3" | « SSE-KM » | « CSE-KMS » | « CSE-personnalisé » 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, Objet S3 and EncryptionKeyProviderClass values must be specified.
«AwsKmsKey« : «MyKeyARN« Required only when either SSE-KMS or CSE-KMS is specified for EncryptionMode. MyKeyARN must be a fully specified ARN to a key (for example, arn:aws:kms:us-east- 1:123456789012:key/12345678-1234-1234-1234-1234-123456789012).
« Objet S3 » : "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/Artefacts/MyKeyProvider.jar) or an ARN (for example, arn: CodesMyKeyProvider.jar).
«EncryptionKeyProviderClass« : «Mon S3KeyClassIDENTIFIANT« Required only when CSE-Custom is specified for EncryptionMode. Mon S3KeyClassIDENTIFIANT specifies a full class name of a class declared in the application that implements the EncryptionMaterialsProvider interface; for example, com.mycompany.mys3KeyProvider.
Paramètres de chiffrement de disque local
"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" | « Personnalisé » Specifies the key provider. If AwsKms is specified, an KMS key ARN must be specified as the AwsKmsKey value. If Personnalisé is specified, Objet S3 and EncryptionKeyProviderClass values must be specified.
«AwsKmsKey  : «MyKeyARN« Required only when AwsKms is specified for Type. MyKeyARN must be a fully specified ARN to a key (for example, arn:aws:kms:us-east- 1:123456789012:key/12345678-1234-1234-1234-1234-1234-456789012123).
« Objet S3 » : "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/Artefacts/MyKeyProvider.jar) or an ARN (for example, arn: CodesMyKeyProvider.jar).

"EncryptionKeyProviderClass" : "MyLocalDiskKeyClassID"

Required only when Personnalisé is specified for Type. MyLocalDiskKeyClassIDENTIFIANT specifies a full class name of a class declared in the application that implements the EncryptionMaterialsProvider interface; for example, com.mycompany.MyLocalDiskKeyProvider.

Configuration de l'authentification Kerberos

Une configuration de sécurité avec les paramètres Kerberos ne peut être utilisée que par un cluster créé avec des attributs Kerberos. Sinon, une erreur se produit. Pour plus d'informations, consultez Utiliser l'authentification Kerberos. Kerberos n'est disponible que dans les versions Amazon EMR 5.10.0 et supérieures.

Spécification des paramètres Kerberos à l'aide de la console

Choisissez les options sous Kerberos authentication (Authentification Kerberos) en suivant les indications suivantes.

Paramètre Description

Kerberos

Spécifie que Kerberos est activé pour les clusters qui utilisent cette configuration de sécurité. Si un cluster utilise cette configuration de sécurité, les paramètres Kerberos doivent également être spécifiés pour le cluster, sinon une erreur se produit.

Provider

KDC dédié au cluster

Spécifie qu'Amazon EMR crée un KDC sur le nœud principal de tout cluster utilisant cette configuration de sécurité. Vous spécifiez le nom du domaine et le mot de passe administrateur du KDC lorsque vous créez le cluster.

Vous pouvez référencer ce KDC à partir d'autres clusters, si nécessaire. Créez ces clusters en utilisant une configuration de sécurité différente, spécifiez un KDC externe et utilisez le nom du domaine et le mot de passe administrateur du KDC que vous spécifiez pour le KDC dédié au cluster.

KDC externe

Disponible uniquement avec Amazon EMR 5.20.0 et versions ultérieures. Spécifie que les clusters utilisant cette configuration de sécurité authentifient les principaux Kerberos à l'aide d'un serveur KDC extérieur au cluster. Aucun KDC n'est créé sur le cluster. Lorsque vous créez le cluster, vous spécifiez le nom du domaine et le mot de passe administrateur du KDC pour le KDC externe.

Utilisation d'un ticket

Facultatif. Spécifie la période pendant laquelle un ticket Kerberos émis par le KDC est valide sur les clusters qui utilisent cette configuration de sécurité.

La durée de vie des billets est limitée pour des raisons de sécurité. Les applications et services du cluster renouvellent automatiquement les tickets après leur expiration. Les utilisateurs qui se connectent au cluster via SSH à l'aide des informations d'identification Kerberos doivent exécuterkinità partir de la ligne de commande du nœud principal pour le renouveler après expiration d'un ticket.

Confiance entre domaines

Spécifie une confiance entre domaines entre un KDC dédié au cluster sur les clusters qui utilisent cette configuration de sécurité et un KDC d'un domaine Kerberos différent.

Les principaux (généralement les utilisateurs) d'un autre domaine sont authentifiés auprès des clusters qui utilisent cette configuration. Une configuration supplémentaire est requise dans l'autre domaine Kerberos. Pour plus d'informations, consultez Didacticiel : Configurer une approbation inter-domaines avec un domaine Active Directory.

Propriétés de confiance entre domaines

Domaine

Spécifie le nom du domaine Kerberos de l'autre domaine dans la relation de confiance. Par convention, les noms de domaine Kerberos sont les mêmes que le nom de domaine, mais uniquement en majuscules.

Domaine

Spécifie le nom de domaine de l'autre domaine de la relation d'approbation.

Serveur administrateur

Spécifie le nom de domaine complet (Fully Qualified Domain Name) ou l'adresse IP du serveur d'administration dans l'autre domaine de la relation de confiance. Le serveur d'administration et le serveur KDC s'exécutent généralement sur la même machine avec le même nom de domaine complet, mais communiquent sur des ports différents.

Si aucun port n'est spécifié, le port 749 est utilisé, qui est le port par défaut de Kerberos. Le cas échéant, vous pouvez spécifier le port (par exemple, domain.example.com:749).

Serveur KDC

Spécifie le nom de domaine complet (Fully Qualified Domain Name) ou l'adresse IP du serveur KDC dans l'autre domaine de la relation de confiance. Le serveur KDC et le serveur d'administration s'exécutent généralement sur la même machine avec le même nom de domaine complet, mais utilisent des ports différents.

Si aucun port n'est spécifié, le port 88 est utilisé, qui est le port par défaut de Kerberos. Le cas échéant, vous pouvez spécifier le port (par exemple, domain.example.com:88).

KDC externe

Spécifie que le KDC externe du cluster est utilisé par le cluster.

Propriétés du KC externe

Serveur administrateur

Spécifie le nom de domaine complet (FQDN) ou l'adresse IP du serveur d'administration externe. Le serveur d'administration et le serveur KDC s'exécutent généralement sur la même machine avec le même nom de domaine complet, mais communiquent sur des ports différents.

Si aucun port n'est spécifié, le port 749 est utilisé, qui est le port par défaut de Kerberos. Le cas échéant, vous pouvez spécifier le port (par exemple, domain.example.com:749).

Serveur KDC

Spécifie le nom de domaine complet (FQDN) du serveur KDC externe. Le serveur KDC et le serveur d'administration s'exécutent généralement sur la même machine avec le même nom de domaine complet, mais utilisent des ports différents.

Si aucun port n'est spécifié, le port 88 est utilisé, qui est le port par défaut de Kerberos. Le cas échéant, vous pouvez spécifier le port (par exemple, domain.example.com:88).

Intégration Active Directory

Spécifie que l'authentification principale Kerberos est intégrée à un domaine Microsoft Active Directory.

Propriétés d'intégration Active Directory

Domaine Active

Spécifie le nom de domaine Kerberos du domaine Active Directory. Par convention, les noms de domaine Kerberos sont généralement les mêmes que le nom de domaine, mais uniquement en majuscules.

Domaine Active

Spécifie le nom de domaine Active Directory.

Serverless Active

Spécifie le nom de domaine complet (FQDN) du contrôleur de domaine Microsoft Active Directory.

Spécification des paramètres Kerberos à l'aide deAWS CLI

Le tableau suivant montre les paramètres JSON de référence pour les paramètres Kerberos dans une configuration de sécurité. Pour des exemples de configurations, consultez Exemples de configuration de.

Paramètre Description

"AuthenticationConfiguration": {

Requis pour Kerberos. Spécifie qu'une configuration d'authentification fait partie de cette configuration de sécurité.

"KerberosConfiguration": {

Requis pour Kerberos. Spécifie les propriétés de configuration de Kerberos.

"Provider": "ClusterDedicatedKdc",

ou

"Provider: "ExternalKdc",

ClusterDedicatedKdcindique qu'Amazon EMR crée un KDC sur le nœud principal de tout cluster utilisant cette configuration de sécurité. Vous spécifiez le nom du domaine et le mot de passe administrateur du KDC lorsque vous créez le cluster. Vous pouvez référencer ce KDC à partir d'autres clusters, si nécessaire. Créez ces clusters en utilisant une configuration de sécurité différente, spécifiez un KDC externe et utilisez le nom du domaine et le mot de passe administrateur du KDC que vous avez spécifiés lors de la création du cluster avec le KDC dédié au cluster.

ExternalKdcindique que le cluster utilise un KDC externe. Amazon EMR ne crée pas de KDC sur le nœud principal. Un cluster qui utilise cette configuration de sécurité doit spécifier le nom du domaine et le mot de passe administrateur du KDC externe.

"ClusterDedicatedKdcConfiguration": {

Obligatoire lorsque ClusterDedicatedKdc est spécifié.

"TicketLifetimeInHours": 24,

Facultatif. Spécifie la période pendant laquelle un ticket Kerberos émis par le KDC est valide sur les clusters qui utilisent cette configuration de sécurité.

La durée de vie des billets est limitée pour des raisons de sécurité. Les applications et services du cluster renouvellent automatiquement les tickets après leur expiration. Les utilisateurs qui se connectent au cluster via SSH à l'aide des informations d'identification Kerberos doivent exécuterkinità partir de la ligne de commande du nœud principal pour le renouveler après expiration d'un ticket.

"CrossRealmTrustConfiguration": {

Spécifie une confiance entre domaines entre un KDC dédié au cluster sur les clusters qui utilisent cette configuration de sécurité et un KDC d'un domaine Kerberos différent.

Les principaux (généralement les utilisateurs) d'un autre domaine sont authentifiés auprès des clusters qui utilisent cette configuration. Une configuration supplémentaire est requise dans l'autre domaine Kerberos. Pour plus d'informations, consultez Didacticiel : Configurer une approbation inter-domaines avec un domaine Active Directory.

"Realm": "KDC2.COM",

Spécifie le nom du domaine Kerberos de l'autre domaine dans la relation de confiance. Par convention, les noms de domaine Kerberos sont les mêmes que le nom de domaine, mais uniquement en majuscules.

"Domain": "kdc2.com",

Spécifie le nom de domaine de l'autre domaine de la relation d'approbation.

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

Spécifie le nom de domaine complet (Fully Qualified Domain Name) ou l'adresse IP du serveur d'administration dans l'autre domaine de la relation de confiance. Le serveur d'administration et le serveur KDC s'exécutent généralement sur la même machine avec le même nom de domaine complet, mais communiquent sur des ports différents.

Si aucun port n'est spécifié, le port 749 est utilisé, qui est le port par défaut de Kerberos. Le cas échéant, vous pouvez spécifier le port (par exemple, domain.example.com:749).

"KdcServer": "kdc.com:88"

Spécifie le nom de domaine complet (Fully Qualified Domain Name) ou l'adresse IP du serveur KDC dans l'autre domaine de la relation de confiance. Le serveur KDC et le serveur d'administration s'exécutent généralement sur la même machine avec le même nom de domaine complet, mais utilisent des ports différents.

Si aucun port n'est spécifié, le port 88 est utilisé, qui est le port par défaut de Kerberos. Le cas échéant, vous pouvez spécifier le port (par exemple, domain.example.com:88).

}

}

"ExternalKdcConfiguration": {

Obligatoire lorsque ExternalKdc est spécifié.

"TicketLifetimeInHours": 24,

Facultatif. Spécifie la période pendant laquelle un ticket Kerberos émis par le KDC est valide sur les clusters qui utilisent cette configuration de sécurité.

La durée de vie des billets est limitée pour des raisons de sécurité. Les applications et services du cluster renouvellent automatiquement les tickets après leur expiration. Les utilisateurs qui se connectent au cluster via SSH à l'aide des informations d'identification Kerberos doivent exécuterkinità partir de la ligne de commande du nœud principal pour le renouveler après expiration d'un ticket.

"KdcServerType": "Single",

Spécifie qu'un seul serveur KDC est référencé.Singleest actuellement la seule valeur actuellement prise en charge.

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

Spécifie le nom de domaine complet (FQDN) ou l'adresse IP du serveur d'administration externe. Le serveur d'administration et le serveur KDC s'exécutent généralement sur la même machine avec le même nom de domaine complet, mais communiquent sur des ports différents.

Si aucun port n'est spécifié, le port 749 est utilisé, qui est le port par défaut de Kerberos. Le cas échéant, vous pouvez spécifier le port (par exemple, domain.example.com:749).

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

Spécifie le nom de domaine complet (FQDN) du serveur KDC externe. Le serveur KDC et le serveur d'administration s'exécutent généralement sur la même machine avec le même nom de domaine complet, mais utilisent des ports différents.

Si aucun port n'est spécifié, le port 88 est utilisé, qui est le port par défaut de Kerberos. Le cas échéant, vous pouvez spécifier le port (par exemple, domain.example.com:88).

"AdIntegrationConfiguration": {

Spécifie que l'authentification principale Kerberos est intégrée à un domaine Microsoft Active Directory.

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

Spécifie le nom de domaine Kerberos du domaine Active Directory. Par convention, les noms de domaine Kerberos sont généralement les mêmes que le nom de domaine, mais uniquement en majuscules.

"AdDomain": "ad.domain.com"

Spécifie le nom de domaine Active Directory.

"AdServer": "ad.domain.com"

Spécifie le nom de domaine complet (FQDN) du contrôleur de domaine Microsoft Active Directory.

}

}

}

}

Configurer les rôles IAM pour les demandes EMRFS adressées à Amazon S3

Les rôles IAM pour EMRFS vous permettent de fournir différentes autorisations aux données EMRFS dans Amazon S3. Vous créez des mappages qui spécifient un rôle IAM utilisé pour les autorisations lorsqu'une demande d'accès contient un identifiant que vous spécifiez. L'identifiant peut être un utilisateur ou un rôle Hadoop, ou un préfixe Amazon S3.

Pour plus d'informations, consultez Configurer les rôles IAM pour les demandes EMRFS adressées à Amazon S3.

Spécification des rôles IAM pour EMRFS à l'aide duAWS CLI

Voici un exemple d'extrait JSON permettant de spécifier des rôles IAM personnalisés pour EMRFS au sein d'une configuration de sécurité. Il présente les mappages de rôles pour les trois types d'identificateurs différents, suivis d'une référence de paramètre.

{ "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" ] }] } } }
Paramètre Description

"AuthorizationConfiguration":

Obligatoire.

"EmrFsConfiguration":

Obligatoire. Contient des mappages de rôles.

  "RoleMappings":

Obligatoire. Contient une ou plusieurs définitions de mappage de rôles. Les mappages de rôles sont évalués dans l'ordre descendant dans lequel ils apparaissent. Si un mappage de rôles s'avère vrai pour un appel de données EMRFS dans Amazon S3, aucun autre mappage de rôles n'est évalué et EMRFS utilise le rôle IAM spécifié pour la demande. Les mappages de rôles se composent des paramètres requis suivants :

   "Role":

Spécifie l'identifiant ARN d'un rôle IAM au formatarn:aws:iam::account-id:role/role-name. Il s'agit du rôle IAM qu'Amazon EMR assume si la demande EMRFS adressée à Amazon S3 correspond à l'un desIdentifiersspécifiée.

   "IdentifierType":

Il peut avoir l'une des parties suivantes :

  • "User"indique que les identifiants sont un ou plusieurs utilisateurs Hadoop, qui peuvent être des utilisateurs de comptes Linux ou des utilisateurs principaux de Kerberos. Lorsque la demande EMRFS provient de l'utilisateur ou des utilisateurs spécifiés, le rôle IAM est assumé.

  • "Prefix"spécifie que l'identifiant est un emplacement Amazon S3. Le rôle IAM est assumé pour les appels vers l'emplacement ou les emplacements avec les préfixes spécifiés. Par exemple, le préfixe s3://mybucket/allumettes s3://mybucket/mydir ets3://mybucket/yetanotherdir.

  • "Group"indique que les identifiants sont un ou plusieursGroupes Hadoop. Le rôle IAM est assumé si la demande provient d'un utilisateur du ou des groupes spécifiés.

   "Identifiers":

Spécifie un ou plusieurs identifiants du type d'identifiant approprié. Séparez les différents identifiants par des virgules, sans espaces.

Configuration des demandes de service de métadonnées pour les instances Amazon EC2

Les métadonnées d'instance sont des données portant sur votre instance que vous pouvez utiliser pour configurer ou gérer l'instance en cours d'exécution. Vous pouvez accéder aux métadonnées d'instance à partir d'une instance en cours d'exécution en utilisant l'une des méthodes suivantes :

  • Service des métadonnées d'instance Version 1 (IMDSv1) - méthode de demande/réponse

  • Service des métadonnées d'instance Version 2 (IMDSv2) - méthode orientée session

Alors qu'Amazon EC2 prend en charge à la fois IMDSv1 et IMDSv2, Amazon EMR prend en charge IMDSv2 dans Amazon EMR 5.23.1, 5.27.1, 5.32 ou version ultérieure, et 6.2 ou version ultérieure. Dans ces versions, les composants Amazon EMR utilisent IMDSv2 pour tous les appels IMDS. Pour les appels IMDS dans le code de votre application, vous pouvez utiliser à la fois IMDSv1 et IMDSv2, ou configurer l'IMDS pour qu'il utilise uniquement l'IMDSv2 pour une sécurité accrue. Lorsque vous spécifiez que IMDSv2 doit être utilisé, IMDSv1 ne fonctionne plus.

Pour plus d'informations, veuillez consulter la rubriqueConfigurer le service des métadonnées d'instancedans leGuide de l'utilisateur Amazon EC2 pour les instances Linux.

Note

Dans les versions antérieures d'Amazon EMR 5.x ou 6.x, la désactivation d'IMDSv1 entraîne l'échec du démarrage du cluster, car les composants Amazon EMR utilisent IMDSv1 pour tous les appels IMDS. Lorsque vous désactivez IMDSv1, assurez-vous que tout logiciel personnalisé utilisant IMDSv1 est mis à jour vers IMDSv2.

Spécifier la configuration du service de métadonnées d'instance àAWS CLI

Voici un exemple d'extrait de code JSON pour spécifier le service de métadonnées d'instance (IMDS) Amazon EC2 (IMDS) dans une configuration de sécurité.

{ "InstanceMetadataServiceConfiguration" : { "MinimumInstanceMetadataServiceVersion": integer, "HttpPutResponseHopLimit": integer } }
Paramètre Description

"InstanceMetadataServiceConfiguration":

Obligatoire.

"MinimumInstanceMetadataServiceVersion":

Obligatoire. Spécifiez 1 ou 2. Une valeur de1autorise IMDSv1 et IMDSv2. Une valeur de2autorise uniquement IMDSv2.

"HttpPutResponseHopLimit":

Obligatoire. Limite de saut de réponse HTTP PUT souhaitée pour les requêtes de métadonnées d'instance. Plus le nombre est élevé, plus les demandes de métadonnées d'instance peuvent être envoyées. Par défaut: 1. Spécifiez un entier de1pour64.

Spécifier la configuration du service de métadonnées d'instance à l'aide

Vous pouvez configurer l'utilisation d'IMDS pour un cluster lorsque vous le lancez depuis la console Amazon EMR.


        					Configurations et contrôles de sécurité IMDS dans la console Amazon EMR

Pour configurer l'utilisation de l'IMDS à l'aide de la console :

  1. Lors de la création d'une nouvelle configuration de sécurité sur leConconfiguration de sécuritépage, sélectionnezConfiguration du service des métadonnées d'instance EC2en vertu deService de métadonnées d'instance EC2Configuration. Cette configuration est prise en charge uniquement dans Amazon EMR 5.23.1, 5.27.1, 5.32 ou version ultérieure, et 6.2 ou version ultérieure.

  2. PourVersion minimale du service de métadonnées d'instance, sélectionnez l'une des options suivantes :

    • Désactivez IMDSv1 et autorisez uniquement IMDSv2, si vous souhaitez autoriser uniquement IMDSv2 sur ce cluster. VoirInstance Metadata Service Version 2dans leGuide de l'utilisateur Amazon EC2 pour les instances Linux.

    • Autoriser IMDsv1 et IMDsv2 sur le cluster, si vous souhaitez autoriser IMDSv1 et IMDSv2 orientés session sur ce cluster.

  3. Pour IMDSv2, vous pouvez également configurer le nombre autorisé de sauts réseau pour le jeton de métadonnées en définissantLimite de sauts de réponse HTTPà un entier compris entre1et64.

Pour plus d'informations, veuillez consulter la rubriqueConfigurer le service des métadonnées d'instancedans leGuide de l'utilisateur Amazon EC2 pour les instances Linux.

VoirConfiguration des détails d'instanceetConfigurer le service des métadonnées d'instancedans leGuide de l'utilisateur Amazon EC2 pour les instances Linux.