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

Amazon EMR décrit et répertorie les opérations d'API qui émettent des données de configuration personnalisées (telles que DescribeCluster et ListInstanceGroups) en texte clair. Amazon EMR s'intègre à AWS Secrets Manager afin que vous puissiez stocker vos données dans Secrets Manager et utiliser l'ARN secret dans vos configurations. De cette manière, vous ne transmettez pas de données de configuration sensibles à Amazon EMR en clair et ne les exposez pas à des données de configuration sensibles à Amazon EMR en clair et ne les exposez pas à des données externes. APIs 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 les données de configuration au cluster. Amazon EMR n'envoie pas l'annotation lorsqu'il utilise une option 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 à 1024 caractères.

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

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

Pour permettre à Amazon EMR de récupérer la valeur secrète depuis Secrets Manager, ajoutez la déclaration de politique suivante à votre rôle Amazon EMR 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 gérée par le client AWS KMS key, vous devez également ajouter une kms:Decrypt autorisation au rôle Amazon EMR 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'annotation EMR.secret@ à 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 ARN secret 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 que DescribeCluster, 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 ARN secret, la configuration d'application renvoyée par l'appel DescribeCluster contient l'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.