APIs das Políticas do Cluster

Importante

Esta funcionalidade está em Pré-visualização Pública.

Uma política de cluster limita a capacidade de criar clusters com base num conjunto de regras. As regras de política limitam os atributos ou valores de atributos disponíveis para a criação de clusters. As políticas de cluster têm ACLs que limitam a sua utilização a utilizadores e grupos específicos.

Apenas os utilizadores administrativos podem criar, editar e eliminar políticas. Os utilizadores de administração também têm acesso a todas as políticas.

Para obter requisitos e limitações nas políticas de cluster, consulte Gerir as políticas de cluster.

Importante

Para aceder às APIs REST do Databricks, tem de se autenticar.

Políticas de Cluster API

A API políticas de cluster permite-lhe criar, listar e editar políticas de cluster. A criação e edição está disponível apenas para administradores. A listagem pode ser realizada por qualquer utilizador e está limitada a políticas acessíveis por esse utilizador.

Importante

A API políticas de cluster requer que uma definição de JSON política seja aprovada dentro de um pedido de JSON de formapliada. Na maioria dos casos isto requer a fuga dos caracteres de citação.

Nesta secção:

Obter

Ponto final Método HTTP
2.0/policies/clusters/get GET

Devolva uma especificação de política dada uma identificação de política.

Exemplo

curl --netrc -X GET \
https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/policies/clusters/get \
--data '{ "policy_id": "ABCD000000000000" }' \
| jq .
{
  "policy_id": "ABCD000000000000",
  "name": "Test policy",
  "definition": "{\"spark_conf.spark.databricks.cluster.profile\":{\"type\":\"forbidden\",\"hidden\":true}}",
  "created_at_timestamp": 1600000000000
}

Estrutura de pedido

Nome do Campo Tipo Description
policy_id STRING A identificação da apólice sobre a qual recuperar informação.

Estrutura de resposta

Nome do Campo Tipo Description
policy_id STRING Identificador único canónico para a política de cluster.
name STRING Nome da política do cluster. Isto deve ser único. O comprimento deve ter entre 1 e 100 caracteres.
definição STRING Definição de política Documento JSON expresso na Linguagem de Definição de Política de Databricks. O documento JSON deve ser aprovado como uma corda e não pode ser simplesmente incorporado nos pedidos.
created_at_timestamp INT64 Tempo de criação. A hora da hora (em milissegundo) quando esta política de cluster foi criada.

Lista

Ponto final Método HTTP
2.0/policies/clusters/list GET

Devolva uma lista de políticas acessíveis pelo utilizador que solicita.

Exemplo

curl --netrc -X GET \
https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/policies/clusters/list \
--data '{ "sort_order": "DESC", "sort_column": "POLICY_CREATION_TIME" }' \
| jq .
{
  "policies": [
    {
      "policy_id": "ABCD000000000001",
      "name": "Empty",
      "definition": "{}",
      "created_at_timestamp": 1600000000002
    },
    {
      "policy_id": "ABCD000000000000",
      "name": "Test policy",
      "definition": "{\"spark_conf.spark.databricks.cluster.profile\":{\"type\":\"forbidden\",\"hidden\":true}}",
      "created_at_timestamp": 1600000000000
    }
  ],
  "total_count": 2
}

Estrutura de pedido

Nome do Campo Tipo Description
sort_order ListOrder A direção de ordem para listar as políticas em; ou ASC ou DESC . . Incumprimentos a DESC .
sort_column PolicySortColumn O ClusterPolicy atributo a ordenar por. Incumprimentos a POLICY_CREATION_TIME .

Estrutura de resposta

Nome do Campo Tipo Description
políticas Uma variedade de políticas Lista de políticas.
total_count INT64 O número total de políticas.

Criar

Ponto final Método HTTP
2.0/policies/clusters/create POST

Criar uma nova política com um nome e definição.

Exemplo

curl --netrc -X POST \
https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/policies/clusters/create \
--data @create-cluster-policy.json

create-cluster-policy.json:

{
  "name": "Test policy",
  "definition": "{\"spark_conf.spark.databricks.cluster.profile\":{\"type\":\"forbidden\",\"hidden\":true}}"
}
{ "policy_id": "ABCD000000000000" }

Estrutura de pedido

Nome do Campo Tipo Description
name STRING Nome da política do cluster. Isto deve ser único. O comprimento deve ter entre 1 e 100 caracteres.
definição STRING Definição de política Documento JSON expresso na Linguagem de Definição de Política de Databricks. Deve passar o documento JSON como uma corda; não pode ser simplesmente incorporado nos pedidos.

Estrutura de resposta

Nome do Campo Tipo Description
policy_id STRING Identificador único canónico para a política de cluster.

Editar

Ponto final Método HTTP
2.0/policies/clusters/edit POST

Atualize uma política existente. Isto pode tornar alguns aglomerados regidos por esta política inválidos. Para estes clusters, a próxima edição de cluster deve fornecer uma configuração de confirmação, mas de outra forma podem continuar a funcionar.

Exemplo

curl --netrc -X POST \
https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/policies/clusters/edit \
--data @edit-cluster-policy.json

edit-cluster-policy.json:

{
  "policy_id": "ABCD000000000000",
  "name": "Test policy",
  "definition": "{\"spark_conf.spark.databricks.cluster.profile\":{\"type\":\"forbidden\",\"hidden\":true}}"
}
{}

Estrutura de pedido

Nome do Campo Tipo Description
policy_id STRING A identificação da política para atualizar. Este campo é obrigatório.
name STRING Nome da política do cluster. Isto deve ser único. O comprimento deve ter entre 1 e 100 caracteres.
definição STRING Definição de política Documento JSON expresso na Linguagem de Definição de Política de Databricks. Deve passar o documento JSON como uma corda; não pode ser simplesmente incorporado nos pedidos.

Excluir

Ponto final Método HTTP
2.0/policies/clusters/delete POST

Apagar uma apólice. Os agrupamentos regidos por esta política ainda podem ser executados, mas não podem ser editados.

Exemplo

curl --netrc -X POST \
https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/policies/clusters/delete \
--data '{ "policy_id": "ABCD000000000000" }'
{}

Estrutura de pedido

Nome do Campo Tipo Description
policy_id STRING A identificação da política para apagar. Este campo é obrigatório.

Estruturas de dados

Nesta secção:

Política

Uma entidade de política de cluster.

Nome do Campo Tipo Description
policy_id STRING Identificador único canónico para a política de cluster.
name STRING Nome da política do cluster. Isto deve ser único. O comprimento deve ter entre 1 e 100 caracteres.
definição STRING Definição de política Documento JSON expresso na Linguagem de Definição de Política de Databricks. Deve passar o documento JSON como uma corda; não pode ser simplesmente incorporado nos pedidos.
creator_user_name STRING Nome de utilizador do criador. O campo não será incluído na resposta se o utilizador já tiver sido eliminado.
created_at_timestamp INT64 Tempo de criação. A hora da hora (em milissegundo) quando esta política de cluster foi criada.

PolicySortColumn

A ordem de encomenda para o ListPolices pedido.

Nome Descrição
POLICY_CREATION_TIME Ordenar lista de resultados por tipo de criação de políticas.
POLICY_NAME Ordenar lista de resultados por nome de política.

Permissões de Política de Cluster API

A API de Permissões de Política de Cluster permite-lhe definir permissões numa política de cluster. Quando conceder CAN_USE permissão sobre uma apólice a um utilizador, o utilizador poderá criar novos clusters com base na sua. Um utilizador não precisa da cluster_create permissão para criar novos clusters.

Apenas os utilizadores administrativos podem definir permissões sobre as políticas de cluster.

Nesta secção:

Obter permissões

Ponto final Método HTTP
2.0/preview/permissions/cluster-policies/<clusterPolicyId>/permissionLevels GET

Exemplo

curl --netrc -X GET \
https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/preview/permissions/cluster-policies/ABCD000000000000/permissionLevels \
| jq .
{
  "permission_levels": [
    {
      "permission_level": "CAN_USE",
      "description": "Can use the policy"
    }
  ]
}

Estrutura de pedido

Nome do Campo Tipo Description
clusterPolicyid STRING A política sobre a qual recuperar permissões. Este campo é obrigatório.

Estrutura de resposta

Um conjunto de permissõesLevel com descrição associada.

Adicionar ou modificar permissões

Ponto final Método HTTP
2.0/preview/permissions/cluster-policies/<clusterPolicyId> PATCH

Exemplo

curl --netrc -X PATCH \
https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/preview/permissions/cluster-policies/ABCD000000000000 \
--data @add-cluster-policy-permissions.json \
| jq .

add-cluster-policy-permissions.json:

{
  "access_control_list": [
    {
      "user_name": "someone-else@example.com",
      "permission_level": "CAN_USE"
    }
  ]
}
{
  "object_id": "/cluster-policies/ABCD000000000000",
  "object_type": "cluster-policy",
  "access_control_list": [
    {
      "user_name": "mary@example.com",
      "all_permissions": [
        {
          "permission_level": "CAN_USE",
          "inherited": false
        }
      ]
    },
    {
      "user_name": "someone-else@example.com",
      "all_permissions": [
        {
          "permission_level": "CAN_USE",
          "inherited": false
        }
      ]
    },
    {
      "group_name": "admins",
      "all_permissions": [
        {
          "permission_level": "CAN_USE",
          "inherited": true,
          "inherited_from_object": [
              "/cluster-policies/"
          ]
        }
      ]
    }
  ]
}

Estrutura de pedido

Nome do Campo Tipo Description
clusterPolicyid STRING A política sobre a qual modificar permissões. Este campo é obrigatório.

Corpo de pedido

Nome do Campo Tipo Description
access_control_list Matriz de AccessControl Uma série de listas de controlo de acessos.

Corpo da resposta

Um Clusters ACL.

Definir ou eliminar permissões

Um pedido PUT substitui todas as permissões diretas no objeto de política de cluster. Pode escla lor parecer com pedidos de eliminação, fazendo um pedido GET para recuperar a lista atual de permissões seguida de um pedido PUT que retira as entradas a serem eliminadas.

Ponto final Método HTTP
2.0/preview/permissions/cluster-policies/<clusterPolicyId> PUT

Exemplo

curl --netrc -X PUT \
https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/preview/permissions/cluster-policies/ABCD000000000000 \
--data @set-cluster-policy-permissions.json \
| jq .

set-cluster-policy-permissions.json:

{
  "access_control_list": [
    {
      "user_name": "someone@example.com",
      "permission_level": "CAN_USE"
    }
  ]
}
{
  "object_id": "/cluster-policies/ABCD000000000000",
  "object_type": "cluster-policy",
  "access_control_list": [
    {
      "user_name": "someone@example.com",
      "all_permissions": [
        {
          "permission_level": "CAN_USE",
          "inherited": false
        }
      ]
    },
    {
      "group_name": "admins",
      "all_permissions": [
        {
          "permission_level": "CAN_USE",
          "inherited": true,
          "inherited_from_object": [
              "/cluster-policies/"
          ]
        }
      ]
    }
  ]
}

Estrutura de pedido

Nome do Campo Tipo Description
clusterPolicyid STRING A política sobre a qual definir permissões. Este campo é obrigatório.

Corpo do pedido

Nome do Campo Tipo Description
access_control_list Matriz de AccessControlInput Uma série de controlos de acesso.

Corpo de resposta

Um Clusters ACL.

Estruturas de dados

Nesta secção:

Clusters ACL

Nome do atributo Tipo Description
object_id CORDA O ID do objeto ACL, por ../cluster-policies/<clusterPolicyId> exemplo, .
object_type CORDA O tipo de objeto ACL databricks, por exemplo, cluster-policy .
access_control_list Matriz de AccessControl Os controlos de acesso definidos no objeto ACL.

AcessoControl

Nome do atributo Tipo Description
user_name ou group_name CORDA Nome do principal (utilizador ou grupo) que tem permissões definidas no objeto ACL.
all_permissions Matriz de Permissão Lista de todas as permissões definidas neste objeto ACL para um principal específico. Inclui ambas as permissões diretamente definidas neste objeto ACL e permissões herdadas de um objeto ACL ancestral.

Permissão

Nome do atributo Tipo Description
permission_level CORDA O nome do nível de permissão.
herdado BOOLEANA É verdade quando a permissão da ACL não é definida diretamente, mas herdada de um objeto ACL ancestral. Falso se estiver diretamente no objeto ACL.
inherited_from_object Lista[STRING] A lista de IDs de objeto acrôcido que contribuem para a permissão herdada num objeto ACL. Isto só é definido se herdado for verdade.

AccessControlInput

Um item que representa uma regra ACL aplicado ao principal (utilizador ou grupo).

Nome do atributo Tipo Description
user_name ou group_name CORDA Nome do principal (utilizador ou grupo) que tem permissões definidas no objeto ACL.
permission_level CORDA O nome do nível de permissão.

PermissõesLevel

Nível de permissão que pode definir numa política de cluster.

Nível de Permissão Description
CAN_USE Permitir que o utilizador crie clusters com base na política. O utilizador não necessita do cluster para criar permissão.