Aller au contenu principal

Authentification

Cette page décrit les méthodes d'authentification courantes pour le connecteur Kinesis sur Databricks. Pour la liste complète des options Kinesis, voir Kinesis.

Authentification avec une connexion Unity Catalog

Dans Databricks Runtime 19 et versions ultérieures, Databricks recommande de s'authentifier auprès de Kinesis avec une connexion Unity Catalog. Une connexion fait référence à un certificat de service par son nom, donc vous n’incluez pas les clés d’accès ou les ARN de rôle dans vos Notebooks, queries ou Logs. Vous régez l’accès à la connexion avec les privilèges du Unity Catalog, comme tout autre sécurisé. Si vous avez besoin d'une méthode non prise en charge par une connexion, utilisez un identifiant de service ou une autre méthode. Pour plus d'informations, reportez-vous à la rubrique Connexions Unity Catalog.

Pour vous authentifier avec une connexion Unity Catalog, procédez comme suit :

  1. Créez un identifiant de service Databricks à l’aide d’un rôle IAM disposant des autorisations nécessaires pour accéder à Kinesis. Consultez Étape 1 : Créer un rôle IAM.

    • Confirmez que le rôle IAM associé à vos identifiants de service dispose des autorisations ListShards, GetRecords et GetShardIterator.
  2. Créez une connexion de type KINESIS qui référence l'identifiant de service.

    • Vous avez besoin du privilège CREATE CONNECTION sur le métastore.
    • Vous pouvez également créer la connexion dans Catalog Explorer. Cliquez sur Catalog > Create > Create a connection . Voir Create a connection.
    SQL
    CREATE CONNECTION IF NOT EXISTS <connection-name> TYPE KINESIS
    OPTIONS (aws_region '<aws-region>', credential '<service-credential-name>');
  3. Accordez aux utilisateurs ou aux groupes qui exécutent le Stream l’accès à la fois à la connexion et aux identifiants de service auxquels elle fait référence.

    SQL
    GRANT USE CONNECTION ON CONNECTION <connection-name> TO <principal>;
    GRANT ACCESS ON SERVICE CREDENTIAL <service-credential-name> TO <principal>;
  4. Pour exécuter un Stream en utilisant la connexion, définissez l'option de source databricks.connection sur le nom de votre connexion :

Python
df = (spark.readStream
.format("kinesis")
.option("databricks.connection", "<connection-name>")
.option("streamName", "<stream-name>")
.load()
)
remarque

Lorsque vous utilisez une connexion Unity Catalog, la connexion dispose de l'identifiant et de la région. Ne définissez pas les options Spark suivantes avec databricks.connection, sinon le stream échouera avec une erreur UC_CONNECTION_OPTION_CONFLICT :

  • serviceCredential
  • awsAccessKey et awsSecretKey
  • region
  • roleArn, roleExternalId et roleSessionName
  • endpoint et stsEndpoint

Un ARN de stream inclut une région, mais le connecteur l'ignore et utilise à la place le aws_region de la connexion. Définissez aws_region sur la région où se trouve votre stream.

S’authentifier avec un identifiant de service

Dans Databricks Runtime 16.1 et versions ultérieures, vous pouvez vous authentifier auprès de Kinesis avec un identifiant de service Databricks. Databricks recommande cette méthode dans Databricks Runtime 16.1 à 18. Dans Databricks Runtime 19 et versions ultérieures, utilisez un identifiant de service uniquement lorsqu'une connexion Unity Catalog ne correspond pas à votre scénario. Consultez Créer des identifiants de service.

Pour utiliser un identifiant de service, procédez comme suit :

  1. Créez un identifiant de service Databricks à l’aide d’un rôle IAM disposant des autorisations nécessaires pour accéder à Kinesis. Consultez Étape 1 : Créer un rôle IAM.
  2. Spécifiez le nom de l'identifiant de service avec l'option serviceCredential lors de la définition d'une lecture en streaming.
remarque

La source Kinesis nécessite les autorisations ListShards, GetRecords et GetShardIterator. Si vous rencontrez des exceptions Amazon: Access Denied, vérifiez que votre rôle IAM dispose de ces autorisations. Voir Contrôle de l'accès aux ressources Amazon Kinesis Data Stream à l'aide d'IAM.

Méthodes d’authentification alternatives

Dans Databricks Runtime 16.0 et versions antérieures, les identifiants de service Databricks ne sont pas disponibles. Databricks propose les méthodes d’authentification alternatives suivantes :

Profil d'instance

Attachez un profil d'instance lors de la configuration du compute. Voir Profils d'instance.

Les profils d’instance ne sont pas pris en charge en mode d’accès standard (anciennement mode accès partagé). Voir Exigences et limitations de compute standard.

Utiliser des clés d’accès

Définissez les options awsAccessKey et awsSecretKey.

Databricks recommande de stocker vos clés en utilisant les secrets Databricks. Voir Gestion des secrets.

Assumer un rôle IAM

Pour assumer un rôle IAM, définissez l'option roleArn sur l'ARN du rôle. Votre compute doit avoir l'autorisation d'assumer le rôle ; lancez donc le cluster avec cette autorisation ou définissez les options awsAccessKey et awsSecretKey. Vous pouvez éventuellement définir roleExternalId et roleSessionName.

Cette méthode prend en charge l’authentification inter-comptes. Pour plus d’informations, consultez Delegate Access Across AWS Accounts Using IAM Roles.