Présentation
Ce guide explique comment définir une règle d'administration incluant la contrainte d'emplacement des ressources.
Vous pouvez limiter l'emplacement physique d'une nouvelle ressource à l'aide de la contrainte d'emplacement des ressources du service de règles d'administration. Vous pouvez utiliser la propriété "location" d'une ressource pour identifier où celle-ci est déployée et gérée par le service. Pour les ressources contenant des données de certains services Google Cloud, cette propriété indique également l'emplacement où les données sont stockées. Cette contrainte vous permet de définir les emplacements Google Cloud autorisés dans lesquels les ressources des services compatibles de votre hiérarchie peuvent être créées.
Une fois que vous avez défini les emplacements des ressources, cette limitation ne s'applique qu'aux ressources nouvellement créées. Les ressources que vous avez créées avant de définir la contrainte d'emplacement des ressources continueront d'exister et d'exécuter leur fonction.
Les règles qui incluent cette contrainte ne seront pas appliquées à la création de sous-ressources pour certains services, tels que Cloud Storage et Dataproc.
Limites
La contrainte d'emplacement des ressources du service de règles d'administration contrôle la possibilité de créer des ressources pour lesquelles un emplacement peut être sélectionné. Cette contrainte n'affecte pas l'emplacement de création des ressources globales, telles que les adresses globales Compute Engine ou les ressources qui ne permettent pas de sélectionner un emplacement.
Pour éviter de modifier de façon destructive l'infrastructure de diffusion existante, vous devez tester les stratégies sur des projets et des dossiers hors production, puis appliquer ces stratégies progressivement au sein de votre organisation.
Pour en savoir plus sur les engagements relatifs au stockage de données, consultez les Conditions d'utilisation de Google Cloud Platform et les Conditions spécifiques au service. Les règles d'administration contenant la contrainte d'emplacement des ressources ne constituent pas des engagements de stockage de données.
Cette contrainte s'applique à un sous-ensemble spécifique de types de ressources et de produits. Pour obtenir la liste des services compatibles et des détails sur le comportement de chaque service, consultez la page Services compatibles avec les emplacements de ressources.
Types d'emplacement
Vous pouvez déployer des ressources Google Cloud dans des types d'emplacement qui représentent différentes catégories de taille.
Le plus grand type d'emplacement est le multi-region
, qui inclut plusieurs éléments region
. Chaque élément region
se subdivise en zones
. Pour en savoir plus sur les régions et les zones, consultez la page Présentation des régions et des zones.
Les emplacements
Multi-region
sont protégés par des ressources physiques dans plusieurs élémentsregion
et ne sont généralement utilisés que par les ressources de stockage. Exemple :us
,asia
,europe
etglobal
.Les emplacements
Region
sont géographiquement isolés les uns des autres. Quelques exemples incluentus-west1
(Oregon),asia-northeast1
(Tokyo) eteurope-west1
(Belgique).Les emplacements
Zone
constituent le type d'emplacement le plus précis et isolé qui est utilisé pour le déploiement de ressources. Unezone
est un domaine de défaillance indépendant au sein d'une région (region
). Exemples :us-east1-b
,us-west1-b
etasia-northeast1-a
.
Lors de la configuration des emplacements, vous devez utiliser le préfixe in:
ainsi qu'un groupe de valeurs. L'utilisation d'un groupe de valeurs sélectionné par Google Cloud vous permet de choisir un ou plusieurs emplacements géographiques, sans avoir à spécifier d'emplacements cloud actuels ou futurs.
Le préfixe in:
d'un groupe de valeurs spécifie que toutes les valeurs qui existent dans le groupe de valeurs sont considérées comme faisant partie de la règle. Si vous saisissez une valeur de groupe ou une région Google Cloud sans le préfixe, le préfixe in:
est automatiquement ajouté selon les règles ci-dessous:
- Si vous saisissez un emplacement qui utilise le préfixe
in:
et qui contient un groupe non valide, le changement de stratégie échoue. - Si vous saisissez un emplacement qui est une région, tel que
us-east1
, le préfixein:
est ajouté (àin:us-east1-locations
dans cet exemple). - Si vous saisissez une région ou un groupe de valeurs multirégional tel que
us-locations
, le préfixein:
est ajouté (àin:us-locations
dans cet exemple). - Si vous saisissez une zone ou un emplacement multirégional tel que
us-east1-b
ouus
, les valeurs ne sont pas modifiées.
Définir la règle d'administration
La contrainte d'emplacement de ressources est un type de contrainte de liste.
Vous pouvez ajouter et supprimer des emplacements dans les listes allowed_values
ou denied_values
d'une contrainte d'emplacement de ressources. Pour éviter que les règles d'administration ne restreignent le comportement des services de façon inattendue, utilisez un groupe de valeurs ou une liste d'éléments allowed_values
représentant la limite géographique que vous souhaitez définir.
Pour définir une règle d'administration incluant une contrainte d'emplacement de ressource, procédez comme suit :
Console
Dans la console Google Cloud, accédez à la page Règles d'administration.
Dans le sélecteur de projets, sélectionnez l'organisation, le dossier ou le projet pour lequel vous souhaitez définir la règle d'administration.
Sélectionnez la contrainte Google Cloud Platform - Restriction d'emplacement des ressources pour ouvrir sa page Détails de la règle.
Cliquez sur Gérer la règle.
Sur la page Modifier la règle, sélectionnez Remplacer la règle parente.
Sous Application des règles, sélectionnez Remplacer.
Cliquez sur Ajouter une règle.
Sous Valeurs de règles, sélectionnez Personnalisé.
Sous Type de règle, sélectionnez Autoriser pour créer une liste de zones géographiques autorisées ou Refuser pour créer une liste de zones géographiques refusées.
Dans la zone Valeur de la règle, saisissez le préfixe
in
et une chaîne d'emplacement groupe de valeurs, puis appuyez sur Entrée.Par exemple,
in:us-locations
ouin:us-west1-locations
. Vous pouvez saisir plusieurs chaînes de lieu en cliquant sur Nouvelle valeur de règle.Vous pouvez également entrer des emplacements relatifs à plusieurs régions, à une région ou à une zone spécifiques en tant que chaînes d'emplacement. Pour obtenir la liste des emplacements disponibles, consultez la page Services compatibles avec les emplacements de ressources.
Pour appliquer la règle, cliquez sur Définir la règle.
gcloud
Pour créer une règle d'administration qui applique la contrainte d'emplacement des ressources, créez un fichier YAML de règle qui référence la contrainte:
name: organizations/ORGANIZATION_ID/policies/gcp.resourceLocations
spec:
rules:
- values:
deniedValues:
- in:us-east1-locations
- in:northamerica-northeast1-locations
Pour appliquer la règle d'administration contenant la contrainte, exécutez la commande suivante:
gcloud org-policies set-policy POLICY_PATH
Remplacez les éléments suivants :
ORGANIZATION_ID
: ID de votre organisation (par exemple, 01234567890).POLICY_PATH
: chemin d'accès complet au fichier YAML contenant la règle d'administration.
Une réponse renvoie les résultats de la nouvelle règle d'administration :
name: organizations/01234567890/policies/gcp.resourceLocations
spec:
rules:
- values:
allowedValues:
- in:us-east1-locations
- in:northamerica-northeast1-locations
Vous pouvez également entrer des emplacements relatifs à plusieurs régions, à une région ou à une zone spécifiques en tant que chaînes d'emplacement. Pour obtenir la liste des emplacements disponibles, consultez la page Services compatibles avec les emplacements de ressources.
API
Vous pouvez utiliser l'API Resource Manager pour définir une règle d'administration pour une ressource. Vous aurez besoin d'un jeton de support OAuth 2.0 pour l'authentification et l'autorisation.
Pour définir une règle d'administration à l'aide de la contrainte d'emplacement des ressources, procédez comme suit :
curl -X POST -H "Content-Type: application/json" -H "Authorization: \
Bearer ${bearer_token}" -d '{policy: {etag: "BwVtXec438Y=", constraint: \
"constraints/gcp.resourceLocations", list_policy: {denied_values: \
["in:europe-locations", "in:southamerica-locations"] }}}' \
https://cloudresourcemanager.googleapis.com/v1/organizations/123456789:setOrgPolicy
Une réponse renvoie les résultats de la nouvelle règle d'administration :
name: organizations/01234567890/policies/gcp.resourceLocations
spec:
rules:
- values:
deniedValues:
- in:europe-locations
- in:southamerica-locations
Vous pouvez également entrer des emplacements relatifs à plusieurs régions, à une région ou à une zone spécifiques en tant que chaînes d'emplacement. Pour obtenir la liste des emplacements disponibles, consultez la page Services compatibles avec les emplacements de ressources.
Pour en savoir plus sur l'utilisation de contraintes dans les règles d'administration, consultez la page Utiliser des contraintes.
Utiliser l'héritage dans la règle d'administration
Vous pouvez affiner votre règle d'administration de manière à hériter de la règle d'administration des nœuds parents de la ressource. L'héritage vous accorde un contrôle précis sur les règles d'administration utilisées dans votre hiérarchie de ressources.
Pour activer l'héritage sur un nœud de ressource, définissez inheritFromParent = true
dans le fichier YAML de la règle d'administration. Exemple :
name: organizations/01234567890/policies/gcp.resourceLocations
spec:
inheritFromParent: true
rules:
- values:
deniedValues:
- in:us-west1
Exemple de message d'erreur
Les services qui acceptent la contrainte d'emplacement des ressources ne peuvent pas créer de ressources dans les emplacements qui ne respecteraient pas la contrainte. Si un service tente de créer une ressource dans un emplacement qui enfreint la contrainte, la tentative échoue et un message d'erreur est généré.
Ce message d'erreur aura le format suivant : LOCATION_IN_REQUEST violates constraint
constraints/gcp.resourceLocations on the resource RESOURCE_TESTED.
Dans l'exemple suivant, une ressource Compute Engine ne parvient pas à créer une instance en raison de l'application des règles :
Location ZONE:us-east1-b violates constraint constraints/gcp.resourceLocations
on the resource
projects/policy-violation-test/zones/us-east1-b/instances/instance-3.
Entrée de journal Google Cloud Observability et Cloud Audit Logs:
{
insertId: "5u759gdngec"
logName: "projects/policy-violation-test/logs/cloudaudit.googleapis.com%2Factivity"
protoPayload: {
@type: "type.googleapis.com/google.cloud.audit.AuditLog"
authenticationInfo: {…}
authorizationInfo: [6]
methodName: "beta.compute.instances.insert"
request: {…}
requestMetadata: {…}
resourceLocation: {…}
resourceName: "projects/policy-violation-test/zones/us-east1-b/instances/instance-3"
response: {
@type: "type.googleapis.com/error"
error: {
code: 412
errors: [
0: {
domain: "global"
location: "If-Match"
locationType: "header"
message: "Location ZONE:us-east1-b violates constraint constraints/gcp.resourceLocations on the resource projects/policy-violation-test/zones/us-east1-b/instances/instance-3."
reason: "conditionNotMet"
}
]
message: "Location ZONE:us-east1-b violates constraint constraints/gcp.resourceLocations on the resource projects/policy-violation-test/zones/us-east1-b/instances/instance-3."
}
}
serviceName: "compute.googleapis.com"
status: {
code: 3
message: "INVALID_ARGUMENT"
}
}
receiveTimestamp: "2019-06-14T03:04:23.660988360Z"
resource: {
labels: {…}
type: "gce_instance"
}
severity: "ERROR"
timestamp: "2019-06-14T03:04:22.783Z"
}
Détection des failles et correction
La contrainte d'emplacement de ressource limite la création de ressources au moment de l'exécution. Cette fonctionnalité permet d'éviter le non-respect des règles d'emplacement, mais n'identifie ni ne corrige les erreurs existantes. Vous pouvez utiliser Security Health Analytics, un service intégré de Security Command Center, pour détecter les infractions aux règles d'emplacement dans votre hiérarchie de ressources. Pour en savoir plus, consultez la page Résultats des failles liées aux règles d'administration.
Si Security Health Analytics révèle des cas de non-respect des règles d'emplacement, consultez la page Corriger les résultats de Security Health Analytics pour connaître la procédure à suivre.
Groupes de valeurs
Les groupes de valeurs sont des ensembles de groupes et d'emplacements organisés par Google pour fournir un moyen simple de définir l'emplacement de vos ressources. Les groupes de valeurs comprennent de nombreux emplacements associés et sont étendus par Google au fil du temps sans qu'il soit nécessaire de modifier la règle d'administration pour s'adapter aux nouveaux emplacements.
Pour utiliser des groupes de valeurs dans vos règles d'administration, ajoutez la chaîne in:
à vos entrées en tant que préfixe. Pour en savoir plus sur l'utilisation des préfixes de valeurs, consultez la page Utiliser des contraintes.
Les noms de groupe sont validés lors de l'appel permettant de définir la règle d'administration. L'utilisation d'un nom de groupe non valide entraîne l'échec du paramètre de stratégie.
Le tableau suivant contient la liste actuelle des groupes disponibles :
Groupe | Détails | Membres directs |
---|---|---|
Johannesburg | Tous les emplacements à Johannesburg:in:africa-south1-locations |
Valeurs :
|
Asie | Tous les emplacements en Asie :in:asia-locations |
Groupes :
Valeurs :
|
Hong Kong | Tous les emplacements à Hong Kong :in:asia-east2-locations |
Valeurs :
|
Indonésie | Tous les emplacements en Indonésie:in:id-locations |
Groupes :
Valeurs :
|
Jakarta | Tous les emplacements à Jakarta :in:asia-southeast2-locations |
Valeurs :
|
Israël | Tous les emplacements en Israël:in:il-locations |
Groupes :
Valeurs :
|
Israël | Tous les emplacements en Israël:in:me-west1-locations |
Valeurs :
|
Inde | Tous les emplacements en Inde:in:in-locations |
Groupes :
Valeurs :
|
Mumbai | Tous les emplacements à Mumbai :in:asia-south1-locations |
Valeurs :
|
Delhi | Tous les emplacements à Delhi :in:asia-south2-locations |
Valeurs :
|
Japon | Tous les emplacements au Japon:in:jp-locations |
Groupes :
Valeurs :
|
Tokyo | Tous les emplacements à Tokyo :in:asia-northeast1-locations |
Valeurs :
|
Osaka | Tous les emplacements à Osaka :in:asia-northeast2-locations |
Valeurs :
|
Corée du Sud | Tous les emplacements en Corée du Sud:in:kr-locations |
Groupes :
Valeurs :
|
Séoul | Tous les emplacements à Séoul :in:asia-northeast3-locations |
Valeurs :
|
Doha | Tous les emplacements à Doha:in:me-central1-locations |
Valeurs :
|
Arabie saoudite | Tous les emplacements en Arabie saoudite:in:sa-locations |
Groupes :
Valeurs :
|
Dammam | Tous les emplacements à Dammam:in:me-central2-locations |
Valeurs :
|
Singapour | Tous les emplacements à Singapour :in:sg-locations |
Groupes :
Valeurs :
|
Singapour | Tous les emplacements à Singapour :in:asia-southeast1-locations |
Valeurs :
|
Taïwan | Tous les emplacements à Taïwan :in:tw-locations |
Groupes :
Valeurs :
|
Taïwan | Tous les emplacements à Taïwan :in:asia-east1-locations |
Valeurs :
|
Australie | Tous les emplacements en Australie :in:australia-locations |
Groupes :
Valeurs :
|
Sydney | Tous les emplacements à Sydney :in:australia-southeast1-locations |
Valeurs :
|
Melbourne | Tous les emplacements à Melbourne :in:australia-southeast2-locations |
Valeurs :
|
AWS | Tous les emplacements AWS :in:aws-locations |
Valeurs :
|
Azure | Tous les emplacements Azure :in:azure-locations |
Valeurs :
|
Union européenne | Tous les emplacements dans l'Union européenne :in:eu-locations |
Groupes :
Valeurs :
|
Allemagne | Tous les emplacements en Allemagne:in:de-locations |
Groupes :
Valeurs :
|
Berlin | Tous les emplacements à Berlin:in:europe-west10-locations |
Valeurs :
|
Francfort | Tous les emplacements à Francfort :in:europe-west3-locations |
Valeurs :
|
Varsovie | Tous les emplacements à Varsovie :in:europe-central2-locations |
Valeurs :
|
Finlande | Tous les emplacements en Finlande :in:europe-north1-locations |
Valeurs :
|
Madrid | Tous les emplacements à Madrid:in:europe-southwest1-locations |
Valeurs :
|
Belgique | Tous les emplacements en Belgique :in:europe-west1-locations |
Valeurs :
|
Pays-Bas | Tous les emplacements aux Pays-Bas :in:europe-west4-locations |
Valeurs :
|
Paris | Tous les emplacements à Paris:in:europe-west9-locations |
Valeurs :
|
Italy | Tous les emplacements en Italie:in:it-locations |
Groupes :
Valeurs :
|
Turin | Tous les emplacements à Turin:in:europe-west12-locations |
Valeurs :
|
Milan | Tous les emplacements à Milan:in:europe-west8-locations |
Valeurs :
|
Europe | Tous les emplacements en Europe :in:europe-locations |
Groupes :
Valeurs :
|
Suisse | Tous les emplacements en Suisse:in:ch-locations |
Groupes :
Valeurs :
|
Zurich | Tous les emplacements à Zurich :in:europe-west6-locations |
Valeurs :
|
Royaume-Uni | Tous les emplacements au Royaume-Uni:in:gb-locations |
Groupes :
Valeurs :
|
Londres | Tous les emplacements à Londres :in:europe-west2-locations |
Valeurs :
|
Emplacements à faible émission de carbone | Tous les emplacements à faible impact carbone:in:low-carbon-locations |
Groupes :
|
Canada à faible émission de carbone | Tous les emplacements au Canada à faible impact carbone:in:canada-low-carbon-locations |
Groupes :
|
Montréal | Tous les emplacements à Montréal :in:northamerica-northeast1-locations |
Valeurs :
|
Toronto | Tous les emplacements à Toronto :in:northamerica-northeast2-locations |
Valeurs :
|
Union européenne à faible émission de carbone | Tous les emplacements dans l'Union européenne à faible impact carbone:in:eu-low-carbon-locations |
Groupes :
|
Europe à faible émission de carbone | Tous les emplacements en Europe à faible impact carbone:in:europe-low-carbon-locations |
Groupes :
|
Amérique du Nord à faible émission de carbone | Tous les emplacements en Amérique du Nord à faible impact carbone:in:northamerica-low-carbon-locations |
Groupes :
|
Iowa | Tous les emplacements en Iowa :in:us-central1-locations |
Valeurs :
|
Oregon | Tous les emplacements en Oregon :in:us-west1-locations |
Valeurs :
|
Amérique du Sud à faible émission de carbone | Tous les emplacements en Amérique du Sud à faible impact carbone:in:southamerica-low-carbon-locations |
Groupes :
|
São Paulo | Tous les emplacements à São Paulo :in:southamerica-east1-locations |
Valeurs :
|
États-Unis à faible émission de carbone | Tous les emplacements aux États-Unis ayant un faible impact carbone:in:us-low-carbon-locations |
Groupes :
|
Amérique du Nord | Tous les emplacements en Amérique du Nord :in:northamerica-locations |
Groupes :
Valeurs :
|
Canada | Tous les emplacements au Canada.in:canada-locations |
Groupes :
Valeurs :
|
Mexique | Tous les emplacements au Mexique:in:northamerica-south1-locations |
Valeurs :
|
États-Unis | Tous les emplacements aux États-Unis :in:us-locations |
Groupes :
Valeurs :
|
Oklahoma | Tous les emplacements en Oklahoma :in:us-central2-locations |
Valeurs :
|
Caroline du Sud | Toutes les zones en Caroline du Sud :in:us-east1-locations |
Valeurs :
|
Virginie du Nord | Tous les emplacements en Virginie du Nord :in:us-east4-locations |
Valeurs :
|
Columbus | Tous les emplacements à Columbus:in:us-east5-locations |
Valeurs :
|
Dallas | Tous les emplacements à Dallas:in:us-south1-locations |
Valeurs :
|
Los Angeles | Tous les emplacements à Los Angeles :in:us-west2-locations |
Valeurs :
|
Salt Lake City | Tous les emplacements à Salt Lake City :in:us-west3-locations |
Valeurs :
|
Las Vegas | Tous les emplacements à Las Vegas :in:us-west4-locations |
Valeurs :
|
Amérique du Sud | Tous les emplacements en Amérique du Sud :in:southamerica-locations |
Groupes :
|
Brésil | Tous les emplacements au Brésil:in:br-locations |
Groupes :
Valeurs :
|
Chili | Tous les emplacements au Chili:in:cl-locations |
Groupes :
Valeurs :
|
Santiago | Tous les emplacements à Santiago :in:southamerica-west1-locations |
Valeurs :
|
Authentification
Le Service de règles d'administration utilise OAuth 2.0 pour l'authentification et l'autorisation d'API. Pour obtenir un jeton de support OAuth 2.0, procédez comme suit :
Accédez à la page OAuth 2.0 Playground.
Dans la liste de champs d'application de l'étape 1, sélectionnez l'API Cloud Resource Manager v2 > https://www.googleapis.com/auth/cloud-platform, puis cliquez sur Authorize APIs (Autoriser les API).
Sur la page Sign in with Google (Se connecter avec Google) qui s'affiche, sélectionnez votre compte et connectez-vous.
Pour fournir l'accès à Google Oauth 2.0 Playground, cliquez sur Allow (Autoriser) dans l'invite qui s'affiche.
À l'étape 2, cliquez sur Exchange authorization code for tokens (Échanger le code d'autorisation contre des jetons).
Votre chaîne de jeton d'accès s'affiche au bas du volet Request / Response (Requête/Réponse) à droite :
{ "access_token": "ACCESS_TOKEN", "token_type": "Bearer", "expires_in": 3600 }
Où ACCESS_TOKEN correspond à la chaîne de jeton de support OAuth 2.0 que vous pouvez utiliser pour l'autorisation d'API.