Aller au contenu principal

Créez un Workspace avec des configurations AWS manuelles

Déployer un workspace Databricks classique à l'aide de ressources AWS créées manuellement. Utilisez cette méthode lorsque vous souhaitez utiliser vos propres Ressources AWS ou avez besoin de configurations personnalisées, telles que votre propre Virtual Private Cloud (VPC), des stratégies IAM spécifiques ou des compartiments S3 préexistants.

Pour la plupart des déploiements, Databricks recommande d'utiliser la configuration automatisée, qui utilise la délégation temporaire AWS IAM pour provisionner automatiquement toutes les ressources requises.

Exigences

Pour créer un workspace avec une configuration manuelle, vous devez :

  • Soyez administrateur de compte dans votre compte Databricks.
  • Avoir les autorisations de provisionnement des rôles IAM, des compartiments S3 et des politiques d’accès dans votre compte AWS.
  • Disposez d'un Virtual Private Cloud (VPC) et d'une passerelle NAT disponibles dans votre compte AWS, dans la région du workspace. Vous pouvez consulter vos quotas disponibles et demander des augmentations à l'aide de la console AWS Service Quotas.
  • Faites activer l’Endpoint STS pour us-west-2. Pour plus de détails, consultez la documentation AWS.

Créez un workspace Databricks avec des configurations AWS manuelles

Pour créer un Workspace avec des ressources AWS configurées manuellement :

  1. Accédez à la console du compte et cliquez sur l'icône Workspace .
  2. Cliquez sur Créer un Workspace .
  3. Sous Informations de base , confirmez le nom et la région du workspace.
  4. Dans la liste déroulante Identifiants de compute , sélectionnez ou créez les identifiants de compute du Workspace.
  5. Dans le menu déroulant Configuration réseau , sélectionnez ou créez la configuration réseau du workspace. Ceci est défini sur Virtual Private Cloud (VPC) géré par Databricks par default. Pour créer un nouveau Virtual Private Cloud (VPC) géré par le client, consultez Configurer un VPC géré par le client.
  6. Dans la liste déroulante Stockage du Workspace , sélectionnez ou créez une configuration de stockage du Workspace.
  7. (Facultatif) Le paramètre Metastore vous permet de choisir le metastore que votre workspace doit utiliser. Par default, le métastore est automatiquement sélectionné si un métastore existe déjà dans la région du Workspace. S'il s'agit du premier Workspace que vous déployez dans une région, le métastore est créé automatiquement.
  8. (Facultatif) Dans la liste déroulante Paramètre d'accès privé , sélectionnez ou créez une configuration de Link privé. Pour activer PrivateLink, vous devez d'abord créer les Endpoint Virtual Private Cloud (VPC) régionaux requis et les enregistrer dans votre configuration réseau. Consultez Paramètres d'accès privé.
  9. (Facultatif) Sous Avancé , vous pouvez configurer des paramètres avancés pour votre Workspace. Voir Configurations avancées.
  10. Cliquez sur Créer un workspace . Vous êtes automatiquement redirigé vers la page des détails du workspace.

Créer une configuration d'identifiant

La configuration des identifiants donne à Databricks l'accès pour lancer les ressources de compute dans votre compte AWS. Cette étape vous demande de créer un nouveau rôle IAM inter-comptes avec une stratégie d'accès.

Étape 1 : Créer un rôle IAM inter-comptes

  1. Obtenez votre ID de compte Databricks. Consultez Localisez votre ID de compte.
  2. Connectez-vous à votre console AWS en tant qu'utilisateur disposant de privilèges d'administrateur et accédez à la console IAM .
  3. Cliquez sur l’onglet tab dans la barre latérale.
  4. Cliquez sur Créer un rôle .
    1. Dans **Sélectionner le type d'entité de confiance**, cliquez sur la vignette **compte AWS**.
    2. Sélectionnez la case à cocher Autre compte AWS .
    3. Dans le champ ID du compte, saisissez l'ID de compte Databricks 414351767826. Ce n'est pas l'ID du compte que vous avez copié depuis la console de compte Databricks. Si vous utilisez Databricks sur AWS GovCloud, utilisez l'ID de compte Databricks 044793339203 pour AWS GovCloud ou 170661010020 pour AWS GovCloud DoD.
    4. Sélectionnez la case à cocher Exiger un ID externe .
    5. Dans le champ ID externe , saisissez votre ID de compte Databricks, que vous avez copié depuis la console de compte Databricks.
    6. Cliquez sur le bouton Suivant .
    7. Sur la page Ajouter des autorisations , cliquez sur le bouton Suivant . Vous devriez maintenant être sur la page Nommer, réviser et créer .
    8. Dans le champ Nom du rôle , saisissez un nom de rôle.
    9. Cliquez sur Créer un rôle . La liste des rôles apparaît.

Étape 2 : Créez une politique d'accès

La politique d’accès que vous ajoutez au rôle dépend de votre type de déploiement Amazon VPC (Virtual Private Cloud). Pour obtenir des informations sur la façon dont Databricks utilise chaque autorisation, consultez Autorisations dans les rôles IAM inter-comptes.

  1. Dans la section **Rôles** de la console **IAM**, cliquez sur le rôle IAM que vous avez créé à l'étape 1.
  2. Cliquez sur le menu déroulant Ajouter des autorisations et sélectionnez Créer une politique en ligne .
  3. Dans l’éditeur de stratégies, cliquez sur l’onglet JSON .
  4. Copiez et collez la politique d'accès appropriée à votre type de déploiement :

Un Virtual Private Cloud (VPC) unique que Databricks crée et configure dans votre compte AWS.

JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1403287045000",
"Effect": "Allow",
"Action": [
"ec2:AllocateAddress",
"ec2:AssignPrivateIpAddresses",
"ec2:AssociateDhcpOptions",
"ec2:AssociateIamInstanceProfile",
"ec2:AssociateRouteTable",
"ec2:AttachInternetGateway",
"ec2:AttachVolume",
"ec2:AuthorizeSecurityGroupEgress",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:CancelSpotInstanceRequests",
"ec2:CreateDhcpOptions",
"ec2:CreateFleet",
"ec2:CreateInternetGateway",
"ec2:CreateLaunchTemplate",
"ec2:CreateLaunchTemplateVersion",
"ec2:CreateNatGateway",
"ec2:CreateRoute",
"ec2:CreateRouteTable",
"ec2:CreateSecurityGroup",
"ec2:CreateSubnet",
"ec2:CreateTags",
"ec2:CreateVolume",
"ec2:CreateVpc",
"ec2:CreateVpcEndpoint",
"ec2:DeleteDhcpOptions",
"ec2:DeleteFleets",
"ec2:DeleteInternetGateway",
"ec2:DeleteLaunchTemplate",
"ec2:DeleteLaunchTemplateVersions",
"ec2:DeleteNatGateway",
"ec2:DeleteRoute",
"ec2:DeleteRouteTable",
"ec2:DeleteSecurityGroup",
"ec2:DeleteSubnet",
"ec2:DeleteTags",
"ec2:DeleteVolume",
"ec2:DeleteVpc",
"ec2:DeleteVpcEndpoints",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeFleetHistory",
"ec2:DescribeFleetInstances",
"ec2:DescribeFleets",
"ec2:DescribeIamInstanceProfileAssociations",
"ec2:DescribeInstanceStatus",
"ec2:DescribeInstances",
"ec2:DescribeInternetGateways",
"ec2:DescribeLaunchTemplates",
"ec2:DescribeLaunchTemplateVersions",
"ec2:DescribeNatGateways",
"ec2:DescribePrefixLists",
"ec2:DescribeReservedInstancesOfferings",
"ec2:DescribeRouteTables",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSpotInstanceRequests",
"ec2:DescribeSpotPriceHistory",
"ec2:DescribeSubnets",
"ec2:DescribeVolumes",
"ec2:DescribeVpcs",
"ec2:DetachInternetGateway",
"ec2:DisassociateIamInstanceProfile",
"ec2:DisassociateRouteTable",
"ec2:GetLaunchTemplateData",
"ec2:GetSpotPlacementScores",
"ec2:ModifyFleet",
"ec2:ModifyLaunchTemplate",
"ec2:ModifyVpcAttribute",
"ec2:ReleaseAddress",
"ec2:ReplaceIamInstanceProfileAssociation",
"ec2:RequestSpotInstances",
"ec2:RevokeSecurityGroupEgress",
"ec2:RevokeSecurityGroupIngress",
"ec2:RunInstances",
"ec2:TerminateInstances"
],
"Resource": ["*"]
},
{
"Effect": "Allow",
"Action": ["iam:CreateServiceLinkedRole", "iam:PutRolePolicy"],
"Resource": "arn:aws:iam::*:role/aws-service-role/spot.amazonaws.com/AWSServiceRoleForEC2Spot",
"Condition": {
"StringLike": {
"iam:AWSServiceName": "spot.amazonaws.com"
}
}
}
]
}
  1. Cliquez sur Vérifier la politique .
  2. Dans le champ Nom , entrez un nom de stratégie.
  3. Cliquez sur Créer une politique .
  4. (Facultatif) Si vous utilisez des politiques de contrôle de service pour refuser certaines actions au niveau du compte AWS, assurez-vous que sts:AssumeRole est sur liste blanche afin que Databricks puisse endosser le rôle intercomptes.
  5. Dans le résumé du rôle, copiez l' ARN du rôle à coller dans l'étape de configuration des identifiants.

Étape 3 : créer la configuration des identifiants

La configuration des identifiants est un objet de configuration Databricks qui représente le rôle IAM que vous avez créé lors de l'étape précédente.

Pour créer une configuration d'identifiant :

  1. Lors de la création du nouveau Workspace, dans le menu déroulant Identifiant cloud , sélectionnez Ajouter un identifiant cloud .
  2. Sélectionnez Ajouter manuellement .
  3. Dans le champ Nom des informations d'identification cloud , saisissez un nom lisible par l'homme pour votre nouvelle configuration d'informations d'identification.
  4. Dans le champ **ARN de rôle**, collez l'ARN de rôle que vous avez copié à l'étape précédente.
  5. Cliquez sur **OK**.

Databricks valide la configuration des informations d'identification au cours de cette étape. Les erreurs possibles peuvent inclure un ARN invalide ou des autorisations incorrectes pour le rôle, entre autres.

Créer une configuration de stockage

À l’étape de configuration du stockage, vous créez un bucket de stockage pour stocker les assets de votre workspace Databricks, tels que les données, les bibliothèques et les logs. C’est aussi là que le catalogue par default du Workspace est stocké. Dans le cadre de la configuration de stockage, vous créez également un rôle IAM que Databricks utilise pour accéder à l'emplacement de stockage.

Étape 1 : Créer un compartiment S3

  1. Connectez-vous à votre console AWS en tant qu'utilisateur disposant de privilèges d'administrateur et accédez au service S3 .

  2. Cliquez sur le bouton Créer un compartiment .

  3. Saisissez un nom pour le compartiment.

  4. Sélectionnez la région AWS que vous utiliserez pour le déploiement de votre workspace Databricks.

  5. Cliquez sur Créer un compartiment .

  6. Cliquez sur l'onglet tab .

  7. Dans la section Politique de compartiment , cliquez sur Modifier .

  8. Ajoutez la politique de compartiment suivante, en remplaçant <BUCKET-NAME> par le nom de votre compartiment et <YOUR-DATABRICKS-ACCOUNT-ID> par votre ID de compte Databricks.

    JSON
    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Sid": "Grant Databricks Access",
    "Effect": "Allow",
    "Principal": {
    "AWS": "arn:aws:iam::414351767826:root"
    },
    "Action": [
    "s3:GetObject",
    "s3:GetObjectVersion",
    "s3:PutObject",
    "s3:DeleteObject",
    "s3:ListBucket",
    "s3:GetBucketLocation"
    ],
    "Resource": ["arn:aws:s3:::<BUCKET-NAME>/*", "arn:aws:s3:::<BUCKET-NAME>"],
    "Condition": {
    "StringEquals": {
    "aws:PrincipalTag/DatabricksAccountId": ["<YOUR-DATABRICKS-ACCOUNT-ID>"]
    }
    }
    },
    {
    "Sid": "Prevent DBFS from accessing Unity Catalog metastore",
    "Effect": "Deny",
    "Principal": {
    "AWS": "arn:aws:iam::414351767826:root"
    },
    "Action": ["s3:*"],
    "Resource": ["arn:aws:s3:::<BUCKET-NAME>/unity-catalog/*"]
    }
    ]
    }
  9. Enregistrer le compartiment.

Étape 2 : Créez un rôle IAM avec une politique d'approbation personnalisée

Ce rôle IAM et cette politique de confiance établissent une relation de confiance inter-comptes afin que Databricks puisse accéder aux données du compartiment S3 au nom des utilisateurs Databricks. L'ARN dans la section Principal est une valeur statique qui fait référence à un rôle créé par Databricks. L'ARN est légèrement différent si vous utilisez Databricks sur AWS GovCloud.

  1. Dans votre compte AWS, créez un rôle IAM avec une politique de confiance personnalisée .

  2. Dans le champ Politique d'approbation personnalisée , collez le JSON de politique suivant :

    La politique définit l'ID externe sur 0000 comme espace réservé. Vous mettrez à jour ceci avec l’ID de compte de votre compte Databricks à une étape ultérieure.

JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": ["arn:aws:iam::414351767826:role/unity-catalog-prod-UCMasterRole-14S5ZJVKOTYTL"]
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "0000"
}
}
}
]
}
  1. Enregistrez le rôle IAM.

    Maintenant que vous avez créé le rôle, vous devez mettre à jour sa politique d'approbation pour qu'il puisse s'auto-assumer.

  2. Dans le rôle IAM que vous venez de créer, accédez à l'onglet Relations de confiance et modifiez la politique de relation de confiance comme suit, en remplaçant les valeurs <YOUR-AWS-ACCOUNT-ID>, <THIS-ROLE-NAME> et <YOUR-DATABRICKS-ACCOUNT-ID>.

JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::414351767826:role/unity-catalog-prod-UCMasterRole-14S5ZJVKOTYTL",
"arn:aws:iam::<YOUR-AWS-ACCOUNT-ID>:role/<THIS-ROLE-NAME>"
]
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "<YOUR-DATABRICKS-ACCOUNT-ID>"
}
}
}
]
}
  1. Ignorer la configuration de la politique d’autorisations. Vous reviendrez pour l’ajouter à une étape ultérieure.

  2. Copiez l'ARN du rôle IAM que vous collerez à l'étape de configuration du stockage.

Étape 3 : Créez une politique IAM pour accorder un accès en lecture et écriture

  1. Créez une stratégie IAM dans le même compte que le compartiment S3, en remplaçant les valeurs suivantes :

    • <BUCKET>: Nom du compartiment S3.
    • <AWS-ACCOUNT-ID>: L'Identifiant du compte de votre compte AWS (pas votre compte Databricks).
    • <AWS-IAM-ROLE-NAME>: Le nom du rôle IAM AWS que vous avez créé à l'étape précédente.
    • <KMS-KEY> (Facultatif) : Si le chiffrement est activé, fournissez le nom de la clé KMS qui chiffre le contenu du compartiment S3. Si le chiffrement est désactivé, supprimez l'intégralité de la section KMS de la politique IAM.

    Cette politique IAM octroie un accès en lecture et en écriture. Vous pouvez également créer une stratégie qui accorde un accès en lecture uniquement. Cependant, cela peut être inutile, car vous pouvez marquer l'identifiant de stockage comme lecture seule, et tout accès en écriture accordé par ce rôle IAM sera ignoré. Si vous avez besoin d'une stratégie IAM plus restrictive pour Unity Catalog, contactez votre équipe de compte Databricks pour obtenir de l'aide.

    JSON
    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Effect": "Allow",
    "Action": ["s3:GetObject", "s3:PutObject", "s3:DeleteObject"],
    "Resource": "arn:aws:s3:::<BUCKET>/unity-catalog/*"
    },
    {
    "Effect": "Allow",
    "Action": ["s3:ListBucket", "s3:GetBucketLocation"],
    "Resource": "arn:aws:s3:::<BUCKET>"
    },
    {
    "Action": ["kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*"],
    "Resource": ["arn:aws:kms:<KMS-KEY>"],
    "Effect": "Allow"
    },
    {
    "Action": ["sts:AssumeRole"],
    "Resource": ["arn:aws:iam::<AWS-ACCOUNT-ID>:role/<AWS-IAM-ROLE-NAME>"],
    "Effect": "Allow"
    }
    ]
    }
remarque

Si vous activez des fonctionnalités AWS qui étiquettent les objets S3 dans ce compartiment (par exemple, Amazon GuardDuty), vous devez également ajouter s3:GetObjectTagging et s3:PutObjectTagging à cette politique afin d'éviter les erreurs AccessDenied intermittentes sur les opérations CopyObject de Databricks.

  1. Créer une politique IAM distincte pour les événements de fichier dans le même compte que le compartiment S3.
remarque

Si vous n'accordez pas à Databricks l'accès pour configurer les événements de fichiers en votre nom, vous devez configurer manuellement les événements de fichiers pour chaque emplacement. Le fait d'ignorer cette configuration manuelle limite votre accès à plusieurs fonctionnalités Databricks.

La politique IAM octroie à Databricks l'autorisation de mettre à jour la configuration de notification d'événements de votre compartiment, de créer une rubrique SNS, de créer une file d'attente SQS et d'abonner la file d'attente SQS à la rubrique SNS. Ce sont les ressources requises pour les fonctionnalités qui utilisent les événements de fichiers. Remplacez <BUCKET> par le nom du compartiment S3.

JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ManagedFileEventsSetupStatement",
"Effect": "Allow",
"Action": [
"s3:GetBucketNotification",
"s3:PutBucketNotification",
"sns:ListSubscriptionsByTopic",
"sns:GetTopicAttributes",
"sns:SetTopicAttributes",
"sns:CreateTopic",
"sns:TagResource",
"sns:Publish",
"sns:Subscribe",
"sqs:CreateQueue",
"sqs:DeleteMessage",
"sqs:ReceiveMessage",
"sqs:SendMessage",
"sqs:GetQueueUrl",
"sqs:GetQueueAttributes",
"sqs:SetQueueAttributes",
"sqs:TagQueue",
"sqs:ChangeMessageVisibility",
"sqs:PurgeQueue"
],
"Resource": ["arn:aws:s3:::<BUCKET>", "arn:aws:sqs:*:*:*", "arn:aws:sns:*:*:*"]
},
{
"Sid": "ManagedFileEventsListStatement",
"Effect": "Allow",
"Action": ["sqs:ListQueues", "sqs:ListQueueTags", "sns:ListTopics"],
"Resource": "*"
},
{
"Sid": "ManagedFileEventsTeardownStatement",
"Effect": "Allow",
"Action": ["sns:Unsubscribe", "sns:DeleteTopic", "sqs:DeleteQueue"],
"Resource": ["arn:aws:sqs:*:*:*", "arn:aws:sns:*:*:*"]
}
]
}
  1. Retournez au rôle IAM que vous avez créé à l'étape 2.

  2. Dans l' tab Autorisations, associez les politiques IAM que vous venez de créer.

Étape 4 : Créez la configuration du stockage

Maintenant, revenez au flux de création du Workspace afin de pouvoir créer manuellement la configuration de stockage dans Databricks :

  1. Dans le menu déroulant **Stockage cloud**, sélectionnez **Ajouter un nouveau stockage cloud**.
  2. Sélectionnez Ajouter manuellement .
  3. Dans le champ **Nom de la configuration de stockage**, saisissez un nom lisible par un humain pour la configuration de stockage.
  4. Dans le champ Nom du compartiment , saisissez le nom du compartiment S3 que vous avez créé dans votre compte AWS.
  5. Dans le champ ARN du rôle IAM , collez l'ARN du rôle IAM que vous avez créé à l'étape 2.
  6. Cliquez sur **OK**.

Configurations avancées

Les configurations suivantes sont facultatives lorsque vous créez un nouveau workspace. Pour afficher ces paramètres, cliquez sur le menu déroulant Avancé sur la page de création du workspace.

  • Chiffrement : Vous pouvez ajouter des clés de chiffrement à votre déploiement de Workspace pour les services gérés et le stockage du Workspace. La clé des services gérés chiffre les Notebooks, les secrets et les données de query Databricks SQL dans le plan de contrôle. La clé pour le stockage du Workspace chiffre votre compartiment de stockage de Workspace et les volumes EBS des Ressources de compute dans le plan de compute classique. Pour plus de conseils, consultez Configurez les clés gérées par le client pour le chiffrement.
  • Sécurité et conformité : ces cases à cocher vous permettent d'activer le profil de sécurité de la conformité, d'ajouter des normes de conformité et d'activer le monitoring de sécurité amélioré pour votre Workspace. Pour plus d'informations, consultez Configurer les paramètres de sécurité et de conformité améliorés.

Afficher le statut du Workspace

Après avoir créé un Workspace, vous pouvez consulter son statut sur la page Workspaces .

  • Provisionnement : En cours. Attendez quelques minutes et refresh la page.
  • Exécution : déploiement de workspace réussi.
  • Échec : Échec du déploiement.
  • Interdit : Contactez l'équipe de votre compte Databricks.
  • Annulation : En cours d'annulation.

Se connecter à un workspace

  1. Accédez à la console du compte et cliquez sur l'icône Workspace .
  2. Dans la ligne de votre Workspace, cliquez sur Ouvrir .
  3. Pour vous connecter en tant qu'administrateur de Workspace, connectez-vous avec l'adresse e-mail et le mot de passe de votre propriétaire de compte ou de votre administrateur de compte. Si vous avez configuré le Single Sign On, cliquez sur le bouton **Single Sign On**.

Étapes suivantes

Maintenant que vous avez déployé un Workspace, vous pouvez start à élaborer votre stratégie de données. Databricks recommande les articles suivants :