Aller au contenu principal

Étape 2 : Configurez les identifiants pour la livraison des audit Logs

Cet article décrit comment configurer les services IAM pour la livraison des Logs d'audit. Pour utiliser des identifiants différents pour différents workspaces, répétez les procédures de cet article pour chaque workspace ou groupe de workspaces.

remarque

Pour utiliser différents noms de compartiments S3, vous devez créer des rôles IAM distincts.

Créez le rôle IAM

  1. Connectez-vous à votre Console AWS en tant qu'utilisateur disposant des privilèges d'administrateur et accédez au service IAM .
  2. Cliquez sur l’onglet tab dans la barre latérale.
  3. Cliquez sur Créer un rôle .
    1. Dans Sélectionnez le type d’entité approuvée , cliquez sur Service AWS .
    2. Sous Cas d'usage , sélectionnez EC2 .
    3. Cliquez sur le bouton Suivant .
    4. Cliquez sur le bouton Suivant .
    5. Dans le champ Nom du rôle , saisissez un nom de rôle.
    6. Cliquez sur Créer un rôle . La liste des rôles s'affiche.

Créer la politique en ligne

  1. Dans la liste des rôles, cliquez sur le rôle que vous avez créé.
  2. Ajoutez une politique en ligne.
    1. Dans l'onglet Autorisations , cliquez sur Ajouter des autorisations , puis sur Créer une politique en ligne .

    2. Dans l’éditeur de stratégies, cliquez sur l’onglet JSON .

    3. Copiez cette politique d'accès et modifiez-la. Remplacez les valeurs suivantes dans la politique par vos propres valeurs de configuration :

      • <s3-bucket-name>: Le nom du compartiment de votre bucket S3 AWS.
      • <s3-bucket-path-prefix>: (Facultatif) Le chemin d’accès à l’emplacement de livraison dans le compartiment S3. S’ils ne sont pas spécifiés, les Logs sont livrés à la racine du compartiment. Ce chemin doit correspondre à l'argument delivery_path_prefix lorsque vous appelez l'API de livraison des Logs.
      JSON
      {
      "Version": "2012-10-17",
      "Statement": [
      {
      "Effect": "Allow",
      "Action": ["s3:GetBucketLocation"],
      "Resource": ["arn:aws:s3:::<s3-bucket-name>"]
      },
      {
      "Effect": "Allow",
      "Action": ["s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:PutObjectAcl", "s3:AbortMultipartUpload"],
      "Resource": [
      "arn:aws:s3:::<s3-bucket-name>/<s3-bucket-path-prefix>/",
      "arn:aws:s3:::<s3-bucket-name>/<s3-bucket-path-prefix>/*"
      ]
      },
      {
      "Effect": "Allow",
      "Action": ["s3:ListBucket", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads"],
      "Resource": "arn:aws:s3:::<s3-bucket-name>",
      "Condition": {
      "StringLike": {
      "s3:prefix": ["<s3-bucket-path-prefix>", "<s3-bucket-path-prefix>/*"]
      }
      }
      }
      ]
      }

      Vous pouvez personnaliser l'utilisation de la politique du préfixe de chemin de l'une des manières suivantes :

      • Si vous ne souhaitez pas utiliser le préfixe du chemin d'accès au compartiment, supprimez <s3-bucket-path-prefix>/ (y compris la barre oblique finale) de la politique chaque fois qu'il apparaît.
      • Si vous souhaitez des configurations de livraison des Logs pour différents Workspace qui partagent le bucket S3 mais utilisent des préfixes de chemin différents, vous pouvez inclure plusieurs préfixes de chemin. Il y a deux parties distinctes de la politique qui font référence à <s3-bucket-path-prefix>. Pour chaque cas, dupliquez les deux lignes qui référencent le préfixe du chemin. Par exemple :
      JSON
      {
      "Resource": [
      "arn:aws:s3:::<mybucketname>/field-team/",
      "arn:aws:s3:::<mybucketname>/field-team/*",
      "arn:aws:s3:::<mybucketname>/finance-team/",
      "arn:aws:s3:::<mybucketname>/finance-team/*"
      ]
      }
    4. Cliquez sur Vérifier la politique .

    5. Dans le champ Nom , entrez un nom de stratégie.

    6. Cliquez sur Créer une politique .

    7. Si vous utilisez des politiques de contrôle des services pour refuser certaines actions au niveau du compte AWS, assurez-vous que sts:AssumeRole est sur liste blanche afin que Databricks puisse assumer le rôle inter-comptes.

Créer la politique de confiance

  1. Sur la page de résumé du rôle, cliquez sur l'onglet Trust Relationships tab.

  2. Collez cette stratégie d’accès dans l’éditeur, en remplaçant <databricks-account-id> par votre ID de compte Databricks. Notez que la politique est légèrement différente si vous utilisez Databricks sur AWS GovCloud ou AWS GovCloud DoD.

JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::414351767826:role/SaasUsageDeliveryRole-prod-IAMRole-3PLHICCRR1TK"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": ["<databricks-account-id>"]
}
}
}
]
}
  1. Dans le résumé du rôle, copiez l'ARN de rôle. Vous avez besoin de cette valeur pour appeler l'API de création de configuration d'identifiant à l'étape suivante.

Créer une configuration d’identifiants

Pour finaliser la configuration de vos identifiants, appelez l'API de création de configuration d'identifiants à l'aide du CLI Databricks. Définissez credentials_name sur un nom unique dans votre compte et role_arn sur l'ARN du rôle que vous venez de créer :

Bash
databricks account credentials create --json '{
"credentials_name": "databricks-credentials-v1",
"aws_credentials": {
"sts_role": {
"role_arn": "arn:aws:iam::<aws-account-id>:role/my-company-example-role"
}
}
}'

Cette demande établit une relation de confiance entre les comptes et renvoie un ID de référence que vous pouvez utiliser lors de la création d'un nouveau Workspace.

Exemple de réponse :

JSON
{
"account_id": "<databricks-account-id>",
"aws_credentials": {
"sts_role": {
"external_id": "<databricks-account-id>",
"role_arn": "arn:aws:iam::<aws-account-id>:role/my-company-example-role"
}
},
"creation_time": 1579753556257,
"credentials_id": "<databricks-credentials-id>",
"credentials_name": "databricks-credentials-v1"
}

Copiez le champ credentials_id de la réponse pour une utilisation ultérieure.

Étapes suivantes

Si vous devez configurer la livraison inter-comptes (votre compartiment S3 se trouve dans un compte AWS différent de celui du rôle IAM utilisé pour la livraison des Logs), consultez l’ Étape 3 : Configurer la prise en charge inter-comptes (facultatif).

Si votre compartiment S3 se trouve dans le même compte AWS que votre rôle IAM utilisé pour la livraison des logs, passez à l'étape finale d'appel de l'API de livraison des logs. Consultez Étape 4 : créer la configuration de la livraison des Logs.