Papéis predefinidos do Dataform
A tabela a seguir lista os papéis predefinidos que dão acesso aos recursos do Dataform:
Role | Permissions |
---|---|
Dataform Admin( Full access to all Dataform resources. |
|
Code Creator( Access only to private and shared code resources. The permissions in the Code Creator let you create and list code in Dataform, and access only the code that you created and code that was explicitly shared with you. |
|
Code Editor( Edit access code resources. |
|
Code Owner( Full access to code resources. |
|
Code Viewer( Read-only access to all code resources. |
|
Dataform Editor( Edit access to Workspaces and Read-only access to Repositories. |
|
Dataform Viewer( Read-only access to all Dataform resources. |
|
Papéis personalizados do Dataform
Os papéis personalizados podem incluir qualquer permissão especificada por você. É possível criar papéis personalizados que incluam permissões para executar operações administrativas específicas, como criar espaços de trabalho de desenvolvimento ou criar arquivos e diretórios em um espaço de trabalho de desenvolvimento. Para criar papéis personalizados, consulte Como criar e gerenciar papéis personalizados.
Considerações de segurança para permissões do Dataform
Qualquer usuário com a permissão dataform.repositories.create
pode executar um código no BigQuery usando a conta de serviço padrão
do Dataform e todas as permissões concedidas a essa conta de serviço. Isso inclui a execução
de fluxos de trabalho SQL do Dataform.
As permissões dataform.repositories.create
estão incluídas nos seguintes
papéis do IAM:
- Usuário do BigQuery Studio(
roles/bigquery.studioUser
) - Criador de código (
roles/dataform.codeCreator
) - Editor de código (
roles/dataform.codeEditor
) - Proprietário de código (
roles/dataform.codeOwner
) - Usuário do Colab Enterprise (
roles/aiplatform.colabEnterpriseUser
) - Administrador do Dataform (
roles/dataform.admin
)
Para restringir os dados que um usuário ou uma conta de serviço pode ler ou gravar no BigQuery, conceda permissões granulares do IAM do BigQuery aos conjuntos de dados ou tabelas selecionados do BigQuery. Para mais informações, consulte Como controlar o acesso a conjuntos de dados e Como controlar o acesso a tabelas e visualizações.
Para mais informações sobre a conta de serviço padrão do Dataform e os papéis e permissões necessários, consulte Conceder acesso necessário ao Dataform.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
Conferir papéis do Dataform
No console do Google Cloud, siga estas etapas:
Acesse a página IAM e administrador > Papéis.
No campo Filtro, selecione Usado em, digite
Dataform
e pressione Enter.Clique em um dos papéis listados para ver as permissões dele no painel à direita.
Por exemplo, o papel de administrador do Dataform tem acesso total a todos os recursos do Dataform.
Para mais informações sobre como conceder um papel em um projeto, consulte Conceder um papel. É possível conceder papéis predefinidos ou personalizados dessa maneira.
Controlar o acesso a um repositório individual
Para controlar o acesso ao Dataform com permissões granulares,
é possível definir papéis de IAM do Dataform em repositórios
individuais usando a solicitação repositories.setIamPolicy
da API Dataform.
Para definir papéis de IAM do Dataform em um repositório individual do Dataform, siga estas etapas:
No terminal, transmita a solicitação
repositories.setIamPolicy
da API Dataform com uma política de acesso.Na política, vincule um usuário, grupo, domínio ou conta de serviço a um papel selecionado no seguinte formato:
{ "policy": { "bindings": [ { "role": "roles/ROLE", "members": [ "TYPE:IDENTIFIER", ] }, ], } }
Substitua:
ROLE
: um papel do IAM do Dataform que você quer conceder ao repositórioTYPE
:user
,group
,domain
ouserviceAccount
IDENTIFIER
: o usuário, grupo, domínio ou conta de serviço a que você quer conceder o papel.
Na página do IAM, verifique se todos os usuários podem visualizar a lista completa de repositórios do Dataform usando um papel do Dataform com a permissão
dataform.repositories.list
.No IAM, garanta que apenas os usuários que precisam de acesso total a todos os repositórios do Dataform recebam o papel de administrador do Dataform em todos os repositórios.
O comando a seguir transmite a solicitação repositories.setIamPolicy
da API Dataform
que concede o papel de Editor do Dataform no repositório sales
a um único usuário:
curl -H "Content-Type: application/json" -X POST -d '{ "policy": { "bindings": [{ "role": "roles/dataform.editor", "members": ["user:sasha@examplepetstore.com"]}] }}' "https://dataform.googleapis.com/v1beta1/projects/examplepetstore/locations/us-central1/repositories/sales:setIamPolicy"
Conceder acesso público a um repositório
É possível conceder acesso público a um repositório do Dataform concedendo
papéis do IAM no repositório ao principal
allAuthenticatedUsers
.
Quando você atribui um papel do IAM ao principal allAuthenticatedUsers
,
as contas de serviço e todos os usuários da Internet que se autenticaram com uma
Conta do Google recebem esse papel. Isso inclui contas que não estão
conectadas a uma conta do Google Workspace ou a um domínio do Cloud Identity,
como contas pessoais do Gmail. Os usuários não autenticados,
como visitantes anônimos, não são incluídos. Para mais informações, consulte Todos os usuários autenticados.
Por exemplo, quando você concede o papel de Leitor do Dataform a
allAuthenticatedUsers
no repositório sales
, todas as contas de serviço e
usuários na Internet que se autenticaram com uma Conta do Google terão
acesso somente leitura a todos os recursos do código sales
.
Para conceder acesso público a um repositório do Dataform, siga estas etapas:
No terminal, transmita a solicitação
repositories.setIamPolicy
da API Dataform com uma política de acesso.Na política, vincule o principal
allAuthenticatedUsers
a um papel selecionado no seguinte formato:{ "policy": { "bindings": [ { "role": "roles/ROLE", "members": [ "allAuthenticatedUsers", ] }, ], } }
Substitua:
ROLE
: um papel do IAM do Dataform que você quer conceder a todos os usuários autenticados.
O comando a seguir transmite a solicitação repositories.setIamPolicy
da API Dataform
que concede o papel Leitor do Dataform no repositório sales
a allAuthenticatedUsers
:
curl -H "Content-Type: application/json" -X POST -d '{ "policy": { "bindings": [{ "role": "roles/dataform.viewer", "members": ["allAuthenticatedUsers"]}] }}' "https://dataform.googleapis.com/v1beta1/projects/examplepetstore/locations/us-central1/repositories/sales:setIamPolicy"
Impedir o acesso público aos repositórios
Para garantir que nenhum acesso seja concedido ao público em qualquer repositório do
Dataform, restrinja a principal allAuthenticatedUsers
no seu projeto.
Para restringir allAuthenticatedUsers
no projeto, defina a política iam.allowedPolicyMemberDomains
e remova allAuthenticatedUsers
da lista de allowed_values
.
Quando você restringe allAuthenticatedUsers
na política iam.allowedPolicyMemberDomains
, a principal allAuthenticatedUsers
não pode ser usada em nenhuma
política do IAM no seu projeto, o que impede a concessão de acesso público
a todos os recursos, incluindo repositórios do Dataform.
Para mais informações sobre a política iam.allowedPolicyMemberDomains
e também instruções para configurá-la, consulte
Como restringir identidades por domínio.
Federação de identidade de colaboradores no Dataform
A federação de identidade de colaboradores permite usar um provedor de identidade externo (IdP) para autenticar e autorizar usuários nos serviços do Google Cloud com o IAM.
O Dataform oferece suporte à federação de identidade de colaboradores sem limitações conhecidas.
A seguir
- Para saber mais sobre o IAM, consulte Visão geral do IAM.
- Para saber mais sobre papéis e permissões, consulte Noções básicas sobre papéis.
- Para saber mais sobre como gerenciar o acesso a recursos, consulte Gerenciar o acesso a projetos, pastas e organizações.
- Para saber como conceder papéis do BigQuery a tabelas no Dataform, consulte Controlar o acesso a tabelas individuais com o IAM.
- Para saber mais sobre os principais conceitos da federação de identidade de colaboradores, consulte Federação de identidade de colaboradores.