Pular para o conteúdo principal

Etapa 2: Configurar credenciais para auditoria log delivery

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.

nota

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 papel . A lista de funções é exibida.

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

      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 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 diferentes prefixos de caminho, 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:
      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. Clique em Revisar política .

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

    6. Clique em Criar política .

    7. Se o senhor usar políticas de controle de serviços para negar determinadas ações no nível AWS account , certifique-se de que sts:AssumeRole esteja na lista de permissões para que Databricks possa assumir a função cruzadaaccount.

Crie 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 seu Databricks account ID. Observe que a política é ligeiramente diferente se o senhor usar Databricks on 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. 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 de criação

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:

Bash
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:

JSON
{
"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óximas etapas

Se precisar configurar a entrega cruzadaaccount (seu bucket S3 está em um AWS account diferente do IAM role usado para a entrega log ), consulte a Etapa 3: Configurar suporte cruzadoaccount (opcional).

Se o seu bucket S3 estiver no mesmo AWS account que o IAM role usado para a entrega log, pule para a etapa final de chamar a entrega log API. Consulte a Etapa 4: Ligue para o site log delivery API.