O passo 2: Configurar credenciais para entrega logs de auditoria

Este artigo descreve como configurar o serviço IAM para auditoria log delivery. Para usar credenciais diferentes para espaços de trabalho diferentes, repita os procedimentos deste artigo para cada workspace ou grupo de espaços de trabalho.

Observação

Para usar nomes de bucket S3 diferentes, você precisa criar IAM roles separados.

Criar o IAM role

  1. Faça login no console da AWS como usuário com privilégios de administrador e acesse o serviço IAM.

  2. Clique na guia Funções na barra lateral.

  3. Clique em Criar função.

    1. Em Selecionar tipo de entidade confiável, clique em Serviço AWS.

    2. Em Use Case, selecione EC2.

    3. Clique no botão Avançar .

    4. Clique no botão Avançar .

    5. No campo Nome da função, insira um nome de papel.

    6. Clique em Criar função.A lista de funções é exibida.

Criar a política em linha

  1. Na lista de funções, selecione a função que você criou.

  2. Adicione uma política em linha.

    1. Em Permissions (Permissões ) tab, clique em Add permissions (Adicionar permissões ) e depois em Create inline policy (Criar política em linha).

    2. No editor de políticas, clique na guia JSON.

    3. Copie essa política de acesso e modifique-a. Substitua os valores a seguir na política pelos seus próprios valores de configuração:

      • <s3-bucket-name>: o nome do bucket do seu balde AWS S3.

      • <s3-bucket-path-prefix>(Opcional) O caminho para o local de entrega no bucket S3. Se não for especificado, os logs serão entregues na raiz do bucket. Esse caminho deve corresponder ao argumento delivery_path_prefix quando o senhor chamar a API de fornecimento de log.

      {
        "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>/*"
                ]
              }
            }
          }
        ]
      }
      

      O senhor pode personalizar o uso da política do prefixo do caminho das seguintes maneiras:

      • Se você não quiser usar o prefixo do caminho do contêiner, remova <s3-bucket-path-prefix>/ (incluindo a barra final) da política toda vez que ela aparecer.

      • Se quiser configurações de entrega log para diferentes espaços de trabalho que compartilham o bucket S3, mas usam prefixos de caminho diferentes, o senhor pode incluir vários prefixos de caminho. Há duas partes separadas da política que fazem referência a <s3-bucket-path-prefix>. Para cada caso, duplique as duas linhas que fazem referência ao prefixo do caminho. Por exemplo:

      {
        "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. Clique em Revisar política.

    5. No campo Nome , insira um nome de política.

    6. Clique em Criar política.

    7. Se você usar políticas de controle de serviço para negar determinadas ações no nível da conta da AWS, certifique-se de que sts:AssumeRole esteja na lista de permissões para que o Databricks possa assumir a função entre contas.

Criar a política de confiança

  1. Na página de resumo do papel, clique na guia Relacionamentos de Confiança.

  2. Cole essa política de acesso no editor, substituindo <databricks-account-id> pelo ID de sua conta da Databricks. A política usa o endereço Databricks AWS account ID 414351767826. Se o senhor estiver usando Databricks on AWS GovCloud use o endereço Databricks account ID 044793339203.

    {
      "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>"
              ]
            }
          }
        }
      ]
    }
    
  3. No resumo da função, copie o Role ARN. Você precisa desse valor para chamar a API de configuração de criação de credencial na próxima o passo.

Chamar a API de configuração de credenciais

Para concluir a configuração de suas credenciais, chame a API Create credential configuration (Criar configuração de credenciais).

Essa solicitação estabelece a confiança entreaccount e retorna um ID de referência que o senhor pode usar ao criar um novo workspace.

  • Substitua <account-id> pelo ID da sua conta Databricks.

  • Defina credentials_name para um nome exclusivo na sua conta.

  • Defina role_arn como o ARN da função que o senhor acabou de criar.

O corpo da resposta inclui um campo credentials_id . Copie este campo para que você possa usá-lo para criar a configuração de entrega logs na o passo 4.

Por exemplo:

curl -X POST -n \
  'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/credentials' \
  -d '{
  "credentials_name": "databricks-credentials-v1",
  "aws_credentials": {
    "sts_role": {
      "role_arn": "arn:aws:iam::<aws-account-id>:role/my-company-example-role"
    }
  }
}'

Resposta de exemplo:

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

Novamente, copie o campo credentials_id da resposta para uso posterior.

Próximos passos

Se você precisar configurar a entrega entre contas (seu bucket do S3 está em uma conta da AWS diferente da IAM role usada para entrega de logs ), consulte a O passo 3: Configurar o suporte entre contas (opcional).

Se seu bucket S3 estiver na mesma account da AWS que sua IAM role usada para entrega logs, pule para a passo final de chamar a API de entrega de logs . Consulte a o Passo 4: Chamar a API de entrega logs .