En este documento, se muestra cómo usar el servicio de políticas de la organización para restringir el grupo de repositorios de Git remotos de terceros a los que se pueden conectar los repositorios de Dataform.
Antes de comenzar
Antes de establecer o editar la política de la organización dataform.restrictGitRemotes, busca las URLs completas de los repositorios de Git remotos que deseas agregar a la lista de entidades permitidas.
Para encontrar la URL completa de un repositorio de Git remoto que ya está conectado a un repositorio de Dataform, sigue estos pasos:
En la Google Cloud consola de, ve a la página Dataform.
Selecciona un repositorio y, luego, haz clic en Configuración.
Ten en cuenta que las URLs de los repositorios remotos que se muestran en la página Dataform se acortan y no se pueden usar en la
dataform.restrictGitRemotespolítica.En la página Configuración, en Configuración de conexión de Git, copia el valor de Fuente del repositorio.
El valor de Fuente del repositorio es la URL completa del repositorio remoto. Puedes usar esta URL en la política
dataform.restrictGitRemotes.
Roles obligatorios
Para obtener los permisos que
necesitas a fin de administrar las políticas de la organización,
pídele a tu administrador que te otorgue el
rol de IAM de administrador de políticas de la organización (roles/orgpolicy.policyAdmin) en la organización.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para administrar las políticas de la organización. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para administrar las políticas de la organización:
-
orgpolicy.constraints.list -
orgpolicy.policies.create -
orgpolicy.policies.delete -
orgpolicy.policies.list -
orgpolicy.policies.update -
orgpolicy.policy.get -
orgpolicy.policy.set
También puedes obtener estos permisos con roles personalizados o otros roles predefinidos.
Acerca de la restricción de repositorios de Git remotos
Puedes conectar un repositorio de Dataform a un repositorio de GitHub o GitLab.
Es posible que desees restringir el grupo de repositorios remotos a los que se pueden conectar los repositorios de Dataform para evitar que actores maliciosos accedan a tu base de código de Dataform y a los tokens de acceso a través de copias no protegidas de tu repositorio.
Puedes crear una política de la organización que restrinja a qué URLs de repositorios de Git se puede conectar Dataform.
La restricción para restringir repositorios de Git remotos en Dataform es la siguiente:
constraints/dataform.restrictGitRemotes
Para usar la restricción, crea una política de la organización con una lista allowedValues de URLs de repositorios de Git remotos que se pueden conectar a un repositorio de Dataform.
Los repositorios de Git remotos se identifican por su dirección URL completa.
La política dataform.restrictGitRemotes tiene un efecto retroactivo, lo que significa que la restricción afecta a los repositorios de Dataform preexistentes.
Cuando la política de la organización está vigente, el repositorio de Dataform solo puede conectarse a los repositorios de Git remotos que se enumeran en la lista allowedValues. Los repositorios de Git remotos que no están definidos de forma explícita en la política de la organización no pueden conectarse a un repositorio de Dataform.
Si no estableces la política dataform.restrictGitRemotes, no se restringirá la comunicación entre los repositorios de Dataform y los repositorios de Git remotos.
Puedes usar la política dataform.restrictGitRemotes de las siguientes maneras:
Allow all- Los repositorios de Dataform pueden conectarse a todas las URLs de repositorios remotos. Selecciona esta opción si tu organización no desea bloquear ninguna comunicación con repositorios remotos. Como alternativa, para permitir todas las URLs de repositorios remotos, puedes dejar sin configurar la política de la organización.
- Lista
allowedValuesde URLs - Los repositorios de Dataform pueden conectarse solo a los repositorios remotos incluidos en la lista de entidades permitidas. Selecciona esta opción para evitar la filtración de datos.
Deny all- Los repositorios de Dataform no pueden conectarse a ninguna URL remota. Selecciona esta opción si tu organización desea bloquear toda la comunicación y usar repositorios de Dataform.
Especificaciones para incluir en la lista de entidades permitidas repositorios de Git remotos
Puedes aplicar esta restricción de lista solo a los repositorios de GitHub y GitLab.
La política de la organización se aplica de forma retroactiva y afecta a los repositorios de Dataform existentes.
Esta restricción acepta
allowedValues, que bloquea la conexión a todos los demás repositorios de Git remotos, oDeny all. El valor predeterminado esAllow all- una política de la organización no establecida permite la comunicación con todos los repositorios de Git remotos. Te recomendamos que establezcas la política de la organización enallowedValues.Depende de ti o de un administrador que cuente con los permisos necesarios para administrar y mantener la política. Asegúrate de que se comunique la información sobre el administrador de políticas dentro de tu organización.
Establece la restricción de políticas de la organización a nivel de la organización
Console
Ve a la página Políticas de la organización.
Si es necesario, elige la organización requerida en el menú desplegable del proyecto.
Haz clic en Restringe controladores remotos de Git para los repositorios de Dataform.
Haz clic en Administrar política. Si no puedes hacer clic en el botón Administrar política, no tienes los permisos correctos.
Elige Personalizar para establecer la política de la organización para repositorios de Git remotos específicos.
Selecciona el Tipo de política y la Aplicación de política obligatorios.
En Valores de la política, elige Personalizado.
Ingresa la URL completa de un repositorio de Git remoto.
Haz clic en Nuevo valor de la política e ingresa las URLs completas de los repositorios de Git remotos según sea necesario.
Haz clic en Guardar para aplicar la restricción.
gcloud
Primero necesitas el ID de tu organización si quieres establecer una restricción para los repositorios de Git remotos. Puedes encontrar el ID de la organización si ejecutas el
organizations list comando y
buscas el ID numérico en la respuesta:
gcloud organizations list
Gcloud CLI muestra una lista de organizaciones en el siguiente formato:
DISPLAY_NAME ID example-organization1 29252605212 example-organization2 1234567890
Usa el
gcloud resource-manager org-policies set-policy comando
para establecer la política de la organización. Debes proporcionar tu política como un archivo JSON o YAML.
Crea un archivo JSON en el siguiente formato:
{
"name": "organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes",
"spec": {
"rules": [
{
"values": {
"allowedValues": ["https://github.com/example/allowed-repository.git"]
}
}
]
}
}
Reemplaza