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 que já está 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.
Os URLs dos 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 Origem do repositório.
O valor 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 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 conjunto de repositórios remotos que os repositórios do Dataform podem conectar para impedir que atores maliciosos acessem a base de código e os tokens de acesso do Dataform por meio de cópias desprotegidas do repositório.
Use o serviço de políticas da organização para criar uma política que restringe os URLs de repositório do Git aos quais 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 de organização com uma
lista allowedValues
de URLs
de repositórios remotos do Git 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íticadataform.restrictGitRemotes
tem um efeito retroativo, o que
significa que a restrição afeta os repositórios do Dataform já existentes.
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 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 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 de formulário de dados podem se conectar a todos os URLs de repositório remoto. Selecione essa opção se a organização não quiser bloquear nenhuma comunicação com repositórios remotos. Como alternativa, para permitir todos os URLs de repositório remoto, você pode deixar a política de organização indefinida.
allowedValues
lista de URLs- Os repositórios do Dataform só podem se conectar aos repositórios remotos permitidos. 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 a organização quiser bloquear toda a comunicação e usar os repositórios do Dataform.
Especificações para a lista de permissões de 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.
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 de organização não definida permite a comunicação com todos os repositórios remotos do Git. 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. Informe o administrador da política na sua organização.
Definir a restrição de política 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 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 de repositórios Git remotos, você precisa saber o
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. Será preciso 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
qualquer repositório Git remoto, 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, a seguir há uma solicitação para aplicar a
restrição dataform.restrictGitRemotes
a uma organização em que os repositórios remotos
do Git e do Dataform selecionados podem se conectar a:
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 possam se conectar a
qualquer repositório Git remoto, 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
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. Em caso de 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 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 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. Será preciso 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 esta política de 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, a seguir está uma solicitação para aplicar a restrição
dataform.restrictGitRemotes
a uma organização em que os repositórios do Dataform podem se conectar apenas 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 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 podem se conectar apenas 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 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 para esta solicitação.
Práticas recomendadas para permitir a lista de repositórios remotos do Git
Para reduzir o risco de exfiltração de dados, defina explicitamente a restrição
dataform.restrictGitRemotes
para permitir uma seleção de repositórios Git remotos confiáveis.Se você só usar 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 à conexão. Isso pode ser uma preocupação de segurança se você quer controlar exatamente quais repositórios Git remotos o Dataform pode 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 eximir determinados projetos, restaure a política padrão da organização usando o método
setOrgPolicy
e especifique o objetorestoreDefault
para permitir que todos os repositórios do Dataform nos projetos sejam conectados a repositórios remotos do Git. 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
, comunique 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 Google Cloud com o Resource Manager, consulte Gerenciar recursos Google Cloud .