Ce document explique comment utiliser Secret Manager comme magasin d'identifiants avec Dataproc sans serveur pour stocker et accéder de manière sécurisée aux données sensibles traitées par les charges de travail sans serveur.
Présentation
Secret Manager peut protéger vos données sensibles, telles que vos clés API, vos mots de passe et vos certificats. Vous pouvez l'utiliser pour gérer, accéder et auditer vos secrets dans Google Cloud.
Lorsque vous exécutez une charge de travail par lot Dataproc sans serveur, vous pouvez la configurer pour qu'elle utilise un secret Secret Manager à l'aide du fournisseur d'identifiants Secret Manager Dataproc.
Disponibilité
Cette fonctionnalité est disponible pour les versions d'exécution majeures Dataproc sans serveur pour Spark 1.2.29 ou ultérieure, 2.2.29 ou ultérieure.
Terminologie
Le tableau suivant décrit les termes utilisés dans ce document.
Terme | Description |
---|---|
Secret |
Un secret Secret Manager est un objet de projet global qui contient un ensemble de métadonnées et de versions de secrets. Vous pouvez les gérer et y accéder sous forme de chaînes de texte ou blobs binaires. |
Credential |
Dans Hadoop et d'autres charges de travail Dataproc, un identifiant se compose d'un nom (ID) et d'une valeur (mot de passe). Un ID d'identifiant et une valeur correspondent à un ID et une valeur de secret Secret Manager (version du secret). |
Utilisation
Vous pouvez configurer Hadoop et d'autres composants Open Source compatibles pour qu'ils fonctionnent avec Secret Manager en définissant les propriétés suivantes lorsque vous envoyez une charge de travail Dataproc sans serveur:
Chemin du fournisseur (obligatoire): la propriété "provider path" (
hadoop.security.credential.provider.path
) est une liste d'URI de fournisseur d'identifiants (un ou plusieurs) séparés par une virgule qui est parcourue pour résoudre un identifiant.--properties=hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID
scheme
dans le chemin d'accès du fournisseur indique le type de fournisseur d'identifiants. Les schémas Hadoop incluentjceks://
,user://
etlocaljceks://
. Utilisez le schémagsm://
pour rechercher des identifiants dans Secret Manager.
Remplacer l'opérateur point (facultatif): Secret Manager n'est pas compatible avec l'opérateur point(
.
) dans les noms de secrets, mais les clés d'identifiants des composants OSS peuvent contenir cet opérateur. Lorsque cette propriété est définie surtrue
. Vous pouvez remplacer les points(.
) par des traits d'union(-
) dans les noms d'identifiants. Par exemple, lorsque cette propriété est définie surtrue
, vous pouvez spécifier le nom d'identifianta.b.c
commea-b-c
lorsque vous le transmettez à Secret Manager.--properties=hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true
Version du secret (facultatif): les secrets de Secret Manager peuvent avoir plusieurs versions (valeurs). Utilisez cette propriété pour accéder à une version de secret. Par défaut, Secret Manager accède à la version
LATEST
, qui se résout à la dernière valeur du secret au moment de l'exécution. Il est recommandé de définir cette propriété pour un accès stable dans les environnements de production. Pour en savoir plus sur la création d'un secret, consultez la section Créer un secret et y accéder à l'aide de Secret Manager.--properties=hadoop.security.credstore.google-secret-manager.secret-version=1
Exécuter une charge de travail par lot avec le fournisseur d'identifiants Secret Manager
Pour envoyer une charge de travail par lot qui utilise le fournisseur d'identifiants du Gestionnaire de secrets, exécutez la commande suivante localement ou dans Cloud Shell.
gcloud dataproc batches submit spark \ --region=REGION \ --jars=JARS \ --class=MAIN_CLASS \ --properties="spark.hive.hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID,spark.hive.hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true" \ ...other flags as needed...
Remplacez les éléments suivants :
- REGION: région Compute Engine dans laquelle votre charge de travail s'exécute
- JARS: chemin d'accès au fichier JAR de la charge de travail
- MAIN_CLASS: classe principale du fichier JAR
- PROJECT_ID: ID de votre projet, indiqué dans la section Infos sur le projet du tableau de bord de la console Google Cloud