Antes de começar
Antes de definir ou editar a política dataform.restrictGitRemotes, encontre os URLs completos dos repositórios Git remotos que quer adicionar à lista de autorizações.
Para encontrar o URL completo de um repositório Git remoto que já esteja ligado a um repositório do Dataform, siga estes passos:
Na Google Cloud consola, aceda à página Dataform.
Selecione um repositório e, de seguida, clique em Definições.
Tenha em atenção que os URLs de repositórios remotos apresentados na página do Dataform são abreviados e não podem ser usados na política
dataform.restrictGitRemotes.Na página Definições, em Definições de ligação Git, copie o valor de Origem do repositório.
O valor Origem do repositório é o URL completo do repositório remoto. Pode usar este URL na política
dataform.restrictGitRemotes.
Funções necessárias
Para receber as autorizações de que precisa para gerir políticas da organização,
peça ao seu administrador que lhe conceda a função de IAM de
administrador da política da organização (roles/orgpolicy.policyAdmin)
na organização.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Esta função predefinida contém as autorizações necessárias para gerir políticas da organização. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
São necessárias as seguintes autorizações para gerir 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
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Acerca da restrição de repositórios Git remotos
Pode associar um repositório do Dataform a um repositório do GitHub ou do GitLab.
Recomendamos que restrinja o conjunto de repositórios remotos aos quais os repositórios do Dataform podem estabelecer ligação para impedir que atores maliciosos acedam ao seu código base do Dataform e tokens de acesso através de cópias não protegidas do seu repositório.
Pode usar o serviço de políticas da organização para criar uma política da organização que restringe os URLs do repositório Git aos quais o Dataform se pode ligar.
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
allowedValues lista de URLs
de repositórios Git remotos que podem estabelecer ligação a um repositório do Dataform.
Os repositórios Git remotos são identificados pelo respetivo endereço URL completo.
A política dataform.restrictGitRemotes tem um efeito retroativo, o que significa que a restrição afeta os repositórios do Dataform pré-existentes.
Quando a política da organização está em vigor, o repositório do Dataform só pode estabelecer ligação aos repositórios Git remotos que estão listados na lista allowedValues. Os repositórios Git remotos que não estão explicitamente definidos na política da organização estão proibidos de se ligarem a um repositório do Dataform.
Se 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 é restrita.
Pode usar a dataform.restrictGitRemotes política
das seguintes formas:
Allow all- Os repositórios do Dataform podem estabelecer ligação a todos os URLs de repositórios remotos. Selecione esta opção se a sua organização não quiser bloquear nenhuma comunicação com repositórios remotos. Em alternativa, para permitir todos os URLs de repositórios remotos, pode deixar a política da organização não definida.
allowedValueslista de URLs- Os repositórios do Dataform só podem estabelecer ligação aos repositórios remotos na lista de autorizações. Selecione esta opção para impedir a exfiltração de dados.
Deny all- Os repositórios do Dataform não podem estabelecer ligação a URLs remotos. Selecione esta opção se a sua organização quiser bloquear todas as comunicações e usar repositórios do Dataform.
Especificações para a inclusão na lista de autorizações de repositórios Git remotos
Pode aplicar esta restrição de lista apenas a repositórios do GitHub e GitLab.
A política da organização é aplicada retroativamente e afeta os repositórios do Dataform existentes.
Esta restrição aceita
allowedValues, bloqueando a ligação a todos os outros repositórios Git remotos, ouDeny all. A predefinição éAllow all. Uma política de organização não definida permite a comunicação com todos os repositórios Git remotos. Recomendamos que defina a política da organização comoallowedValues.É da sua responsabilidade ou de um administrador com as autorizações necessárias gerir e manter a política. Certifique-se de que existe comunicação sobre o administrador de políticas na sua organização.
Defina a restrição da política da organização ao nível da organização
Consola
- Aceda à página /Organizational Policies/Organization Policies.
- Se necessário, selecione a organização necessária no menu pendente do projeto.
- Clique em Restringir remotos do Git para repositórios no Dataform.
- Clique em Gerir política. Se não conseguir clicar no botão Gerir política, não tem as autorizações corretas.
Selecione Personalizar para definir a política da organização para repositórios Git remotos específicos.
Selecione a Aplicação de políticas e o Tipo de política necessários.
Para Valores da política, selecione Personalizado.
Introduza o URL completo de um repositório Git remoto.
Clique em Novo valor da política e introduza os URLs completos dos repositórios Git remotos conforme necessário.
Clique em Guardar para aplicar a restrição.
gcloud
Para definir uma restrição para repositórios Git remotos, primeiro precisa do ID da sua organização. Pode encontrar o ID da organização executando o comando organizations list e procurando o ID numérico na resposta:
gcloud organizations list
A CLI gcloud devolve 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. Tem de fornecer a sua política como um ficheiro JSON ou YAML.
Crie um ficheiro 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 não quiser que os repositórios do Dataform possam estabelecer ligação a quaisquer repositórios Git remotos, pode definir 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 autorização para se ligar aos URLs do repositório Git remoto na lista allowedValue que especificar.
Por exemplo, o seguinte é um pedido para aplicar a restrição dataform.restrictGitRemotes a uma organização onde os repositórios Git remotos selecionados se podem ligar aos repositórios Dataform:
POST https://orgpolicy.googleapis.com/v2/organizations/ORGANIZATION_ID/policies
onde ORGANIZATION_ID é o ID numérico da organização.
Agora, no corpo do pedido, indique a política de organização pretendida para esta 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