Création d'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
Ouvrez la console Amazon EMR à l'adressehttps://console.aws.amazon.com/emr
. -
Dans le volet de navigation, choisissez Security Configurations (Configurations de sécurité), puis Create security configuration (Créer une configuration de sécurité).
-
Dans Name (Nom), saisissez un nom pour la configuration de sécurité.
-
Choisissez les options pour Chiffrement et Authentification comme décrit dans les sections ci-dessous, puis cliquez sur Créer.
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.-
Pour
SecConfigName
, 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
, spécifiez une structure JSON en ligne ou le chemin d'accès à un fichier JSON local, commeSecConfigDef
. Les paramètres JSON définissent les options pour le Chiffrement, les Rôles IAM pour l'accès EMRFS à Amazon S3 et l'Authentification, comme décrit dans les sections suivantes.file://MySecConfig.json
aws emr create-security-configuration --name "
SecConfigName
" --security-configurationSecConfigDef
-
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 Fournir les clés de chiffrement des données au repos avec Amazon EMR et Fournir des certificats de 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 pour un chiffrement des données au repos incluent à la fois Amazon S3 avec EMRFS et le chiffrement de 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 de plus amples informations, veuillez consulter Chiffrer 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
Spécification d'options de chiffrement à l'aide de la console
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, les disques locaux ou les deux.
-
Sous Chiffrement des données S3, pour Mode de chiffrement, choisissez une valeur qui détermine comment Amazon EMR chiffre les données Amazon S3 avec EMRFS.
L'étape suivante varie selon le mode de chiffrement que vous avez choisi :
-
SSE-S3
Spécifie le chiffrement côté serveur avec des clés de chiffrement gérées par Amazon S3. Aucune autre action n'est requise de votre part, car Amazon S3 gère les clés pour vous.
-
SSE-KMS ou CSE-KMS
Spécifie le chiffrement côté serveur avec des clés gérées par AWS KMS (KMS-CSE) ou le chiffrement côté client avec des clés gérées par AWS KMS (CSE-KMS). Pour AWS KMS key, sélectionnez une clé. Cette clé doit être dans la même région que votre cluster EMR. Pour voir les exigences relatives aux clés, consultez Utilisation de la AWS KMS keys pour le chiffrement.
-
CSE-Custom
Spécifie le chiffrement côté client via une clé racine personnalisée côté client (CSE-custom). Pour Objet S3, saisissez l'emplacement dans Amazon S3 ou l'ARN Amazon S3 du fichier JAR de votre fournisseur de clés personnalisé. Puis, pour Key provider class (Classe de fournisseur de clé), saisissez le nom complet d'une classe déclarée dans votre application et qui implémente l'interface EncryptionMaterialsProvider.
-
-
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 une AWS KMS key. Pour AWS 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 Utilisation de la AWS KMS keys pour le chiffrement.
Chiffrement EBS
Lorsque vous spécifiez AWS KMS comme fournisseur de clés, vous pouvez activer le chiffrement EBS pour chiffrer le périphérique racine et les volumes de stockage EBS. Pour activer cette option, vous devez accorder au rôle de service EMR
EMR_DefaultRole
les autorisations nécessaires pour utiliser la AWS KMS key que 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é. Pour Objet S3, saisissez l'emplacement dans Amazon S3 ou l'ARN Amazon S3 du fichier JAR de votre fournisseur de clés personnalisé. Pour Key provider class (Classe de fournisseur de clé), saisissez le nom complet d'une classe déclarée dans votre application et qui implémente l'interface EncryptionMaterialsProvider. 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 Fournir des certificats de chiffrement des données en transit avec le chiffrement Amazon EMR pour plus de détails. Pour Objet S3, spécifiez l'emplacement dans Amazon S3 ou l'ARN Amazon S3 du champ du fichier zip.
-
Personnalisé
Sélectionnez cette option pour spécifier un fournisseur de certificats personnalisés, puis pour Objet S3, saisissez l'emplacement dans Amazon S3 ou l'ARN Amazon S3 du fichier JAR de votre fournisseur de clés personnalisé. Pour Key provider class (Classe de fournisseur de clé), saisissez le nom complet d'une classe déclarée dans votre application et qui implémente l'interface TLSArtifactsProvider.
-
Spécification d'options de chiffrement à l'aide de 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.
Exemple d'options de chiffrement des données en transit
L'exemple suivant illustre le scénario suivant :
-
Le chiffrement des données en transit est activé et le chiffrement des données au repos est désactivé.
-
Un fichier zip contenant les certificats dans Amazon S3 est utilisé en tant que fournisseur de clés (voir Fournir des certificats de chiffrement des données en transit avec le chiffrement Amazon EMR pour les exigences relatives aux certificats).
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 :
-
Le chiffrement des données en transit est activé et le chiffrement des données au repos est désactivé.
-
Un fournisseur de clés personnalisé est utilisé (voir Fournir des certificats de chiffrement des données en transit avec le chiffrement Amazon EMR pour les exigences relatives aux certificats).
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" } } } }'
Exemple 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é 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 contenant 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 contenant des certificats PEM dans Amazon S3.
-
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.
-
Plusieurs clés AWS KMS 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 de 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 de disque local est activé avec AWS KMS comme fournisseur de clés et 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 de disque local est activé avec AWS KMS comme fournisseur de clés et 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": true |
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": "PEM" |
"Custom" |
Specifies whether to use PEM certificates
referenced with a zipped file, or a Personnalisé
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. |
"S3Object" : " |
" |
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/artifacts/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" : " |
Required only if Personnalisé is specified for
CertificateProviderType .
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-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" : " |
Required only when either SSE-KMS or
CSE-KMS is specified for
EncryptionMode .
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" : " |
Required only when CSE-Custom is specified
for CertificateProviderType .
provides the location in Amazon S3 to a JAR file. The format can
be a path (for example,
s3://MyConfig/artifacts/MyKeyProvider.jar )
or an ARN (for example,
arn:aws:s3:::Code/MyKeyProvider.jar) . |
"EncryptionKeyProviderClass" : " |
Required only when CSE-Custom is specified
for EncryptionMode .
specifies a full class name of a class declared in the
application that implements the EncryptionMaterialsProvider
interface; for example,
. |
Paramètres de chiffrement de disque local | |
"LocalDiskEncryptionConfiguration" |
Specifies the key provider and corresponding values to be used for local disk encryption. |
"EnableEbsEncryption": |
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
Personnalisé is specified,
S3Object and
EncryptionKeyProviderClass values must be
specified. |
"AwsKmsKey : " |
Required only when AwsKms is specified for
Type .
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" : " |
Required only when CSE-Custom is specified
for CertificateProviderType .
provides the location in Amazon S3 to a JAR file. The format can
be a path (for example,
s3://MyConfig/artifacts/MyKeyProvider.jar )
or an ARN (for example,
arn:aws:s3:::Code/MyKeyProvider.jar) . |
|
Required only when Personnalisé is specified for
Type .
specifies a full class name of a class declared in the
application that implements the EncryptionMaterialsProvider
interface; for example,
. |
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 de plus amples informations, veuillez consulter Utilisation de Kerberos pour l'authentification avec Amazon EMR. Kerberos est uniquement disponible dans Amazon EMR version 5.10.0 et versions ulté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 sur le cluster, sinon une erreur se produira. |
||
Fournisseur |
KDC dédié du cluster |
Spécifie qu'Amazon EMR crée un KDC sur le nœud primaire de tout cluster utilisant cette configuration de sécurité. Vous spécifiez le nom de 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 de 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 les versions Amazon EMR 5.20.0 et supé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 de domaine et le mot de passe d'administrateur du KDC pour le KDC externe. |
||
Durée de vie du billet |
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 tickets est limitée pour des raisons de sécurité. Les applications et services de cluster renouvellent automatiquement les tickets après leur expiration. Les utilisateurs qui se connectent au cluster via SSH à l'aide d'informations d'identification Kerberos doivent exécuter |
||
Relation d'approbation inter-domaines |
Spécifie une confiance inter-domaines entre un KDC dédié au cluster sur des clusters utilisant cette configuration de sécurité et un KDC dans un autre domaine Kerberos. 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 dans l'autre domaine Kerberos est requise. Pour de plus amples informations, veuillez consulter Didacticiel : configuration d'une approbation inter-domaines avec un domaine Active Directory. |
||
Propriétés de confiance entre domaines |
Domaine |
Spécifie le nom de domaine Kerberos de l'autre domaine inclus dans la relation d'approbation. Par convention, les noms de domaine Kerberos sont identiques au nom de domaine, mais en majuscules. |
|
Domaine |
Spécifie le nom de domaine de l'autre domaine de la relation d'approbation. |
||
Serveur d'administration |
Spécifie le FQDN (nom de domaine complet) ou l'adresse IP du serveur d'administration de l'autre domaine inclus dans la relation d'approbation. Le serveur d'administration et le serveur KDC s'exécutent généralement sur le même poste avec le même FQDN, mais communiquent sur différents ports. Si aucun port n'est spécifié, le port 749 est utilisé (port Kerberos par défaut). Le cas échéant, vous pouvez spécifier le port (par exemple, |
||
serveur KDC |
Spécifie le FQDN (nom de domaine complet) ou l'adresse IP du serveur KDC de l'autre domaine inclus dans la relation d'approbation. Le serveur d'administration et le serveur KDC s'exécutent généralement sur le même poste avec le même FQDN, mais utilisent des ports différents. Si aucun port n'est spécifié, le port 88 est utilisé (port Kerberos par défaut). Le cas échéant, vous pouvez spécifier le port (par exemple, |
||
KDC externe |
Spécifie que le KDC externe du cluster est utilisé par le cluster. |
||
Propriétés de KDC externe |
Serveur d'administration |
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 le même poste avec le même FQDN, mais communiquent sur différents ports. Si aucun port n'est spécifié, le port 749 est utilisé (port Kerberos par défaut). Le cas échéant, vous pouvez spécifier le port (par exemple, |
|
serveur KDC |
Spécifie le nom de domaine complet (FQDN) du serveur KDC externe. Le serveur d'administration et le serveur KDC s'exécutent généralement sur le même poste avec le même FQDN, mais utilisent des ports différents. Si aucun port n'est spécifié, le port 88 est utilisé (port Kerberos par défaut). Le cas échéant, vous pouvez spécifier le port (par exemple, |
||
Intégration d'Active Directory |
Spécifie que l'authentification principale Kerberos est intégrée à un domaine Microsoft Active Directory. |
||
Propriétés de l'intégration d'Active Directory |
Domaine Active Directory |
Spécifie le nom de domaine Kerberos du domaine Active Directory. Par convention, les noms de domaine Kerberos sont généralement identiques au nom de domaine, mais en majuscules. |
|
Domaine Active Directory |
Spécifie le nom du domaine Active Directory. |
||
Serveur Active Directory |
Spécifie le nom de domaine complet (FQDN) du contrôleur de domaine Microsoft Active Directory. |
Spécification des paramètres Kerberos à l'aide de l'AWS 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.
Paramètre | Description | |||||
---|---|---|---|---|---|---|
|
Nécessaire pour Kerberos. Spécifie qu'une configuration d'authentification fait partie de cette configuration de sécurité. |
|||||
|
|
Nécessaire pour Kerberos. Spécifie les propriétés de configuration de Kerberos. |
||||
|
|
|
||||
"ClusterDedicatedKdcConfiguration": { |
Obligatoire lorsque |
|||||
|
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 tickets est limitée pour des raisons de sécurité. Les applications et services de cluster renouvellent automatiquement les tickets après leur expiration. Les utilisateurs qui se connectent au cluster via SSH à l'aide d'informations d'identification Kerberos doivent exécuter |
|||||
|
Spécifie une confiance inter-domaines entre un KDC dédié au cluster sur des clusters utilisant cette configuration de sécurité et un KDC dans un autre domaine Kerberos. 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 dans l'autre domaine Kerberos est requise. Pour de plus amples informations, veuillez consulter Didacticiel : configuration d'une approbation inter-domaines avec un domaine Active Directory. |
|||||
|
Spécifie le nom de domaine Kerberos de l'autre domaine inclus dans la relation d'approbation. Par convention, les noms de domaine Kerberos sont identiques au nom de domaine, mais en majuscules. |
|||||
|
Spécifie le nom de domaine de l'autre domaine de la relation d'approbation. |
|||||
|
Spécifie le FQDN (nom de domaine complet) ou l'adresse IP du serveur d'administration de l'autre domaine inclus dans la relation d'approbation. Le serveur d'administration et le serveur KDC s'exécutent généralement sur le même poste avec le même FQDN, mais communiquent sur différents ports. Si aucun port n'est spécifié, le port 749 est utilisé (port Kerberos par défaut). Le cas échéant, vous pouvez spécifier le port (par exemple, |
|||||
|
Spécifie le FQDN (nom de domaine complet) ou l'adresse IP du serveur KDC de l'autre domaine inclus dans la relation d'approbation. Le serveur d'administration et le serveur KDC s'exécutent généralement sur le même poste avec le même FQDN, mais utilisent des ports différents. Si aucun port n'est spécifié, le port 88 est utilisé (port Kerberos par défaut). Le cas échéant, vous pouvez spécifier le port (par exemple, |
|||||
|
||||||
|
||||||
"ExternalKdcConfiguration": { |
Obligatoire lorsque |
|||||
|
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 tickets est limitée pour des raisons de sécurité. Les applications et services de cluster renouvellent automatiquement les tickets après leur expiration. Les utilisateurs qui se connectent au cluster via SSH à l'aide d'informations d'identification Kerberos doivent exécuter |
|||||
|
Spécifie qu'un seul serveur KDC est référencé. |
|||||
"AdminServer": " |
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 le même poste avec le même FQDN, mais communiquent sur différents ports. Si aucun port n'est spécifié, le port 749 est utilisé (port Kerberos par défaut). Le cas échéant, vous pouvez spécifier le port (par exemple, |
|||||
"KdcServer": " |
Spécifie le nom de domaine complet (FQDN) du serveur KDC externe. Le serveur d'administration et le serveur KDC s'exécutent généralement sur le même poste avec le même FQDN, mais utilisent des ports différents. Si aucun port n'est spécifié, le port 88 est utilisé (port Kerberos par défaut). Le cas échéant, vous pouvez spécifier le port (par exemple, |
|||||
|
Spécifie que l'authentification principale Kerberos est intégrée à un domaine Microsoft Active Directory. |
|||||
|
|
Spécifie le nom de domaine Kerberos du domaine Active Directory. Par convention, les noms de domaine Kerberos sont généralement identiques au nom de domaine, mais en majuscules. |
||||
|
Spécifie le nom du domaine Active Directory. |
|||||
|
Spécifie le nom de domaine complet (FQDN) du contrôleur de domaine Microsoft Active Directory. |
|||||
|
||||||
|
||||||
|
||||||
|
Configuration de rôles IAM pour les demandes EMRFS à Amazon S3
Les rôles IAM pour EMRFS vous permettent de fournir différentes autorisations pour les 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 identificateur que vous spécifiez. L'identificateur peut être un utilisateur ou un rôle Hadoop, ou bien un préfixe Amazon S3.
Pour de plus amples informations, veuillez consulter Configuration de rôles IAM pour les demandes EMRFS à Amazon S3.
Spécification de rôles IAM pour EMRFS à l'aide de l'AWS CLI.
Vous trouverez ci-dessous un exemple d'extrait JSON permettant de spécifier des rôles IAM personnalisés pour EMRFS dans une configuration de sécurité. Il montre les mappages de rôles pour les trois types d'identifiants 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 |
---|---|
|
Obligatoire. |
|
Obligatoire. Contient des mappages de rôles. |
|
Obligatoire. Contient une ou plusieurs définitions de mappage de rôles. Les mappages de rôles sont évalués dans l'ordre d'apparition du haut vers le bas. Si un mappage de rôle est considéré comme vrai pour un appel de données EMRFS dans Amazon S3, aucun autre mappage de rôle n'est évalué et EMRFS utilise le rôle IAM spécifié pour la demande. Les mappages de rôles sont constitués des paramètres obligatoires suivants : |
|
Spécifie l'identifiant ARN d'un rôle IAM au format |
|
Les valeurs suivantes sont possibles :
|
|
Spécifie un ou plusieurs identifiants du type d'identifiant approprié. Séparez les identifiants multiples par des virgules sans espace. |
Configuration des demandes de service de métadonnées aux 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 utiliser uniquement IMDSv2 pour une sécurité accrue. Lorsque vous spécifiez que IMDSv2 doit être utilisé, IMDSv1 ne fonctionne plus.
Pour plus d'informations, consultez Configuration du service de métadonnées d'instance dans le Guide 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înait l'échec du démarrage du cluster, car les composants Amazon EMR utilisaient 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écification de la configuration du service de métadonnées d'instance à l'aide de l'AWS CLI
Vous trouverez ci-dessous un exemple d'extrait JSON pour spécifier le service de métadonnées d'instance (IMDS) d'Amazon EC2 dans une configuration de sécurité.
{ "InstanceMetadataServiceConfiguration" : { "MinimumInstanceMetadataServiceVersion": integer, "HttpPutResponseHopLimit": integer } }
Paramètre | Description |
---|---|
|
Obligatoire. |
|
Obligatoire. Spécifiez |
|
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: |
Spécification de la configuration du service de métadonnées d'instance à l'aide de la console
Vous pouvez configurer l'utilisation d'IMDS pour un cluster lorsque vous le lancez depuis la console Amazon EMR.
Pour configurer l'utilisation d'IMDS à l'aide de la console :
-
Lorsque vous créez une nouvelle configuration de sécurité sur la page Configurations de sécurité, sélectionnez Configurer le service de métadonnées d'instance EC2 sous le paramètre Service de métadonnées d'instance EC2. 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.
-
Pour l'option Version minimale du service de métadonnées d'instance, sélectionnez l'une des options suivantes :
-
Désactiver IMDSv1 et autoriser uniquement IMDSv2, si vous voulez autoriser uniquement IMDSv2 sur ce cluster. Consultez Passer à l'utilisation de Service des métadonnées d'instance version 2 dans le Guide de l'utilisateur Amazon EC2 pour les instances Linux.
-
Autoriser IMDSv1 et IMDSv2 sur le cluster, si vous voulez autoriser IMDSv1 et IMDSv2 orienté session sur ce cluster.
-
-
Pour IMDSv2, vous pouvez également configurer le nombre de sauts de réseau à réseau autorisés pour le jeton de métadonnées en définissant la limite de sauts de réponse put HTTP sur un entier compris entre
1
et64
.
Pour plus d'informations, consultez Configuration du service de métadonnées d'instance dans le Guide de l'utilisateur Amazon EC2 pour les instances Linux.
Consultez Configurer les détails de l'instance et Configurer le service de métadonnées d'instance dans le Guide de l'utilisateur Amazon EC2 pour les instances Linux.