Avant de commencer
Avant de définir ou de modifier la règle dataform.restrictGitRemotes
, recherchez les URL complètes des dépôts Git distants que vous souhaitez ajouter à la liste d'autorisation.
Pour trouver l'URL complète d'un dépôt Git distant déjà connecté à un dépôt Dataform, procédez comme suit:
Dans la console Google Cloud, accédez à la page Dataform.
Sélectionnez un dépôt, puis cliquez sur Settings (Paramètres).
N'oubliez pas que les URL des dépôts distants affichés sur la page Dataform sont raccourcies et ne peuvent pas être utilisées dans la règle
dataform.restrictGitRemotes
.Sur la page Paramètres, sous Paramètres de connexion Git, copiez la valeur Source du dépôt.
La valeur Source du dépôt correspond à l'URL complète du dépôt distant. Vous pouvez utiliser cette URL dans la règle
dataform.restrictGitRemotes
.
Rôles requis
Pour obtenir les autorisations nécessaires pour gérer des règles d'administration, demandez à votre administrateur de vous accorder le rôle IAM Administrateur des règles d'administration (roles/orgpolicy.policyAdmin
) dans l'organisation.
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Ce rôle prédéfini contient les autorisations requises pour gérer les règles d'administration. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour gérer les règles d'administration:
-
orgpolicy.constraints.list
-
orgpolicy.policies.create
-
orgpolicy.policies.delete
-
orgpolicy.policies.list
-
orgpolicy.policies.update
-
orgpolicy.policy.get
-
orgpolicy.policy.set
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
À propos de la restriction des dépôts Git distants
Vous pouvez connecter un dépôt Dataform à un dépôt GitHub ou GitLab.
Vous pouvez limiter le pool de dépôts distants auxquels les dépôts Dataform peuvent se connecter afin d'empêcher des acteurs malveillants d'accéder à votre codebase et à vos jetons d'accès Dataform via des copies non protégées de votre dépôt.
Vous pouvez utiliser le service de règles d'administration pour créer une règle d'administration qui limite les URL de dépôt Git auxquelles Dataform peut se connecter.
La contrainte pour restreindre les dépôts Git distants dans Dataform est la suivante:
constraints/dataform.restrictGitRemotes
Pour utiliser la contrainte, vous devez créer une règle d'administration avec une liste allowedValues
d'URL de dépôts Git distants pouvant se connecter à un dépôt Dataform.
Les dépôts Git distants sont identifiés par leur adresse URL complète.
La règle dataform.restrictGitRemotes
a un effet rétroactif, ce qui signifie que la contrainte a un impact sur les dépôts Dataform préexistants.
Une fois la règle d'administration en place, le dépôt Dataform ne peut se connecter qu'aux dépôts Git distants répertoriés dans la liste allowedValues
. Les dépôts Git distants qui ne sont pas explicitement définis dans la règle d'administration ne peuvent pas se connecter à un dépôt Dataform.
Si vous ne définissez pas la règle dataform.restrictGitRemotes
, la communication entre les dépôts Dataform et les dépôts Git distants n'est pas limitée.
Vous pouvez utiliser la règle dataform.restrictGitRemotes
comme suit:
Allow all
- Les dépôts Dataform sont autorisés à se connecter à toutes leurs URL de dépôts distants. Sélectionnez cette option si votre organisation ne souhaite pas bloquer la communication avec les dépôts distants. Sinon, pour autoriser toutes les URL du dépôt distant, vous pouvez laisser la règle d'administration non définie.
allowedValues
liste d'URL- Les dépôts Dataform ne peuvent se connecter qu'aux dépôts distants figurant sur la liste d'autorisation. Sélectionnez cette option pour empêcher l'exfiltration de données.
Deny all
- Les dépôts Dataform ne sont pas autorisés à se connecter à des URL distantes. Sélectionnez cette option si votre organisation souhaite bloquer toute communication et utiliser des dépôts Dataform.
Spécifications concernant la mise sur liste d'autorisation de dépôts Git distants
Vous ne pouvez appliquer cette contrainte de liste qu'aux dépôts GitHub et GitLab.
La règle d'administration est appliquée de manière rétroactive et affecte les dépôts Dataform existants.
Cette contrainte accepte
allowedValues
, ce qui bloque la connexion à tous les autres dépôts Git distants, ouDeny all
. La valeur par défaut estAllow all
. Une règle d'administration non définie autorise la communication avec tous les dépôts Git distants. Nous vous recommandons de définir la règle d'administration surallowedValues
.C'est à vous ou à un administrateur disposant des autorisations requises de gérer et de maintenir la règle. Veillez à communiquer avec l'administrateur des règles au sein de votre organisation.
Définir la contrainte de règle d'administration au niveau de l'organisation
Console
- Accédez à la page /Règles d'administration/Règles d'administration.
- Si nécessaire, sélectionnez l'organisation requise dans le menu déroulant du projet.
- Cliquez sur Restreindre les dépôts Git distants pour les dépôts dans Dataform.
- Cliquez sur Gérer la règle. Si vous ne pouvez pas cliquer sur le bouton Gérer la règle, cela signifie que vous ne disposez pas des autorisations appropriées.
Sélectionnez Personnaliser pour définir la règle d'administration pour des dépôts Git distants spécifiques.
Sélectionnez les valeurs appropriées dans Application des règles et Type de règle.
Pour Valeurs de règles, sélectionnez Personnalisé.
Saisissez l'URL complète d'un dépôt Git distant.
Cliquez sur Nouvelle valeur de règle, puis saisissez les URL complètes des dépôts Git distants selon vos besoins.
Cliquez sur Enregistrer pour appliquer la contrainte.
gcloud
Pour définir une contrainte pour les dépôts Git distants, vous avez d'abord besoin de l'ID de votre organisation. Vous pouvez trouver l'ID de l'organisation en exécutant la commande organizations list
et en recherchant l'ID numérique dans la réponse :
gcloud organizations list
gcloud CLI renvoie une liste d'organisations au format suivant :
DISPLAY_NAME ID example-organization1 29252605212 example-organization2 1234567890
Exécutez la commande gcloud resource-manager org-policies set-policy
pour définir la règle d'administration. Vous devez fournir votre stratégie sous la forme d'un fichier JSON ou YAML.
Créez un fichier JSON au format suivant :
{ "name": "organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
Remplacez ORGANIZATION_ID
par l'ID numérique de l'organisation.
Si vous ne souhaitez pas que les dépôts Dataform puissent se connecter à des dépôts Git distants, vous pouvez définir une règle d'administration avec denyAll
défini sur true
:
{ "name": "organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "denyAll": true } ] } }
Remplacez ORGANIZATION_ID
par l'ID numérique de l'organisation.
API
Utilisez l'API setOrgPolicy()
pour définir votre contrainte. Dataform est autorisé à se connecter aux URL de dépôts Git distants dans la liste allowedValue
que vous spécifiez.
Par exemple, voici une requête permettant d'appliquer la contrainte dataform.restrictGitRemotes
à une organisation à laquelle certains dépôts Git distants peuvent se connecter à Dataform:
POST https://orgpolicy.googleapis.com/v2/organizations/ORGANIZATION_ID/policies
où ORGANIZATION_ID
est l'ID numérique de l'organisation.
À présent, dans le corps de votre requête, indiquez la règle d'administration souhaitée pour cette contrainte:
{ "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.
Si vous ne souhaitez pas que les dépôts Dataform puissent se connecter à des dépôts Git distants, vous pouvez définir une règle d'administration en définissant denyAll
sur 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.
Si la règle d'administration est déjà définie, vous devez exécuter la requête suivante avec la définition de la règle d'administration comme corps de la requête:
PATCH https://orgpolicy.googleapis.com/v2/organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes
Définir la règle d'administration au niveau du projet
La définition d'une règle d'administration au niveau du projet permet de remplacer ou de fusionner les règles d'administration au niveau de l'organisation. Dans le cas d'une fusion, denyAll
est prioritaire sur allowedValues
. Par exemple, si la règle d'administration au niveau de l'organisation est définie sur denyAll
et que la règle fusionnée au niveau du projet répertorie une URL de dépôt distant dans la liste allowedValues
, Dataform n'est pas autorisé à se connecter au dépôt distant. Dans ce cas, la règle d'administration au niveau du projet doit la remplacer au niveau de l'organisation, afin que Dataform puisse se connecter au dépôt distant. Pour en savoir plus sur la hiérarchie des règles d'administration, consultez Comprendre l'évaluation hiérarchique.
Console
Suivez la même procédure que celle décrite sous Définir la contrainte de règle d'administration au niveau de l'organisation, mais choisissez le projet souhaité dans le sélecteur de projet plutôt que dans l'organisation.
gcloud
Exécutez la commande gcloud resource-manager org-policies set-policy
pour définir la règle d'administration. Vous devez fournir votre stratégie sous la forme d'un fichier JSON ou YAML.
Créez un fichier JSON au format suivant :
{ "name": "projects/PROJECT_ID_OR_NUMBER/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
Remplacez PROJECT_ID_OR_NUMBER
par l'ID ou le numéro de projet de cette règle d'administration.
Ensuite, transmettez le fichier avec votre requête :
gcloud resource-manager org-policies set-policy MY_POLICY.JSON --project=PROJECT_ID
API
Utilisez l'API setOrgPolicy()
pour définir votre contrainte. Dataform est autorisé à se connecter aux URL de dépôts Git distants dans la liste allowedValue
que vous spécifiez.
Par exemple, voici une requête permettant d'appliquer la contrainte dataform.restrictGitRemotes
à une organisation dans laquelle les dépôts Dataform ne peuvent se connecter qu'aux dépôts Git distants sélectionnés. La règle constraints/dataform.restrictGitRemotes
n'est pas encore définie:
POST https://orgpolicy.googleapis.com/v2/projects/PROJECT_ID_OR_NUMBER/policies
Le corps de la requête contient la règle d'administration souhaitée pour cette contrainte:
{ "name": "projects/PROJECT_ID_OR_NUMBER/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
Remplacez PROJECT_ID_OR_NUMBER
par l'ID ou le numéro du projet concerné par cette requête.
Voici une requête permettant d'appliquer la contrainte dataform.restrictGitRemotes
à une organisation dans laquelle les dépôts Dataform ne peuvent se connecter qu'aux dépôts Git distants sélectionnés et où la règle constraints/dataform.restrictGitRemotes
est déjà définie:
PATCH https://orgpolicy.googleapis.com/v2/projects/PROJECT_ID_OR_NUMBER/policies/dataform.restrictGitRemotes
Le corps de la requête contient la règle d'administration souhaitée pour cette contrainte:
{ "name": "projects/PROJECT_ID_OR_NUMBER/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
Remplacez PROJECT_ID_OR_NUMBER
par l'ID ou le numéro du projet concerné par cette requête.
Bonnes pratiques pour ajouter des télécommandes Git à la liste d'autorisation
Pour atténuer le risque d'exfiltration des données, définissez explicitement la contrainte
dataform.restrictGitRemotes
pour ajouter à la liste d'autorisation une sélection de dépôts Git distants de confiance.Si vous n'utilisez que des dépôts Dataform qui ne sont pas connectés à des dépôts Git distants, définissez la contrainte
dataform.restrictGitRemotes
surDeny All
.Évitez d'utiliser la liste
deniedValues
avec cette contrainte. Si vous définissez des valeurs dans la listedeniedValues
, cela signifie que seuls les dépôts Git distants dans la listedeniedValues
sont soumis à des restrictions de connexion. Cela peut poser un problème de sécurité si vous souhaitez contrôler exactement les dépôts Git distants auxquels Dataform peut se connecter. Si vous souhaitez supprimer certains dépôts Git distants de la listeallowedValues
, mettez à jour la règle d'administration existante pour les supprimer de la listeallowedValues
au lieu de placer le dépôt distant dans la listedeniedValues
à un niveau hiérarchique inférieur.Si vous souhaitez définir une règle d'administration sur une grande partie de la hiérarchie des ressources, mais exclure certains projets, restaurez la règle d'administration par défaut à l'aide de la méthode
setOrgPolicy
en spécifiant l'objetrestoreDefault
pour autoriser la connexion de tous les dépôts Dataform des projets à des dépôts Git distants. Les règles actuellement en place pour les projets ne sont pas affectées par le paramètre par défaut.Utilisez les règles d'administration avec des rôles IAM pour mieux contrôler l'accès à votre codebase Dataform.
Tous les dépôts Dataform au sein de l'organisation ou du projet pour lesquels la règle d'administration est activée sont soumis à cette règle. Si cela pose problème, nous vous recommandons de configurer d'autres services et produits dans un autre projet auquel la règle d'administration n'est pas appliquée, et d'utiliser un VPC partagé, si nécessaire.
Avant de définir la règle
dataform.restrictGitRemotes
, veillez à communiquer avec elle à propos de la règle d'administration et de son administrateur au sein de votre organisation. C'est à vous ou à un administrateur disposant des autorisations requises de gérer et de maintenir la règle.
Étapes suivantes
- Pour en savoir plus sur les règles d'administration, consultez la page Présentation du service de règles d'administration.
- Pour en savoir plus sur les contraintes liées aux règles d'administration, consultez la page Contraintes liées aux règles d'administration.
- Pour apprendre à gérer les ressources Google Cloud avec Resource Manager, consultez la page Gérer les ressources Google Cloud.