Stocker les données de configuration sensibles dans AWS Secrets Manager - 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.

Stocker les données de configuration sensibles dans AWS Secrets Manager

Les API opérations de EMR description et de liste Amazon qui émettent des données de configuration personnalisées (telles que DescribeCluster etListInstanceGroups) le font en texte clair. Amazon EMR s' AWS Secrets Manager y intègre afin que vous puissiez stocker vos données dans Secrets Manager et utiliser le secret ARN dans vos configurations. Ainsi, vous ne transmettez pas de données de configuration sensibles à Amazon EMR en texte brut et ne les exposez pas à des données externesAPIs. Si vous indiquez qu'une paire clé-valeur contient un ARN pour un secret stocké dans Secrets Manager, Amazon EMR récupère ce secret lorsqu'il envoie des données de configuration au cluster. Amazon EMR n'envoie pas l'annotation lorsqu'il utilise un outil externe APIs pour afficher la configuration.

Créer un secret

Pour créer un secret, suivez les étapes de la section Création d'un secret AWS Secrets Manager dans le Guide de l'utilisateur AWS Secrets Manager . Dans l'étape 3, vous devez choisir le champ de texte en clair pour saisir votre valeur sensible.

Notez que si Secrets Manager autorise un secret à contenir jusqu'à 65 536 octets, Amazon EMR limite la longueur combinée de la clé de propriété (à l'exception de l'annotation) et de la valeur secrète récupérée à 1 024 caractères.

Accordez EMR à Amazon l'accès pour récupérer le secret

Amazon EMR utilise un rôle IAM de service pour provisionner et gérer des clusters pour vous. Le rôle de service d'Amazon EMR définit les actions autorisées pour Amazon EMR lorsqu'il fournit des ressources et exécute des tâches de niveau de service qui ne sont pas effectuées dans le contexte d'une EC2 instance Amazon exécutée au sein d'un cluster. Pour plus d'informations sur les rôles de service, consultez Rôle de service pour Amazon EMR (EMRrôle) et Personnalisation IAM des rôles.

Pour permettre EMR à Amazon de récupérer la valeur secrète auprès de Secrets Manager, ajoutez la déclaration de politique suivante à votre EMR rôle Amazon lorsque vous lancez votre cluster.

{ "Sid":"AllowSecretsRetrieval", "Effect":"Allow", "Action":"secretsmanager:GetSecretValue", "Resource":[ "arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>" ] }

Si vous créez le secret avec une clé gérée par le client AWS KMS key, vous devez également ajouter une kms:Decrypt autorisation au EMR rôle Amazon pour la clé que vous utilisez. Pour plus d'informations, consultez Authentification et contrôle d'accès pour AWS Secrets Manager dans le Guide de l'utilisateur AWS Secrets Manager .

Utiliser le secret dans une classification de configuration

Vous pouvez ajouter l'EMR.secret@annotation à n'importe quelle propriété de configuration pour indiquer que sa paire clé-valeur contient un ARN pour un secret stocké dans Secrets Manager.

L'exemple suivant montre comment fournir un secret ARN dans une classification de configuration :

{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"<sensitive-access-key>", "EMR.secret@presto.s3.secret-key":"arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>" } }

Lorsque vous créez votre cluster et soumettez votre configuration annotée, Amazon EMR valide les propriétés de configuration. Si votre configuration est valide, Amazon EMR supprime l'annotation de la configuration et récupère le secret auprès de Secrets Manager pour créer la configuration réelle avant de l'appliquer au cluster :

{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"<sensitive-access-key>", "presto.s3.secret-key":"<my-secret-key-retrieved-from-Secrets-Manager>" } }

Lorsque vous appelez une action telle queDescribeCluster, Amazon EMR renvoie la configuration actuelle de l'application sur le cluster. Si une propriété de configuration d'application est marquée comme contenant un secretARN, la configuration d'application renvoyée par l'DescribeClusterappel contient la valeur secrète ARN et non la valeur secrète. Cela garantit que la valeur secrète n'est visible que sur le cluster :

{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"<sensitive-access-key>", "presto.s3.secret-key":"arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>" } }

Mettre à jour la valeur d'un secret

Amazon EMR récupère la valeur secrète d'une configuration annotée chaque fois que le groupe d'instances attaché démarre, se reconfigure ou se redimensionne. Vous pouvez utiliser Secrets Manager pour modifier la valeur d'un secret utilisé dans la configuration d'un cluster en cours d'exécution. Dans ce cas, vous pouvez envoyer une demande de reconfiguration à chaque groupe d'instances pour lequel vous souhaitez recevoir la valeur mise à jour. Pour plus d'informations sur la façon de reconfigurer un groupe d'instances et sur les éléments à prendre en compte lorsque vous le faites, consultez Reconfigurer un groupe d'instances dans un cluster en cours d'exécution.