Antes de começar
Antes de definir ou editar a política dataform.restrictGitRemotes
, encontre os URLs completos dos repositórios Git remotos que você quer adicionar à lista de permissões.
Para encontrar o URL completo de um repositório Git remoto já conectado a um repositório do Dataform, siga estas etapas:
No Google Cloud console, acesse a página Dataform.
Selecione um repositório e clique em Configurações.
Os URLs dos repositórios remotos mostrados na página Dataform são abreviados e não podem ser usados na política
dataform.restrictGitRemotes
.Na página Configurações, em Configurações de conexão do Git, copie o valor de Origem do repositório.
O valor Origem do repositório é o URL completo do repositório remoto. É possível usar esse URL na política
dataform.restrictGitRemotes
.
Funções exigidas
Para receber as permissões
necessárias a fim de gerenciar as políticas da organização,
peça ao administrador para conceder a você o
papel do IAM de Administrador de políticas da organização (roles/orgpolicy.policyAdmin
)
na organização.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esse papel predefinido contém as permissões necessárias para gerenciar as políticas da organização. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para gerenciar as políticas da organização:
-
orgpolicy.constraints.list
-
orgpolicy.policies.create
-
orgpolicy.policies.delete
-
orgpolicy.policies.list
-
orgpolicy.policies.update
-
orgpolicy.policy.get
-
orgpolicy.policy.set
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Sobre a restrição de repositórios Git remotos
É possível conectar um repositório do Dataform a um repositório do GitHub ou do GitLab.
Talvez você queira restringir o pool de repositórios remotos a que os repositórios do Dataform podem se conectar para impedir que agentes maliciosos acessem sua base de código e tokens de acesso do Dataform por cópias desprotegidas do repositório.
Use o serviço de política da organização para criar uma política que restringe os URLs de repositórios Git a que o Dataform pode se conectar.
A restrição para restringir repositórios Git remotos no Dataform é:
constraints/dataform.restrictGitRemotes
Para usar a restrição, crie uma política da organização com uma lista allowedValues
de URLs de repositórios Git remotos que podem se conectar a um repositório do Dataform.
Os repositórios Git remotos são identificados pelo endereço URL completo.
A políticadataform.restrictGitRemotes
tem um efeito retroativo, o que significa que a restrição afeta repositórios do Dataform preexistentes.
Quando a política da organização está em vigor, o repositório do Dataform só pode se conectar aos repositórios Git remotos listados na lista allowedValues
. Os repositórios Git remotos que não estão explicitamente definidos na política da organização não podem se conectar a um repositório do Dataform.
Se você não definir a política dataform.restrictGitRemotes
,
a comunicação entre repositórios do Dataform e repositórios Git remotos
não será restrita.
É possível usar a política dataform.restrictGitRemotes
das seguintes maneiras:
Allow all
- Os repositórios do Dataform podem se conectar a todos os URLs de repositórios remotos. Selecione essa opção se sua organização não quiser bloquear nenhuma comunicação com repositórios remotos. Se preferir, deixe a política da organização sem definição para permitir todos os URLs de repositórios remotos.
allowedValues
lista de URLs- Os repositórios do Dataform só podem se conectar aos repositórios remotos na lista de permissões. Selecione essa opção para evitar a exfiltração de dados.
Deny all
- Os repositórios do Dataform não podem se conectar a URLs remotos. Selecione essa opção se sua organização quiser bloquear toda a comunicação e usar repositórios do Dataform.
Especificações para permitir repositórios Git remotos
É possível aplicar essa restrição de lista apenas aos repositórios do GitHub e do GitLab.
A política da organização é aplicada retroativamente e afeta os repositórios do Dataform atuais.
Essa restrição aceita
allowedValues
, bloqueando a conexão com todos os outros repositórios Git remotos, ouDeny all
. O padrão éAllow all
. Uma política da organização não definida permite a comunicação com todos os repositórios Git remotos. Recomendamos definir a política da organização comoallowedValues
.Cabe a você ou a um administrador com as permissões necessárias gerenciar e manter a política. Garanta a comunicação sobre o administrador da política na sua organização.
Definir a restrição de política da organização no nível da organização
Console
- Acesse a página /Organizational Policies/Organization Policies.
- Se necessário, selecione a organização no menu suspenso do projeto.
- Clique em Restringir gits remotos em repositórios no Dataform.
- Clique em Gerenciar política. Se não for possível clicar no botão Gerenciar política, você não tem as permissões corretas.
Selecione Personalizar para definir a política da organização para repositórios Git remotos específicos.
Selecione as opções Aplicação da política e Tipo de política.
Em Valores da política, selecione Personalizada.
Insira o URL completo de um repositório Git remoto.
Clique em Novo valor da política e insira os URLs completos dos repositórios Git remotos, conforme necessário.
Clique em Salvar para aplicar a restrição.
gcloud
Para definir uma restrição para repositórios Git remotos, você precisa do ID da organização. Encontre o ID da organização executando o comando organizations list
e procurando pelo ID numérico na resposta:
gcloud organizations list
A CLI gcloud retorna uma lista de organizações no seguinte formato:
DISPLAY_NAME ID example-organization1 29252605212 example-organization2 1234567890
Use o comando gcloud resource-manager org-policies set-policy
para definir a política da organização. É necessário fornecer a política como um arquivo JSON ou YAML.
Crie um arquivo JSON no seguinte formato:
{ "name": "organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
Substitua ORGANIZATION_ID
pelo ID numérico da organização.
Se você não quiser que os repositórios do Dataform se conectem a
repositórios Git remotos, defina uma política da organização com denyAll
definido como true
:
{ "name": "organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "denyAll": true } ] } }
Substitua ORGANIZATION_ID
pelo ID numérico da organização.
API
Use a API setOrgPolicy()
para definir a restrição. O Dataform pode se conectar aos URLs de repositórios Git remotos na lista allowedValue
especificada.
Por exemplo, a seguir há uma solicitação para aplicar a restrição dataform.restrictGitRemotes
em uma organização em que os repositórios remotos do Git selecionados podem se conectar:
POST https://orgpolicy.googleapis.com/v2/organizations/ORGANIZATION_ID/policies
ORGANIZATION_ID
é o ID numérico da organização.
No corpo da solicitação, forneça a política da organização desejada para essa restrição:
{ "name": "organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
Replace <code><var>ORGANIZATION_ID</var></code> with the numeric ID
of the organization.
Se você não quiser que os repositórios do Dataform se conectem a
repositórios Git remotos, defina uma política da organização com
denyAll
definido como true
:
{ "name": "organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "denyAll": true } ] } }
Replace <code><var>ORGANIZATION_ID</var></code> with the numeric ID
of the organization.
Se a política da organização já estiver definida, execute a seguinte solicitação com a definição da política da organização como corpo da solicitação:
PATCH https://orgpolicy.googleapis.com/v2/organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes
Definir a política da organização no nível do projeto
Definir uma política da organização no nível do projeto substitui ou é mesclada com a política da organização no nível da organização. Em caso de fusão, denyAll
tem precedência sobre allowedValues
. Por exemplo, se a política da organização no nível da organização estiver definida como denyAll
e a política mesclada no nível do projeto listar um URL de repositório remoto na lista allowedValues
, o Dataform não poderá se conectar ao repositório remoto. Nesse caso, a política da organização no nível do projeto precisa substituir a política no nível da organização para que o Dataform possa se conectar ao repositório remoto. Para saber mais sobre a hierarquia das políticas da organização, consulte Noções básicas sobre a avaliação da hierarquia.
Console
Siga o mesmo processo documentado em Definir a restrição de política da organização no nível da organização, mas escolha o projeto desejado no seletor de projetos, em vez da organização.
gcloud
Use o comando gcloud resource-manager org-policies set-policy
para definir a política da organização. É necessário fornecer a política como um arquivo JSON ou YAML.
Crie um arquivo JSON no seguinte formato:
{ "name": "projects/PROJECT_ID_OR_NUMBER/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
Substitua PROJECT_ID_OR_NUMBER
pelo ID ou número do projeto para essa política da organização.
Depois, passe o arquivo com sua solicitação :
gcloud resource-manager org-policies set-policy MY_POLICY.JSON --project=PROJECT_ID
API
Use a API setOrgPolicy()
para definir a restrição. O Dataform pode se conectar aos URLs de repositórios Git remotos na lista allowedValue
especificada.
Por exemplo, a solicitação a seguir aplica a restrição dataform.restrictGitRemotes
a uma organização em que os repositórios do Dataform só podem se conectar aos repositórios Git remotos selecionados, e a política constraints/dataform.restrictGitRemotes
ainda não está definida:
POST https://orgpolicy.googleapis.com/v2/projects/PROJECT_ID_OR_NUMBER/policies
O corpo da solicitação contém a política da organização desejada para essa restrição:
{ "name": "projects/PROJECT_ID_OR_NUMBER/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
Substitua PROJECT_ID_OR_NUMBER
pelo ID ou número do projeto para esta solicitação.
A seguir, há uma solicitação para aplicar a restrição dataform.restrictGitRemotes
a uma organização em que os repositórios do Dataform só podem se conectar aos repositórios Git remotos selecionados e a política constraints/dataform.restrictGitRemotes
já está definida:
PATCH https://orgpolicy.googleapis.com/v2/projects/PROJECT_ID_OR_NUMBER/policies/dataform.restrictGitRemotes
O corpo da solicitação contém a política da organização desejada para essa restrição:
{ "name": "projects/PROJECT_ID_OR_NUMBER/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
Substitua PROJECT_ID_OR_NUMBER
pelo ID ou número do projeto para esta solicitação.
Práticas recomendadas para permitir listas de remotos do Git
Para reduzir o risco de exfiltração de dados, defina explicitamente a restrição
dataform.restrictGitRemotes
para permitir uma lista de repositórios Git remotos confiáveis.Se você usar apenas repositórios do Dataform que não estão conectados a repositórios Git remotos, defina a restrição
dataform.restrictGitRemotes
comoDeny All
.Evite usar a lista
deniedValues
com essa restrição. Se você definir valores na listadeniedValues
, significa que apenas os repositórios Git remotos na listadeniedValues
estarão restritos de conexão. Essa pode ser uma preocupação de segurança se você quer controlar exatamente a quais repositórios Git remotos o Dataform pode se conectar. Se você quiser remover determinados repositórios Git remotos da listaallowedValues
, atualize a política da organização atual para removê-los da listaallowedValues
em vez de colocar o remoto na listadeniedValues
em uma hierarquia inferior.Se você quiser definir uma política da organização em grande parte da hierarquia de recursos, mas excluir determinados projetos, restaure a política padrão usando o método
setOrgPolicy
. Para isso, especifique o objetorestoreDefault
para permitir que todos os repositórios do Dataform nos projetos sejam conectados a repositórios Git remotos. As políticas atualmente em vigor para projetos não são afetadas pela configuração padrão.Use a Política da organização com os papéis do IAM para controlar melhor o acesso à base de código do Dataform.
Todos os repositórios do Dataform na organização ou no projeto com a política da organização ativada estão sujeitos a essa política. Se isso for um problema, recomendamos configurar outros serviços e produtos em um projeto diferente sem a aplicação da política da organização. Se necessário, use a VPC compartilhada.
Antes de definir a política
dataform.restrictGitRemotes
, informe a organização sobre a política e o administrador dela. Cabe a você ou a um administrador com as permissões necessárias gerenciar e manter a política.
A seguir
- Para saber mais sobre a política da organização, consulte Introdução ao serviço de política da organização.
- Para saber mais sobre as restrições da política da organização, consulte Restrições da política da organização.
- Para saber como gerenciar recursos do Google Cloud com o Resource Manager, consulte Gerenciar recursos do Google Cloud .