O passo 2: Configurar credenciais para entrega logs de auditoria

Este artigo descreve como configurar serviços IAM para entrega logs de auditoria. Para usar credenciais diferentes para workspace diferentes, repita os procedimentos neste artigo para cada workspace ou grupo de workspace.

Observação

Para usar diferentes nomes de bucket do S3, você precisa criar IAM role separada.

Criar a IAM role

  1. logs no Console AWS como um usuário com privilégios de administrador e acesse o serviço IAM .

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

  3. Clique em Criar função.

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

    2. Em Caso de uso, 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 função.

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

Criar a política em linha

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

  2. Adicione uma política em linha.

    1. Na tab Permissões , clique em Adicionar permissões e em Criar política em linha.

    2. No editor de política, clique na tab JSON .

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

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

      • <s3-bucket-path-prefix>: (Opcional) O caminho para o local de entrega no bucket do S3. Se não for especificado, os logs serão entregues à raiz do depósito. Este caminho deve corresponder ao argumento delivery_path_prefix quando você chama a API de entrega logs .

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

      Você 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 bucket, remova <s3-bucket-path-prefix>/ (incluindo a barra final) da política sempre que ela aparecer.

      • Se você deseja configurações de entrega logs para diferentes workspace que compartilham o bucket do S3, mas usam diferentes prefixos de caminho, você 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.

Crie a política de confiança

  1. Na página de resumo da função, clique na tab 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.

Chame a API de configuração de criação de credencial

Para concluir a configuração de suas credenciais, chame a API de configuração Criar credencial.

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

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

  • Defina credentials_name como um nome exclusivo em sua account.

  • Defina role_arn para o ARN da função que você 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"
    }
  }
}'

Exemplo de resposta:

{
  "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 .