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 incluir na lista de permissões.
Para encontrar o URL completo de um repositório Git remoto que já esteja conectado a um repositório do Dataform, siga estas etapas:
No console do Google Cloud, acesse a página Dataform.
Selecione um repositório e clique em Configurações.
Lembre-se de que os URLs de repositórios remotos exibidos na página Dataform são encurtados 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 da Origem do repositório é o URL completo do repositório remoto. Você pode 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 como conceder papéis, consulte Gerenciar acesso.
Esse papel predefinido contém as permissões necessárias para gerenciar 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 seguintes permissões 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
Talvez você também consiga receber essas permissões com papéis personalizados 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.
Você pode restringir o conjunto de repositórios remotos a que os repositórios do Dataform podem se conectar para impedir que agentes mal-intencionados acessem sua base de código do Dataform e os tokens de acesso por cópias desprotegidas do seu repositório.
É possível usar o Serviço de política da organização para criar uma política da organização que restrinja os URLs do repositório 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 de URL completo.
A política dataform.restrictGitRemotes
tem um efeito retroativo, o que
significa que a restrição afeta repositórios preexistentes do Dataform.
Quando a política da organização estiver em vigor, o repositório do Dataform poderá
se conectar apenas aos repositórios Git remotos que estão na
lista allowedValues
. Os repositórios Git remotos que não sã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 os repositórios do Dataform e os 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 têm permissão para se conectar a todos os URLs dos repositórios remotos. Selecione essa opção se sua organização não quiser bloquear a comunicação com repositórios remotos. Como alternativa, para permitir todos os URLs de repositórios remotos, você pode deixar a política da organização sem definição.
allowedValues
lista de URLs- Os repositórios do Dataform têm permissão para se conectar apenas aos repositórios remotos que estão na lista de permissões. Selecione esta opção para evitar a exfiltração de dados.
Deny all
- Os repositórios do Dataform não têm permissão para se conectar a URLs remotos. Selecione essa opção se sua organização quiser bloquear toda a comunicação e usar os repositórios do Dataform.
Especificações para adicionar repositórios Git remotos à lista de permissões
É possível aplicar essa restrição de lista apenas aos repositórios do GitHub e do GitLab.
A política da organização é aplicada de forma retroativa 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 de políticas 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 /Políticas da organização/Políticas da organização.
- Se necessário, selecione a organização no menu suspenso do projeto.
- Clique em Restringir git remotos para 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.
Digite 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, primeiro 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. Forneça sua 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 tem permissão para se conectar aos
URLs do repositório Git remoto na lista allowedValue
especificada.
Por exemplo, veja a seguir uma solicitação para aplicar a
restrição dataform.restrictGitRemotes
a uma organização em que os repositórios Git remotos
do Dataform podem se conectar:
POST https://orgpolicy.googleapis.com/v2/organizations/ORGANIZATION_ID/policies
ORGANIZATION_ID
é o ID numérico da organização.
Agora, 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, você precisará executar 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
Defina a política da organização no nível do projeto
A definição de uma política da organização no nível do projeto substitui ou mescla com
a política da organização no
nível da organização. No caso de uma mesclagem, 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 do repositório remoto na lista allowedValues
, o Dataform não terá permissão para se conectar ao repositório remoto. Nesse caso, a política da organização no nível do projeto precisa
modificar 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 de 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. Forneça sua 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 da 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 tem permissão para se conectar aos
URLs do repositório Git remoto na lista allowedValue
especificada.
Por exemplo, veja a seguir 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
ainda não foi 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 pretendida para esta 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 da solicitação.
Confira a seguir uma solicitação para aplicar a restrição
dataform.restrictGitRemotes
a uma organização em que
os repositórios do Dataform possam se conectar apenas aos repositórios Git
remotos selecionados e
a política constraints/dataform.restrictGitRemotes
já esteja 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 pretendida para esta 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 da solicitação.
Práticas recomendadas para adicionar controles remotos do Git à lista de permissões
Para reduzir o risco de exfiltração de dados, defina explicitamente a restrição
dataform.restrictGitRemotes
para adicionar uma seleção de repositórios Git remotos confiáveis.Se você usa 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
, isso significa que somente os repositórios Git remotos na listadeniedValues
estão restritos à 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 controle 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 isentar determinados projetos, restaure a política padrão usando o método
setOrgPolicy
especificando o objetorestoreDefault
para permitir que todos os repositórios do Dataform nos projetos se conectem 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 à sua 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 que não tenha a política da organização aplicada e usar a VPC compartilhada, se necessário.
Antes de definir a política
dataform.restrictGitRemotes
, garanta a comunicação sobre a política da organização 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íticas 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 seus recursos do Google Cloud.