Étendues des secrets

La gestion des secrets commence par la création d’une étendue de secrets. Une étendue de secrets est une collection de secrets identifiée par un nom. Un espace de travail est limité à un maximum de 100 étendues des secrets.

Notes

Databricks recommande d’aligner les étendues secrètes sur des rôles ou des applications plutôt que sur des individus.

Vue d’ensemble

Il existe deux types d’étendues des secrets : Azure Key Vault et Databricks.

Étendues Azure Key Vault

Pour référencer des secrets stockés dans un Azure Key Vault, vous pouvez créer une étendue de secrets sauvegardée par Azure Key Vault. Vous pouvez ensuite tirer parti de tous les secrets de l’instance Key Vault correspondante à partir de cette étendue de secrets. Étant donné que l’étendue de secrets Azure Key Vault est une interface en lecture seule du Key Vault, les opérations PutSecretDeleteSecretAPI Secrets 2.0 ne sont pas autorisées. Pour gérer les secrets dans Azure Key Vault, vous devez utiliser l’API REST SetSecret Azure ou l’interface utilisateur du Portail Azure.

Étendues Databricks

Une étendue de secrets Databricks est stockée dans (sauvegardée par) une base de données chiffrée appartenant à et gérée par Azure Databricks. Nom de l’étendue de secrets :

  • Doit être unique dans un espace de travail.
  • doit être composé de caractères alphanumériques, de tirets, de traits de soulignement et de points, et ne doit pas dépasser 128 caractères.

Les noms ne sont pas considérés comme sensibles et sont lisibles par tous les utilisateurs de l’espace de travail.

Vous créez une étendue de secrets Databricks à l’aide de l'interface CLI Databricks (version 0.7.1 et ultérieures). Vous pouvez également utiliser l’API Secrets 2.0.

Autorisations d’étendue

Les étendues sont créées avec des autorisations contrôlées par des ACL. Par défaut, les étendues sont créées avec l’autorisation MANAGE pour l’utilisateur qui a créé l’étendue (le « créateur »), ce qui permet au créateur de lire les secrets dans l’étendue, d’écrire des secrets dans l’étendue et de modifier les listes de contrôle d’accès pour l’étendue. Si votre compte dispose du Plan Premium, vous pouvez attribuer des autorisations précises à tout moment après avoir créé l’étendue. Pour plus d’informations, consultez Contrôle d'accès aux secrets.

Vous pouvez également remplacer la valeur par défaut et accorder explicitement l’autorisation MANAGE à tous les utilisateurs lorsque vous créez l’étendue. En réalité, vous devez le faire si votre compte ne dispose pas du Plan Premium.

Meilleures pratiques

En tant que responsable d’équipe, vous souhaiterez peut-être créer des étendues différentes pour les informations d’identification Azure Synapse Analytics et Stockage Blob Azure, puis fournir aux différents sous-groupes de votre équipe un accès à ces étendues. Vous devez réfléchir à la façon d’y parvenir à l’aide des différents types d’étendues :

  • Si vous utilisez une étendue Databricks et ajoutez les secrets dans ces deux étendues, les secrets seront différents (Azure Synapse Analytics dans l’étendue 1 et Stockage Blob Azure dans l’étendue 2).
  • Si vous utilisez une étendue Azure Key Vault avec chaque étendue référençant un Azure Key Vault différent et que vous ajoutez vos secrets à ces deux Azure Key Vaults, les jeux de secrets seront différents (Azure Synapse Analytics dans l’étendue 1 et Stockage Blob Azure dans l’étendue 2). Celles-ci fonctionneront comme des étendues Databricks.
  • Si vous utilisez deux étendues Azure Key Vault avec les deux étendues référençant le même Azure Key Vault et que vous ajoutez vos secrets à cet Azure Key Vault, tous les secrets Azure Synapse Analytics et Stockage Blob Azure seront disponibles. Dans la mesure où les listes de contrôle d’accès sont au niveau de l’étendue, tous les membres des deux sous-groupes voient tous les secrets. Cette organisation ne répond pas à votre cas d’usage de restriction de l’accès à un jeu de secrets pour chaque groupe.

Créer une étendue de secrets Azure Key Vault

Vous pouvez créer une étendue de secrets Azure Key Vault à l’aide de l’interface utilisateur ou à l’aide de l’interface CLI Databricks.

Créer une étendue de secrets Azure Key Vault à l’aide de l’interface utilisateur

  1. Vérifiez que vous disposez de l’autorisation Contributeur sur l’instance Azure Key Vault que vous souhaitez utiliser pour sauvegarder l’étendue de secrets.

    Si vous n’avez pas d’instance Key Vault, suivez les instructions dans Démarrage rapide : créer un Key Vault à l’aide du Portail Azure.

  2. Atteindre https://<databricks-instance>#secrets/createScope. Cette URL respecte la casse ; l’étendue dans createScope doit être en majuscules.

    Create scope

  3. Entrez le nom de l’étendue de secrets. Les noms d’étendues de secrets ne respectent pas la casse.

  4. Utilisez la liste déroulante Gérer le principal pour spécifier si Tous les utilisateurs disposent de l’autorisation MANAGE pour cette étendue de secrets ou uniquement le Créateur de l’étendue de secrets (autrement dit, vous).

    L’autorisation MANAGE permet aux utilisateurs de lire et d’écrire dans cette étendue de secrets et, dans le cas de comptes du Plan Premium, de modifier les autorisations pour l’étendue.

    Votre compte doit disposer du Plan Premium pour vous permettre de sélectionner Créateur. L’approche recommandée est la suivante : octroyez l’autorisation MANAGE au Créateur lorsque vous créez l’étendue de secrets, puis attribuez des autorisations d’accès plus granulaires après avoir testé l’étendue. Pour obtenir un exemple de workflow, consultez Exemple de workflow de secret.

    Si votre compte dispose du plan Standard, vous devez définir l'autorisation MANAGE sur le groupe « Tous les utilisateurs ». Si vous sélectionnez Créateur ici, un message d’erreur s’affiche lorsque vous essayez d’enregistrer l’étendue.

    Pour plus d’informations sur l'autorisation MANAGE, consultez Contrôle d'accès aux secrets.

  5. Entrez le nom DNS (par exemple, https://databrickskv.vault.azure.net/) et l'ID de ressource, par exemple :

    /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKV
    

    Ces propriétés sont disponibles dans l’onglet Propriétés d’un Azure Key Vault dans votre Portail Azure.

    Azure Key Vault Properties tab

  6. Cliquez sur le bouton Créer.

  7. Utilisez la commande d’interface CLI Databricksdatabricks secrets list-scopes pour vérifier que l’étendue a bien été créée.

Pour obtenir un exemple d’utilisation de secrets lors de l’accès à Stockage Blob Azure, consultez Monter un conteneur Stockage Blob Azure.

Créer une étendue de secrets Azure Key Vault à l’aide de l’interface CLI Databricks

  1. Installez l’interface CLI et configurez-la pour qu’elle utilise un jeton Azure Active Directory (Azure AD) pour l’authentification.

    Important

    Vous avez besoin d’un jeton utilisateur Azure AD pour créer une étendue de secrets Azure Key Vault avec l’interface CLI Databricks. Vous ne pouvez pas utiliser un jeton d’accès personnel Azure Databricks ou un jeton d’application Azure AD qui appartient à un principal de service.

    Si le coffre de clés existe dans un locataire différent de l’espace de travail Azure Databricks, l’utilisateur Azure AD qui crée l’étendue de secrets doit disposer de l’autorisation pour créer des principaux de service dans le locataire du coffre de clés. Sinon, l’erreur suivante s’affiche :

    Unable to grant read/list permission to Databricks service principal to KeyVault 'https://xxxxx.vault.azure.net/': Status code 403, {"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient privileges to complete the operation."},"requestId":"XXXXX","date":"YYYY-MM-DDTHH:MM:SS"}}
    
  2. Créer l’étendue Azure Key Vault :

    databricks secrets create-scope --scope <scope-name> --scope-backend-type AZURE_KEYVAULT --resource-id <azure-keyvault-resource-id> --dns-name <azure-keyvault-dns-name>
    

    Par défaut, les étendues sont créées avec l’autorisation MANAGE pour l’utilisateur qui a créé l’étendue. Si votre compte ne dispose pas du Plan Premium, vous devez remplacer cette valeur par défaut et octroyer explicitement l’autorisation MANAGE au groupe users (tous les utilisateurs) lors de la création de l’étendue :

     databricks secrets create-scope --scope <scope-name> --scope-backend-type AZURE_KEYVAULT --resource-id <azure-keyvault-resource-id> --dns-name <azure-keyvault-dns-name> --initial-manage-principal users
    

    Si votre compte se trouve dans le Plan Premium, vous pouvez modifier les autorisations à tout moment après avoir créé l’étendue. Pour plus d’informations, consultez Contrôle d'accès aux secrets.

    Une fois que vous avez créé une étendue de secrets Databricks, vous pouvez ajouter des secrets.

Pour obtenir un exemple d’utilisation de secrets lors de l’accès à Stockage Blob Azure, consultez Monter un conteneur Stockage Blob Azure.

Créer une étendue de secrets reposant sur Databricks

Les noms d’étendues de secrets ne respectent pas la casse.

Pour créer une étendue à l’aide de l’interface CLI Databricks :

databricks secrets create-scope --scope <scope-name>

Par défaut, les étendues sont créées avec l’autorisation MANAGE pour l’utilisateur qui a créé l’étendue. Si votre compte ne dispose pas du Plan Premium, vous devez remplacer cette valeur par défaut et octroyer explicitement l’autorisation MANAGE à « utilisateurs » (tous les utilisateurs) lors de la création de l’étendue :

databricks secrets create-scope --scope <scope-name> --initial-manage-principal users

Vous pouvez également créer une étendue de secrets Databricks à l’aide de l’opération Put secret de l’API Secrets.

Si votre compte dispose du Plan Premium, vous pouvez modifier les autorisations à tout moment après avoir créé l’étendue. Pour plus d’informations, consultez Contrôle d'accès aux secrets.

Une fois que vous avez créé une étendue de secrets Databricks, vous pouvez ajouter des secrets.

Lister les étendues de secrets

Pour dresser la liste des étendues existantes dans un espace de travail à l’aide de l’interface CLI :

databricks secrets list-scopes

Vous pouvez également dresser la liste des étendues existantes à l’aide de l’opération List secrets de l’API Secrets.

Supprimer une étendue de secrets

La suppression d’une étendue de secrets entraîne la suppression de tous les secrets et ACL appliqués à l’étendue. Pour supprimer une étendue à l’aide de l’interface CLI :

databricks secrets delete-scope --scope <scope-name>

Vous pouvez également supprimer une étendue de secrets à l’aide de l’opération Delete secret scope de l’API Secrets.