Google Cloud Les règles d'administration vous offrent un contrôle centralisé et automatisé sur les ressources de votre organisation. En tant qu'administrateur des règles d'administration, vous pouvez définir une règle d'administration, c'est-à-dire un ensemble de restrictions appelées Contraintes qui s'appliquent aux ressourcesGoogle Cloud et aux descendants de ces ressources dans la hiérarchie des ressources Google Cloud . Vous pouvez appliquer des règles d'administration au niveau d'une organisation, d'un dossier ou d'un projet.
Les règles d'administration fournissent des contraintes prédéfinies pour divers servicesGoogle Cloud . Toutefois, si vous souhaitez exercer un contrôle plus précis et personnalisable sur les champs spécifiques restreints dans vos règles d'administration, vous pouvez également créer des contraintes personnalisées et les utiliser dans une règle d'administration personnalisée.
Les composants d'équilibrage de charge suivants sont compatibles avec les contraintes personnalisées:
- Vérifications d'état
- Buckets backend
- Services de backend
- Cartes d'URL
- Proxys cibles
- Règles de transfert
- Règles SSL
- Instances cibles
- Pools cibles
- Règle d'équilibrage de charge de service
Avantages
- Gestion des coûts: utilisez des règles d'administration personnalisées pour limiter la fréquence des sondes de vérification de l'état.
Sécurité, conformité et gouvernance: vous pouvez utiliser des règles d'administration personnalisées pour appliquer des règles. Exemple :
- Pour appliquer l'utilisation de protocoles ou de plages de ports de vérification de l'état d'état spécifiques
- Pour interdire certains protocoles de trafic backend
- Pour exiger que Cloud CDN soit activé pour les buckets backend
- Exiger que les règles de transfert utilisent des niveaux de service réseau spécifiques
Ressources compatibles avec Cloud Load Balancing
Pour Cloud Load Balancing, vous pouvez définir des contraintes personnalisées sur les ressources et les champs suivants.
Buckets backend
Bins backend: compute.googleapis.com/BackendBucket
resource.name
resource.description
resource.bucketName
resource.enableCdn
resource.cdnPolicy
resource.cdnPolicy.bypassCacheOnRequestHeaders
resource.cdnPolicy.bypassCacheOnRequestHeaders.headerName
resource.cdnPolicy.cacheKeyPolicy
resource.cdnPolicy.cacheKeyPolicy.includeHttpHeaders
resource.cdnPolicy.cacheKeyPolicy.queryStringWhitelist
resource.cdnPolicy.signedUrlCacheMaxAgeSec
resource.compressionMode
resource.customResponseHeaders
Services de backend
Services de backend: compute.googleapis.com/BackendService
resource.name
resource.description
resource.port
resource.portName
resource.protocol
resource.backends
resource.backends.balancingMode
resource.backends.capacityScaler
resource.backends.description
resource.backends.failover
resource.backends.maxConnections
resource.backends.maxConnectionsPerEndpoint
resource.backends.maxConnectionsPerInstance
resource.backends.maxRate
resource.backends.maxRatePerEndpoint
resource.backends.maxRatePerInstance
resource.backends.maxUtilization
resource.backends.preference
resource.enableCDN
resource.cdnPolicy
resource.cdnPolicy.bypassCacheOnRequestHeaders
resource.cdnPolicy.bypassCacheOnRequestHeaders.headerName
resource.cdnPolicy.cacheKeyPolicy
resource.cdnPolicy.cacheKeyPolicy.includeHost
resource.cdnPolicy.cacheKeyPolicy.includeHttpHeaders
resource.cdnPolicy.cacheKeyPolicy.includeNamedCookies
resource.cdnPolicy.cacheKeyPolicy.includeProtocol
resource.cdnPolicy.cacheKeyPolicy.includeQueryString
resource.cdnPolicy.cacheKeyPolicy.queryStringBlacklist
resource.cdnPolicy.cacheKeyPolicy.queryStringWhitelist
resource.cdnPolicy.cacheMode
resource.cdnPolicy.clientTtl
resource.cdnPolicy.defaultTtl
resource.cdnPolicy.maxTtl
resource.cdnPolicy.negativeCaching
resource.cdnPolicy.negativeCachingPolicy
resource.cdnPolicy.negativeCachingPolicy.code
resource.cdnPolicy.negativeCachingPolicy.ttl
resource.cdnPolicy.requestCoalescing
resource.cdnPolicy.serveWhileStale
resource.cdnPolicy.signedUrlCacheMaxAgeSec
resource.circuitBreakers
resource.circuitBreakers.maxConnections
resource.circuitBreakers.maxPendingRequests
resource.circuitBreakers.maxRequests
resource.circuitBreakers.maxRequestsPerConnection
resource.circuitBreakers.maxRetries
resource.compressionMode
resource.connectionDraining
resource.connectionDraining.drainingTimeoutSec
resource.connectionTrackingPolicy
resource.connectionTrackingPolicy.connectionPersistenceOnUnhealthyBackends
resource.connectionTrackingPolicy.enableStrongAffinity
resource.connectionTrackingPolicy.idleTimeoutSec
resource.connectionTrackingPolicy.trackingMode
resource.consistentHash
resource.consistentHash.httpCookie
resource.consistentHash.httpCookie.name
resource.consistentHash.httpCookie.path
resource.consistentHash.httpCookie.ttl
resource.consistentHash.httpCookie.ttl.nanos
resource.consistentHash.httpCookie.ttl.seconds
resource.consistentHash.minimumRingSize
resource.customRequestHeaders
resource.customResponseHeaders
resource.affinityCookieTtlSec
resource.failoverPolicy
resource.failoverPolicy.disableConnectionDrainOnFailover
resource.failoverPolicy.dropTrafficIfUnhealthy
resource.failoverPolicy.failoverRatio
resource.iap
resource.iap.enabled
resource.iap.oauth2ClientId
resource.ipAddressSelectionPolicy
resource.loadBalancingScheme
resource.localityLbPolicies
resource.localityLbPolicies.customPolicy
resource.localityLbPolicies.customPolicy.data
resource.localityLbPolicies.customPolicy.name
resource.localityLbPolicies.policy
resource.localityLbPolicies.policy.name
resource.logConfig
resource.logConfig.enable
resource.logConfig.optionalFields
resource.logConfig.optionalMode
resource.logConfig.sampleRate
resource.maxStreamDuration
resource.maxStreamDuration.nanos
resource.maxStreamDuration.seconds
resource.outlierDetection
resource.outlierDetection.baseEjectionTime
resource.outlierDetection.baseEjectionTime.nanos
resource.outlierDetection.baseEjectionTime.seconds
resource.outlierDetection.consecutiveGatewayFailure
resource.outlierDetection.enforcingConsecutiveErrors
resource.outlierDetection.enforcingConsecutiveGatewayFailure
resource.outlierDetection.enforcingSuccessRate
resource.outlierDetection.maxEjectionPercent
resource.outlierDetection.successRateMinimumHosts
resource.outlierDetection.successRateRequestVolume
resource.outlierDetection.successRateStdevFactor
resource.securitySettings
resource.securitySettings.awsV4Authentication
resource.securitySettings.awsV4Authentication.accessKeyId
resource.securitySettings.awsV4Authentication.accessKeyVersion
resource.securitySettings.subjectAltNames
resource.sessionAffinity
resource.subsetting
resource.subsetting.policy
resource.timeoutSec
resource.strongSessionAffinityCookie
resource.strongSessionAffinityCookie.name
resource.strongSessionAffinityCookie.path
resource.strongSessionAffinityCookie.ttl
resource.strongSessionAffinityCookie.ttl.nanos
resource.strongSessionAffinityCookie.ttl.seconds
Règles de transfert
Règles de transfert: compute.googleapis.com/ForwardingRule
resource.name
resource.description
resource.allowGlobalAccess
resource.allowPscGlobalAccess
resource.allPorts
resource.IPProtocol
resource.ipVersion
resource.isMirroringCollector
resource.loadBalancingScheme
resource.metadataFilters
resource.metadataFilters.filterLabels
resource.metadataFilters.filterLabels.name
resource.metadataFilters.filterLabels.value
resource.metadataFilters.filterMatchCriteria
resource.networkTier
resource.noAutomateDnsZone
resource.portRange
resource.ports
resource.serviceDirectoryRegistrations
resource.serviceDirectoryRegistrations.namespace
resource.serviceDirectoryRegistrations.service
resource.serviceDirectoryRegistrations.serviceDirectoryRegion
resource.serviceLabel
resource.sourceIpRanges
Règle d'équilibrage de charge de service
Règle d'équilibrage de charge de service: networkservices.googleapis.com/ServiceLbPolicy
resource.autoCapacityDrain.enable
resource.description
resource.failoverConfig.failoverHealthThreshold
resource.loadBalancingAlgorithm
resource.name
Vérifications d'état
Vérification de l'état: compute.googleapis.com/HealthCheck
resource.name
resource.description
resource.checkIntervalSec
resource.timeoutSec
resource.unhealthyThreshold
resource.healthyThreshold
resource.type
- Vérification de l'état TCP:
resource.tcpHealthCheck.port
resource.tcpHealthCheck.request
resource.tcpHealthCheck.response
resource.tcpHealthCheck.proxyHeader
resource.tcpHealthCheck.portSpecification
- Vérification de l'état SSL:
resource.sslHealthCheck.port
resource.sslHealthCheck.request
resource.sslHealthCheck.response
resource.sslHealthCheck.proxyHeader
resource.sslHealthCheck.portSpecification
- Vérification de l'état HTTP:
resource.httpHealthCheck.port
resource.httpHealthCheck.host
resource.httpHealthCheck.requestPath
resource.httpHealthCheck.proxyHeader
resource.httpHealthCheck.response
resource.httpHealthCheck.portSpecification
- Vérification de l'état HTTPS:
resource.httpsHealthCheck.port
resource.httpsHealthCheck.host
resource.httpsHealthCheck.requestPath
resource.httpsHealthCheck.proxyHeader
resource.httpsHealthCheck.response
resource.httpsHealthCheck.portSpecification
- Vérification de l'état HTTP/2:
resource.http2HealthCheck.port
resource.http2HealthCheck.host
resource.http2HealthCheck.requestPath
resource.http2HealthCheck.proxyHeader
resource.http2HealthCheck.response
resource.http2HealthCheck.portSpecification
- Vérification de l'état gRPC:
resource.grpcHealthCheck.port
resource.grpcHealthCheck.grpcServiceName
resource.grpcHealthCheck.portSpecification
resource.sourceRegions
resource.logConfig
resource.logConfig.enable
Proxy cibles
Proxy TCP cibles: compute.googleapis.com/TargetTcpProxy
resource.name
resource.description
resource.proxyBind
resource.proxyHeader
Proxy SSL cibles: compute.googleapis.com/TargetSslProxy
resource.name
resource.description
resource.proxyHeader
Proxys HTTP cibles: compute.googleapis.com/TargetHttpProxy
resource.name
resource.description
resource.proxyBind
resource.httpKeepAliveTimeoutSec
Proxys HTTPS cibles: compute.googleapis.com/TargetHttpsProxy
resource.name
resource.description
resource.proxyBind
resource.httpKeepAliveTimeoutSec
resource.quicOverride
resource.tlsEarlyData
Proxys gRPC cibles: compute.googleapis.com/TargetGrpcProxy
resource.name
resource.description
resource.validateForProxyless
Mappages d'URL
Cartes d'URL: compute.googleapis.com/UrlMap
resource.name
resource.description
resource.defaultCustomErrorResponsePolicy
resource.defaultCustomErrorResponsePolicy.errorResponseRules
resource.defaultCustomErrorResponsePolicy.errorResponseRules.matchResponseCodes
resource.defaultCustomErrorResponsePolicy.errorResponseRules.overrideResponseCode
resource.defaultCustomErrorResponsePolicy.errorResponseRules.path
resource.defaultRouteAction
resource.defaultRouteAction.corsPolicy
resource.defaultRouteAction.corsPolicy.allowCredentials
resource.defaultRouteAction.corsPolicy.allowHeaders
resource.defaultRouteAction.corsPolicy.allowMethods
resource.defaultRouteAction.corsPolicy.allowOrigins
resource.defaultRouteAction.corsPolicy.allowOriginRegexes
resource.defaultRouteAction.corsPolicy.disabled
resource.defaultRouteAction.corsPolicy.exposeHeaders
resource.defaultRouteAction.corsPolicy.maxAge
resource.defaultRouteAction.faultInjectionPolicy
resource.defaultRouteAction.faultInjectionPolicy.abort
resource.defaultRouteAction.faultInjectionPolicy.abort.httpStatus
resource.defaultRouteAction.faultInjectionPolicy.abort.percentage
resource.defaultRouteAction.faultInjectionPolicy.delay
resource.defaultRouteAction.faultInjectionPolicy.delay.percentage
resource.defaultRouteAction.faultInjectionPolicy.delay.fixedDelay
resource.defaultRouteAction.faultInjectionPolicy.delay.fixedDelay.nanos
resource.defaultRouteAction.faultInjectionPolicy.delay.fixedDelay.seconds
resource.defaultRouteAction.maxStreamDuration
resource.defaultRouteAction.maxStreamDuration.nanos
resource.defaultRouteAction.maxStreamDuration.seconds
resource.defaultRouteAction.requestMirrorPolicy
resource.defaultRouteAction.retryPolicy
resource.defaultRouteAction.retryPolicy.numRetries
resource.defaultRouteAction.retryPolicy.perTryTimeout
resource.defaultRouteAction.retryPolicy.perTryTimeout.nanos
resource.defaultRouteAction.retryPolicy.perTryTimeout.seconds
resource.defaultRouteAction.retryPolicy.retryConditions
resource.defaultRouteAction.timeout
resource.defaultRouteAction.timeout.nanos
resource.defaultRouteAction.timeout.seconds
resource.defaultRouteAction.urlRewrite
resource.defaultRouteAction.urlRewrite.hostRewrite
resource.defaultRouteAction.urlRewrite.pathPrefixRewrite
resource.defaultRouteAction.urlRewrite.pathTemplateRewrite
resource.defaultRouteAction.weightedBackendServices
resource.defaultRouteAction.weightedBackendServices.headerAction
resource.defaultRouteAction.weightedBackendServices.headerAction.requestHeadersToAdd
resource.defaultRouteAction.weightedBackendServices.headerAction.requestHeadersToAdd.headerName
resource.defaultRouteAction.weightedBackendServices.headerAction.requestHeadersToAdd.headerValue
resource.defaultRouteAction.weightedBackendServices.headerAction.requestHeadersToAdd.replace
resource.defaultRouteAction.weightedBackendServices.headerAction.requestHeadersToRemove
resource.defaultRouteAction.weightedBackendServices.headerAction.responseHeadersToAdd
resource.defaultRouteAction.weightedBackendServices.headerAction.responseHeadersToAdd.headerName
resource.defaultRouteAction.weightedBackendServices.headerAction.responseHeadersToAdd.headerValue
resource.defaultRouteAction.weightedBackendServices.headerAction.responseHeadersToAdd.replace
resource.defaultRouteAction.weightedBackendServices.headerAction.responseHeadersToRemove
resource.defaultRouteAction.weightedBackendServices.weight
resource.defaultUrlRedirect
resource.defaultUrlRedirect.hostRedirect
resource.defaultUrlRedirect.httpsRedirect
resource.defaultUrlRedirect.pathRedirect
resource.defaultUrlRedirect.prefixRedirect
resource.defaultUrlRedirect.redirectResponseCode
resource.defaultUrlRedirect.stripQuery
resource.headerAction
resource.headerAction.requestHeadersToAdd
resource.headerAction.requestHeadersToAdd.headerName
resource.headerAction.requestHeadersToAdd.headerValue
resource.headerAction.requestHeadersToAdd.replace
resource.headerAction.requestHeadersToRemove
resource.headerAction.responseHeadersToAdd
resource.headerAction.responseHeadersToAdd.headerName
resource.headerAction.responseHeadersToAdd.headerValue
resource.headerAction.responseHeadersToAdd.replace
resource.headerAction.responseHeadersToRemove
resource.hostRules
resource.hostRules.description
resource.hostRules.hosts
resource.hostRules.pathMatcher
resource.pathMatchers
resource.pathMatchers.name
resource.pathMatchers.description
resource.pathMatchers.defaultCustomErrorResponsePolicy
resource.pathMatchers.defaultCustomErrorResponsePolicy.errorResponseRules
resource.pathMatchers.defaultCustomErrorResponsePolicy.errorResponseRules.matchResponseCodes
resource.pathMatchers.defaultCustomErrorResponsePolicy.errorResponseRules.overrideResponseCode
resource.pathMatchers.defaultCustomErrorResponsePolicy.errorResponseRules.path
resource.pathMatchers.defaultRouteAction
resource.pathMatchers.defaultRouteAction.corsPolicy
resource.pathMatchers.defaultRouteAction.corsPolicy.allowCredentials
resource.pathMatchers.defaultRouteAction.corsPolicy.allowHeaders
resource.pathMatchers.defaultRouteAction.corsPolicy.allowMethods
resource.pathMatchers.defaultRouteAction.corsPolicy.allowOrigins
resource.pathMatchers.defaultRouteAction.corsPolicy.allowOriginRegexes
resource.pathMatchers.defaultRouteAction.corsPolicy.disabled
resource.pathMatchers.defaultRouteAction.corsPolicy.exposeHeaders
resource.pathMatchers.defaultRouteAction.corsPolicy.maxAge
resource.pathMatchers.defaultRouteAction.faultInjectionPolicy
resource.pathMatchers.defaultRouteAction.faultInjectionPolicy.abort
resource.pathMatchers.defaultRouteAction.faultInjectionPolicy.abort.httpStatus
resource.pathMatchers.defaultRouteAction.faultInjectionPolicy.abort.percentage
resource.pathMatchers.defaultRouteAction.faultInjectionPolicy.delay
resource.pathMatchers.defaultRouteAction.faultInjectionPolicy.delay.percentage
resource.pathMatchers.defaultRouteAction.faultInjectionPolicy.delay.fixedDelay
resource.pathMatchers.defaultRouteAction.faultInjectionPolicy.delay.fixedDelay.nanos
resource.pathMatchers.defaultRouteAction.faultInjectionPolicy.delay.fixedDelay.seconds
resource.pathMatchers.defaultRouteAction.maxStreamDuration
resource.pathMatchers.defaultRouteAction.maxStreamDuration.nanos
resource.pathMatchers.defaultRouteAction.maxStreamDuration.seconds
resource.pathMatchers.defaultRouteAction.requestMirrorPolicy
resource.pathMatchers.defaultRouteAction.retryPolicy
resource.pathMatchers.defaultRouteAction.retryPolicy.numRetries
resource.pathMatchers.defaultRouteAction.retryPolicy.perTryTimeout
resource.pathMatchers.defaultRouteAction.retryPolicy.perTryTimeout.nanos
resource.pathMatchers.defaultRouteAction.retryPolicy.perTryTimeout.seconds
resource.pathMatchers.defaultRouteAction.retryPolicy.retryConditions
resource.pathMatchers.defaultRouteAction.timeout
resource.pathMatchers.defaultRouteAction.timeout.nanos
resource.pathMatchers.defaultRouteAction.timeout.seconds
resource.pathMatchers.defaultRouteAction.urlRewrite
resource.pathMatchers.defaultRouteAction.urlRewrite.hostRewrite
resource.pathMatchers.defaultRouteAction.urlRewrite.pathPrefixRewrite
resource.pathMatchers.defaultRouteAction.urlRewrite.pathTemplateRewrite
resource.pathMatchers.defaultRouteAction.weightedBackendServices
resource.pathMatchers.defaultRouteAction.weightedBackendServices.headerAction
resource.pathMatchers.defaultRouteAction.weightedBackendServices.headerAction.requestHeadersToAdd
resource.pathMatchers.defaultRouteAction.weightedBackendServices.headerAction.requestHeadersToAdd.headerName
resource.pathMatchers.defaultRouteAction.weightedBackendServices.headerAction.requestHeadersToAdd.headerValue
resource.pathMatchers.defaultRouteAction.weightedBackendServices.headerAction.requestHeadersToAdd.replace
resource.pathMatchers.defaultRouteAction.weightedBackendServices.headerAction.requestHeadersToRemove
resource.pathMatchers.defaultRouteAction.weightedBackendServices.headerAction.responseHeadersToAdd
resource.pathMatchers.defaultRouteAction.weightedBackendServices.headerAction.responseHeadersToAdd.headerName
resource.pathMatchers.defaultRouteAction.weightedBackendServices.headerAction.responseHeadersToAdd.headerValue
resource.pathMatchers.defaultRouteAction.weightedBackendServices.headerAction.responseHeadersToAdd.replace
resource.pathMatchers.defaultRouteAction.weightedBackendServices.headerAction.responseHeadersToRemove
resource.pathMatchers.defaultRouteAction.weightedBackendServices.weight
resource.pathMatchers.defaultUrlRedirect
resource.pathMatchers.defaultUrlRedirect.hostRedirect
resource.pathMatchers.defaultUrlRedirect.httpsRedirect
resource.pathMatchers.defaultUrlRedirect.pathRedirect
resource.pathMatchers.defaultUrlRedirect.prefixRedirect
resource.pathMatchers.defaultUrlRedirect.redirectResponseCode
resource.pathMatchers.defaultUrlRedirect.stripQuery
resource.pathMatchers.headerAction
resource.pathMatchers.headerAction.requestHeadersToAdd
resource.pathMatchers.headerAction.requestHeadersToAdd.headerName
resource.pathMatchers.headerAction.requestHeadersToAdd.headerValue
resource.pathMatchers.headerAction.requestHeadersToAdd.replace
resource.pathMatchers.headerAction.requestHeadersToRemove
resource.pathMatchers.headerAction.responseHeadersToAdd
resource.pathMatchers.headerAction.responseHeadersToAdd.headerName
resource.pathMatchers.headerAction.responseHeadersToAdd.headerValue
resource.pathMatchers.headerAction.responseHeadersToAdd.replace
resource.pathMatchers.headerAction.responseHeadersToRemove
resource.pathMatchers.pathRules
resource.pathMatchers.pathRules.paths
resource.pathMatchers.pathRules.customErrorResponsePolicy
resource.pathMatchers.pathRules.customErrorResponsePolicy.errorResponseRules
resource.pathMatchers.pathRules.customErrorResponsePolicy.errorResponseRules.matchResponseCodes
resource.pathMatchers.pathRules.customErrorResponsePolicy.errorResponseRules.overrideResponseCode
resource.pathMatchers.pathRules.customErrorResponsePolicy.errorResponseRules.path
resource.pathMatchers.pathRules.routeAction
resource.pathMatchers.pathRules.routeAction.corsPolicy
resource.pathMatchers.pathRules.routeAction.corsPolicy.allowCredentials
resource.pathMatchers.pathRules.routeAction.corsPolicy.allowHeaders
resource.pathMatchers.pathRules.routeAction.corsPolicy.allowMethods
resource.pathMatchers.pathRules.routeAction.corsPolicy.allowOrigins
resource.pathMatchers.pathRules.routeAction.corsPolicy.allowOriginRegexes
resource.pathMatchers.pathRules.routeAction.corsPolicy.disabled
resource.pathMatchers.pathRules.routeAction.corsPolicy.exposeHeaders
resource.pathMatchers.pathRules.routeAction.corsPolicy.maxAge
resource.pathMatchers.pathRules.routeAction.faultInjectionPolicy
resource.pathMatchers.pathRules.routeAction.faultInjectionPolicy.abort
resource.pathMatchers.pathRules.routeAction.faultInjectionPolicy.abort.httpStatus
resource.pathMatchers.pathRules.routeAction.faultInjectionPolicy.abort.percentage
resource.pathMatchers.pathRules.routeAction.faultInjectionPolicy.delay
resource.pathMatchers.pathRules.routeAction.faultInjectionPolicy.delay.percentage
resource.pathMatchers.pathRules.routeAction.faultInjectionPolicy.delay.fixedDelay
resource.pathMatchers.pathRules.routeAction.faultInjectionPolicy.delay.fixedDelay.nanos
resource.pathMatchers.pathRules.routeAction.faultInjectionPolicy.delay.fixedDelay.seconds
resource.pathMatchers.pathRules.routeAction.maxStreamDuration
resource.pathMatchers.pathRules.routeAction.maxStreamDuration.nanos
resource.pathMatchers.pathRules.routeAction.maxStreamDuration.seconds
resource.pathMatchers.pathRules.routeAction.requestMirrorPolicy
resource.pathMatchers.pathRules.routeAction.retryPolicy
resource.pathMatchers.pathRules.routeAction.retryPolicy.numRetries
resource.pathMatchers.pathRules.routeAction.retryPolicy.perTryTimeout
resource.pathMatchers.pathRules.routeAction.retryPolicy.perTryTimeout.nanos
resource.pathMatchers.pathRules.routeAction.retryPolicy.perTryTimeout.seconds
resource.pathMatchers.pathRules.routeAction.retryPolicy.retryConditions
resource.pathMatchers.pathRules.routeAction.timeout
resource.pathMatchers.pathRules.routeAction.timeout.nanos
resource.pathMatchers.pathRules.routeAction.timeout.seconds
resource.pathMatchers.pathRules.routeAction.urlRewrite
resource.pathMatchers.pathRules.routeAction.urlRewrite.hostRewrite
resource.pathMatchers.pathRules.routeAction.urlRewrite.pathPrefixRewrite
resource.pathMatchers.pathRules.routeAction.urlRewrite.pathTemplateRewrite
resource.pathMatchers.pathRules.routeAction.weightedBackendServices
resource.pathMatchers.pathRules.routeAction.weightedBackendServices.headerAction
resource.pathMatchers.pathRules.routeAction.weightedBackendServices.headerAction.requestHeadersToAdd
resource.pathMatchers.pathRules.routeAction.weightedBackendServices.headerAction.requestHeadersToAdd.headerName
resource.pathMatchers.pathRules.routeAction.weightedBackendServices.headerAction.requestHeadersToAdd.headerValue
resource.pathMatchers.pathRules.routeAction.weightedBackendServices.headerAction.requestHeadersToAdd.replace
resource.pathMatchers.pathRules.routeAction.weightedBackendServices.headerAction.requestHeadersToRemove
resource.pathMatchers.pathRules.routeAction.weightedBackendServices.headerAction.responseHeadersToAdd
resource.pathMatchers.pathRules.routeAction.weightedBackendServices.headerAction.responseHeadersToAdd.headerName
resource.pathMatchers.pathRules.routeAction.weightedBackendServices.headerAction.responseHeadersToAdd.headerValue
resource.pathMatchers.pathRules.routeAction.weightedBackendServices.headerAction.responseHeadersToAdd.replace
resource.pathMatchers.pathRules.routeAction.weightedBackendServices.headerAction.responseHeadersToRemove
resource.pathMatchers.pathRules.routeAction.weightedBackendServices.weight
resource.pathMatchers.pathRules.urlRedirect
resource.pathMatchers.pathRules.urlRedirect.hostRedirect
resource.pathMatchers.pathRules.urlRedirect.httpsRedirect
resource.pathMatchers.pathRules.urlRedirect.pathRedirect
resource.pathMatchers.pathRules.urlRedirect.prefixRedirect
resource.pathMatchers.pathRules.urlRedirect.redirectResponseCode
resource.pathMatchers.pathRules.urlRedirect.stripQuery
resource.pathMatchers.routeRules
resource.pathMatchers.routeRules.description
resource.pathMatchers.routeRules.priority
resource.pathMatchers.routeRules.customErrorResponsePolicy
resource.pathMatchers.routeRules.customErrorResponsePolicy.errorResponseRules
resource.pathMatchers.routeRules.customErrorResponsePolicy.errorResponseRules.matchResponseCodes
resource.pathMatchers.routeRules.customErrorResponsePolicy.errorResponseRules.overrideResponseCode
resource.pathMatchers.routeRules.customErrorResponsePolicy.errorResponseRules.path
resource.pathMatchers.routeRules.headerAction
resource.pathMatchers.routeRules.headerAction.requestHeadersToAdd
resource.pathMatchers.routeRules.headerAction.requestHeadersToAdd.headerName
resource.pathMatchers.routeRules.headerAction.requestHeadersToAdd.headerValue
resource.pathMatchers.routeRules.headerAction.requestHeadersToAdd.replace
resource.pathMatchers.routeRules.headerAction.requestHeadersToRemove
resource.pathMatchers.routeRules.headerAction.responseHeadersToAdd
resource.pathMatchers.routeRules.headerAction.responseHeadersToAdd.headerName
resource.pathMatchers.routeRules.headerAction.responseHeadersToAdd.headerValue
resource.pathMatchers.routeRules.headerAction.responseHeadersToAdd.replace
resource.pathMatchers.routeRules.headerAction.responseHeadersToRemove
resource.pathMatchers.routeRules.matchRules
resource.pathMatchers.routeRules.matchRules.fullPathMatch
resource.pathMatchers.routeRules.matchRules.headerMatches
resource.pathMatchers.routeRules.matchRules.headerMatches.exactMatch
resource.pathMatchers.routeRules.matchRules.headerMatches.headerName
resource.pathMatchers.routeRules.matchRules.headerMatches.invertMatch
resource.pathMatchers.routeRules.matchRules.headerMatches.prefixMatch
resource.pathMatchers.routeRules.matchRules.headerMatches.presentMatch
resource.pathMatchers.routeRules.matchRules.headerMatches.rangeMatch
resource.pathMatchers.routeRules.matchRules.headerMatches.rangeMatch.rangeStart
resource.pathMatchers.routeRules.matchRules.headerMatches.rangeMatch.rangeEnd
resource.pathMatchers.routeRules.matchRules.headerMatches.regexMatch
resource.pathMatchers.routeRules.matchRules.headerMatches.suffixMatch
resource.pathMatchers.routeRules.matchRules.ignoreCase
resource.pathMatchers.routeRules.matchRules.metadataFilters
resource.pathMatchers.routeRules.matchRules.metadataFilters.filterLabels
resource.pathMatchers.routeRules.matchRules.metadataFilters.filterLabels.name
resource.pathMatchers.routeRules.matchRules.metadataFilters.filterLabels.value
resource.pathMatchers.routeRules.matchRules.metadataFilters.filterMatchCriteria
resource.pathMatchers.routeRules.matchRules.pathTemplateMatch
resource.pathMatchers.routeRules.matchRules.prefixMatch
resource.pathMatchers.routeRules.matchRules.queryParameterMatches
resource.pathMatchers.routeRules.matchRules.queryParameterMatches.name
resource.pathMatchers.routeRules.matchRules.queryParameterMatches.exactMatch
resource.pathMatchers.routeRules.matchRules.queryParameterMatches.presentMatch
resource.pathMatchers.routeRules.matchRules.queryParameterMatches.regexMatch
resource.pathMatchers.routeRules.matchRules.regexMatch
resource.pathMatchers.routeRules.routeAction
resource.pathMatchers.routeRules.routeAction.corsPolicy
resource.pathMatchers.routeRules.routeAction.corsPolicy.allowCredentials
resource.pathMatchers.routeRules.routeAction.corsPolicy.allowHeaders
resource.pathMatchers.routeRules.routeAction.corsPolicy.allowMethods
resource.pathMatchers.routeRules.routeAction.corsPolicy.allowOrigins
resource.pathMatchers.routeRules.routeAction.corsPolicy.allowOriginRegexes
resource.pathMatchers.routeRules.routeAction.corsPolicy.disabled
resource.pathMatchers.routeRules.routeAction.corsPolicy.exposeHeaders
resource.pathMatchers.routeRules.routeAction.corsPolicy.maxAge
resource.pathMatchers.routeRules.routeAction.faultInjectionPolicy
resource.pathMatchers.routeRules.routeAction.faultInjectionPolicy.abort
resource.pathMatchers.routeRules.routeAction.faultInjectionPolicy.abort.httpStatus
resource.pathMatchers.routeRules.routeAction.faultInjectionPolicy.abort.percentage
resource.pathMatchers.routeRules.routeAction.faultInjectionPolicy.delay
resource.pathMatchers.routeRules.routeAction.faultInjectionPolicy.delay.percentage
resource.pathMatchers.routeRules.routeAction.faultInjectionPolicy.delay.fixedDelay
resource.pathMatchers.routeRules.routeAction.faultInjectionPolicy.delay.fixedDelay.nanos
resource.pathMatchers.routeRules.routeAction.faultInjectionPolicy.delay.fixedDelay.seconds
resource.pathMatchers.routeRules.routeAction.maxStreamDuration
resource.pathMatchers.routeRules.routeAction.maxStreamDuration.nanos
resource.pathMatchers.routeRules.routeAction.maxStreamDuration.seconds
resource.pathMatchers.routeRules.routeAction.requestMirrorPolicy
resource.pathMatchers.routeRules.routeAction.retryPolicy
resource.pathMatchers.routeRules.routeAction.retryPolicy.numRetries
resource.pathMatchers.routeRules.routeAction.retryPolicy.perTryTimeout
resource.pathMatchers.routeRules.routeAction.retryPolicy.perTryTimeout.nanos
resource.pathMatchers.routeRules.routeAction.retryPolicy.perTryTimeout.seconds
resource.pathMatchers.routeRules.routeAction.retryPolicy.retryConditions
resource.pathMatchers.routeRules.routeAction.timeout
resource.pathMatchers.routeRules.routeAction.timeout.nanos
resource.pathMatchers.routeRules.routeAction.timeout.seconds
resource.pathMatchers.routeRules.routeAction.urlRewrite
resource.pathMatchers.routeRules.routeAction.urlRewrite.hostRewrite
resource.pathMatchers.routeRules.routeAction.urlRewrite.pathPrefixRewrite
resource.pathMatchers.routeRules.routeAction.urlRewrite.pathTemplateRewrite
resource.pathMatchers.routeRules.routeAction.weightedBackendServices
resource.pathMatchers.routeRules.routeAction.weightedBackendServices.headerAction
resource.pathMatchers.routeRules.routeAction.weightedBackendServices.headerAction.requestHeadersToAdd
resource.pathMatchers.routeRules.routeAction.weightedBackendServices.headerAction.requestHeadersToAdd.headerName
resource.pathMatchers.routeRules.routeAction.weightedBackendServices.headerAction.requestHeadersToAdd.headerValue
resource.pathMatchers.routeRules.routeAction.weightedBackendServices.headerAction.requestHeadersToAdd.replace
resource.pathMatchers.routeRules.routeAction.weightedBackendServices.headerAction.requestHeadersToRemove
resource.pathMatchers.routeRules.routeAction.weightedBackendServices.headerAction.responseHeadersToAdd
resource.pathMatchers.routeRules.routeAction.weightedBackendServices.headerAction.responseHeadersToAdd.headerName
resource.pathMatchers.routeRules.routeAction.weightedBackendServices.headerAction.responseHeadersToAdd.headerValue
resource.pathMatchers.routeRules.routeAction.weightedBackendServices.headerAction.responseHeadersToAdd.replace
resource.pathMatchers.routeRules.routeAction.weightedBackendServices.headerAction.responseHeadersToRemove
resource.pathMatchers.routeRules.routeAction.weightedBackendServices.weight
resource.pathMatchers.routeRules.urlRedirect
resource.pathMatchers.routeRules.urlRedirect.hostRedirect
resource.pathMatchers.routeRules.urlRedirect.httpsRedirect
resource.pathMatchers.routeRules.urlRedirect.pathRedirect
resource.pathMatchers.routeRules.urlRedirect.prefixRedirect
resource.pathMatchers.routeRules.urlRedirect.redirectResponseCode
resource.pathMatchers.routeRules.urlRedirect.stripQuery
resource.tests
resource.tests.description
resource.tests.expectedOutputUrl
resource.tests.expectedRedirectResponseCode
resource.tests.headers
resource.tests.headers.name
resource.tests.headers.value
resource.tests.host
resource.tests.path
Règles SSL
Règles SSL: compute.googleapis.com/SslPolicy
resource.profile
resource.name
resource.description
resource.minTlsVersion
resource.customFeatures
Instances cibles
Instances cibles: compute.googleapis.com/TargetInstance
resource.name
resource.description
resource.natPolicy
Pools cibles
Pools cibles: compute.googleapis.com/TargetPool
resource.name
resource.description
resource.sessionAffinity
resource.failoverRatio
Pour en savoir plus sur les autres ressources de calcul compatibles, consultez la page Contraintes personnalisées Compute Engine.
Héritage des règles
Par défaut, les règles d'administration sont héritées par les descendants des ressources sur lesquelles vous les appliquez. Par exemple, si vous appliquez une règle au niveau d'un dossier, Google Cloud l'applique à tous les projets du dossier. Pour mieux comprendre ce comportement et savoir comment le modifier, consultez la page Règles d'évaluation hiérarchique.
Avant de commencer
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud .
Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Assurez-vous de connaître votre ID d'organisation.
-
Administrateur des règles d'administration (
roles/orgpolicy.policyAdmin
) sur la ressource d'organisation resource_types -
Pour tester les contraintes sur les ressources d'équilibrage de charge :
Administrateur de l'équilibreur de charge Compute (v1) (
roles/compute.loadBalancerAdmin.v1
) sur la ressource de projet -
orgpolicy.constraints.list
-
orgpolicy.policies.create
-
orgpolicy.policies.delete
-
orgpolicy.policies.list
-
orgpolicy.policies.update
-
orgpolicy.policy.get
-
orgpolicy.policy.set
Dans la console Google Cloud , accédez à la page Règles d'administration.
Cliquez sur le sélecteur de projets en haut de la page.
Dans la fenêtre Sélectionner une ressource, sélectionnez l'organisation pour laquelle vous souhaitez créer une contrainte personnalisée.
Cliquez sur
Contrainte personnalisée.Dans le champ Nom à afficher, saisissez un nom convivial pour la contrainte. Ce champ ne doit pas comporter plus de 200 caractères. N'utilisez pas d'informations personnelles ni de données sensibles dans les noms de contraintes, car ils pourraient être exposés dans des messages d'erreur.
Dans la zone ID de contrainte, saisissez le nom souhaité pour votre nouvelle contrainte personnalisée. Une contrainte personnalisée doit commencer par
custom.
et ne peut inclure que des lettres majuscules, minuscules ou des chiffres, comme par exemplecustom.enforceTCPHealthCheckPort1024
. La longueur maximale de ce champ est de 70 caractères, sans compter le préfixe, comme par exempleorganizations/123456789/customConstraints/custom.
.Dans la zone Description, saisissez pour la contrainte une description conviviale qui sera affichée dans un message d'erreur en cas de non-respect de la règle. Ce champ ne doit pas comporter plus de 2 000 caractères.
Dans la zone Type de ressource, sélectionnez le nom de la ressource REST Google Cloudcontenant l'objet et le champ que vous souhaitez restreindre. Par exemple,
compute.googleapis.com/HealthCheck
.Sous Méthode d'application, indiquez si vous souhaitez appliquer la contrainte sur la méthode REST
CREATE
.Pour définir une condition, cliquez sur
Modifier la condition.Dans le panneau Ajouter une condition, créez une condition CEL faisant référence à une ressource de service acceptée, par exemple
. Ce champ ne doit pas comporter plus de 1 000 caractères.resource.tcpHealthCheck.port >= 1024
Cliquez sur Enregistrer.
Sous Action, indiquez si vous souhaitez autoriser ou refuser la méthode évaluée si la condition précédente est remplie.
Cliquez sur Créer une contrainte.
ORGANIZATION_ID
: ID de votre organisation (par exemple,123456789
).CONSTRAINT_NAME
: nom souhaité pour votre nouvelle contrainte personnalisée. Une contrainte personnalisée doit commencer parcustom.
et ne peut inclure que des lettres majuscules, minuscules ou des chiffres. Exemple :custom.enforceTCPHealthCheckPort1024
. La longueur maximale de ce champ est de 70 caractères, sans compter le préfixe (par exemple,organizations/123456789/customConstraints/custom.
).RESOURCE_NAME
: nom (pas l'URI) de la ressource REST de l'API Compute Engine contenant l'objet et le champ que vous souhaitez restreindre. Par exemple,HealthCheck
.CONDITION
: condition CEL écrite par rapport à une représentation d'une ressource de service compatible. Ce champ ne doit pas comporter plus de 1 000 caractères. Consultez la section Ressources acceptées pour en savoir plus sur les ressources disponibles pour l'écriture de conditions. Par exemple,"resource.tcpHealthCheck.port >= 1024"
.ACTION
: action à effectuer si lacondition
est remplie. Peut être défini surALLOW
ouDENY
.DISPLAY_NAME
: nom convivial de la contrainte. Ce champ ne doit pas comporter plus de 200 caractères.DESCRIPTION
: description conviviale de la contrainte à afficher sous forme de message d'erreur en cas de non-respect de la règle. Ce champ ne doit pas comporter plus de 2 000 caractères.- Dans la console Google Cloud , accédez à la page Règles d'administration.
- Dans le sélecteur de projets, choisissez le projet pour lequel vous souhaitez définir la règle d'administration.
- Dans la liste de la page Règles d'administration, sélectionnez votre contrainte pour afficher la page Détails de la règle associée.
- Pour configurer la règle d'administration pour cette ressource, cliquez sur Gérer la règle.
- Sur la page Modifier la stratégie, sélectionnez Remplacer la stratégie parente.
- Cliquez sur Ajouter une règle.
- Dans la section Application, indiquez si l'application de cette règle d'administration doit être activée ou désactivée.
- Facultatif : Pour rendre la règle d'administration conditionnelle sur un tag, cliquez sur Ajouter une condition. Notez que si vous ajoutez une règle conditionnelle à une règle d'administration, vous devez ajouter au moins une règle inconditionnelle, sinon la règle ne pourra pas être enregistrée. Pour en savoir plus, consultez la section Définir une règle d'administration avec des tags.
- S'il s'agit d'une contrainte personnalisée, vous pouvez cliquer sur Tester les modifications pour simuler l'effet de cette règle d'administration. Pour en savoir plus, consultez la section Tester les modifications apportées aux règles d'administration à l'aide de Policy Simulator.
- Pour finaliser et appliquer la règle d'administration, cliquez sur Définir la règle. La prise en compte de la règle peut prendre jusqu'à 15 minutes.
-
PROJECT_ID
: projet sur lequel vous souhaitez appliquer votre contrainte. -
CONSTRAINT_NAME
: nom que vous avez défini pour la contrainte personnalisée Par exemple,
.custom.enforceTCPHealthCheckPort1024
Créez un fichier YAML pour la contrainte prédéfinie.
name: organizations/ORGANIZATION_ID/customConstraints/custom.CONSTRAINT_NAME resource_types: compute.googleapis.com/SslPolicy methodTypes: - CREATE - UPDATE condition: resource.FIELD_NAME == VALUE action_type: ACTION display_name: DISPLAY_NAME description: DESCRIPTION
L'exemple suivant impose une version TLS minimale en version 1.2 :
name: organizations/012345678901/customConstraints/custom.restrictLbTlsVersion resource_types: compute.googleapis.com/SslPolicy methodTypes: - CREATE - UPDATE condition: resource.minTlsVersion == "TLS_1_2" action_type: ALLOW display_name: Restrict Load Balancing TLS version to 1.2 description: Only allow SSL policies to be created or updated if the minimum TLS version is 1.2 where this custom constraint is enforced.
Ajoutez la contrainte personnalisée à votre organisation.
gcloud org-policies set-custom-constraint PATH_TO_FILE
Vérifiez que la contrainte personnalisée existe dans votre organisation.
gcloud org-policies list-custom-constraints \ --organization=ORGANIZATION_ID
Créez un fichier de règles pour la contrainte.
name: projects/PROJECT_ID/policies/custom.CONSTRAINT_NAME spec: rules: – enforce: true
Remplacez les éléments suivants :
PROJECT_ID
: l' ID de votre projetCONSTRAINT_NAME
: Nom de la contrainte.
Appliquez la règle.
gcloud org-policies set-policy PATH_TO_POLICY_FILE
Remplacez
PATH_TO_POLICY_FILE
par le chemin d'accès complet de votre fichier de règles.En supposant que vous avez créé le fichier YAML pour limiter la version TLS minimale à 1.2, testez la contrainte en créant une règle SSL avec
minTlsVersion
défini surTLS_1_0
:gcloud compute ssl-policies create SSL_POLICY_NAME \ --min-tls-version=1.0 \ --project=PROJECT_ID
Le résultat ressemble à ce qui suit :
ERROR: (gcloud.compute.ssl-policies.update) HTTPError 412: Operation denied by custom org policy: [customConstraints/custom. restrictLbTlsVersion] : Only allow SSL policy resources to be created or updated if the minimum TLS version is 1.2 where this custom constraint is enforced.
- ID de votre organisation
Un ID de projet.
Créez un fichier de contrainte
enforceTCPHealthCheckPort1024.yaml
contenant les informations suivantes :name: organizations/ORGANIZATION_ID/customConstraints/custom.enforceTCPHealthCheckPort1024 resource_types: – compute.googleapis.com/HealthCheck condition: "resource.tcpHealthCheck.port >= 1024" method_types: – CREATE – UPDATE action_type: ALLOW display_name: Only TCP HealthCheck Port >= 1024 Allowed. description: Prevent TCP health checks on well-known ports.
Définissez la contrainte personnalisée.
gcloud org-policies set-custom-constraint enforceTCPHealthCheckPort1024.yaml
Créez un fichier de règle
enforceTCPHealthCheckPort1024-policy.yaml
avec les informations ci-dessous. Dans cet exemple, nous appliquons cette contrainte au niveau d'un projet, mais vous pouvez également la définir au niveau de l'organisation ou d'un dossier. RemplacezPROJECT_ID
par l'ID du projet.name: projects/PROJECT_ID/policies/custom.enforceTCPHealthCheckPort1024 spec: rules: – enforce: true
Appliquez la règle.
gcloud org-policies set-policy enforceTCPHealthCheckPort1024-policy.yaml
Testez la contrainte en essayant de créer une vérification de l'état TCP sur le port 80, ce qui n'est pas autorisé.
gcloud compute health-checks create tcp my-tcp-health-check \ --project=PROJECT_ID \ --region=us-central1 \ --port=80 \ --check-interval=5s \ --timeout=5s \ --healthy-threshold=4 \ --unhealthy-threshold=5 \
Le résultat ressemble à ce qui suit :
ERROR: (gcloud.compute.healthChecks.create) Could not fetch resource: – Operation denied by custom org policies: [customConstraints/
custom.enforceTCPHealthCheckPort1024
]: Only TCP HealthCheck Port >= 1024 Allowed.Les vérifications d'état héritées (ancienne vérification d'état globale (HTTP) et ancienne vérification d'état globale (HTTPS)) ne sont pas compatibles.
Pour certaines ressources Compute Engine, telles que les ressources de règles SSL Compute Engine, des contraintes personnalisées sont également appliquées à la méthode
UPDATE
.- En savoir plus sur les règles d'administration
- Découvrez comment créer et gérer des règles d'administration.
- Consultez la liste complète des contraintes prédéfinies liées aux règles d'administration.
Rôles requis
Pour obtenir les autorisations nécessaires pour gérer les règles d'administration des ressources Cloud Load Balancing, demandez à votre administrateur de vous accorder les rôles IAM suivants :
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour gérer les règles d'administration pour les ressources Cloud Load Balancing. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Vous devez disposer des autorisations suivantes pour gérer les règles d'administration#39;administration des ressources Cloud Load Balancing:
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Configurer une contrainte personnalisée
Une contrainte personnalisée est définie par les ressources, les méthodes, les conditions et les actions compatibles avec le service sur lequel vous appliquez la règle d'administration. Les conditions de vos contraintes personnalisées sont définies à l'aide du langage CEL (Common Expression Language). Pour en savoir plus sur la création de conditions dans des contraintes personnalisées à l'aide du CEL, consultez la section CEL de la page Créer et gérer des règles d'administration personnalisées.
Vous pouvez créer une contrainte personnalisée et la configurer pour l'utiliser dans des règles d'administration à l'aide de la console Google Cloud ou de gcloud CLI.
Console
Lorsque vous saisissez une valeur dans chaque champ, la configuration YAML équivalente pour cette contrainte personnalisée s'affiche sur la droite.
gcloud
Pour créer une contrainte personnalisée à l'aide de gcloud CLI, créez un fichier YAML pour cette contrainte :
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME resource_types: - compute.googleapis.com/RESOURCE_NAME method_types: - CREATE - UPDATE condition: CONDITION action_type: ACTION display_name: DISPLAY_NAME description: DESCRIPTION
Remplacez les éléments suivants :
Pour en savoir plus sur la création d'une contrainte personnalisée, consultez la page Créer et gérer des règles d'administration personnalisées.
Après avoir créé le fichier YAML pour une nouvelle contrainte personnalisée, vous devez le configurer de sorte qu'il soit disponible pour les règles d'administration de votre organisation. Pour configurer une contrainte personnalisée, utilisez la commandegcloud org-policies set-custom-constraint
: Remplacezgcloud org-policies set-custom-constraint CONSTRAINT_PATH
CONSTRAINT_PATH
par le chemin d'accès complet à votre fichier de contrainte personnalisée. Par exemple,/home/user/customconstraint.yaml
. Une fois l'opération terminée, vos contraintes personnalisées sont disponibles en tant que règles d'administration dans votre liste de règles d'administration Google Cloud . Pour vérifier que la contrainte personnalisée existe, utilisez la commandegcloud org-policies list-custom-constraints
: Remplacezgcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
ORGANIZATION_ID
par l'ID de votre ressource d'organisation. Pour en savoir plus, consultez la page Afficher les règles d'administration.Appliquer une contrainte personnalisée
Vous pouvez appliquer une contrainte booléenne en créant une règle d'administration qui la référence, puis en appliquant cette règle d'administration à une ressource Google Cloud .Console
gcloud
Pour créer une règle d'administration qui applique une contrainte booléenne, créez un fichier YAML de règle qui référence la contrainte :
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true
Remplacez les éléments suivants :
Pour appliquer la règle d'administration contenant la contrainte, exécutez la commande suivante :
gcloud org-policies set-policy POLICY_PATH
Remplacez
POLICY_PATH
par le chemin d'accès complet au fichier YAML de votre règle d'administration. La prise en compte de la règle peut prendre jusqu'à 15 minutes.Exemple : Utiliser des contraintes personnalisées pour restreindre les fonctionnalités TLS
Pour restreindre les fonctionnalités TLS pour les équilibreurs de charge pris en charge à l'aide de contraintes personnalisées, définissez une règle qui utilise la contrainte
constraints/compute.requireSslPolicy
prédéfinie dans votre organisation. Après avoir défini la règle, procédez comme suit pour configurer les contraintes personnalisées et les utiliser.Exemple : créer une contrainte qui limite le port de vérification de l'état TCP à un minimum de 1 024
L'exemple suivant crée une contrainte et une règle personnalisées qui limitent le numéro de port de vérification de l'état de l'état TCP à un minimum de
1024
.Avant de commencer, vous devez connaître les points suivants:
gcloud
Autres exemples de cas d'utilisation courants
Les sections suivantes fournissent la syntaxe de certaines contraintes personnalisées qui pourraient vous être utiles:
Buckets backend
Cas d'utilisation Syntaxe Exiger que Cloud CDN soit activé pour tous les buckets backend name: organizations/ORGANIZATION_ID/customConstraints/custom.backendBucketEnableCdn resourceTypes: - compute.googleapis.com/BackendBucket methodTypes: - CREATE - UPDATE condition: "resource.enableCdn == true" actionType: ALLOW displayName: Require all backend buckets to have Cloud CDN enabled description: All backend buckets must have Cloud CDN enabled.
Services de backend
Cas d'utilisation Syntaxe Interdire l'utilisation de HTTP et de TCP comme protocoles de service de backend name: organizations/ORGANIZATION_ID/customConstraints/custom.backendBucketEnableCdn resourceTypes: - compute.googleapis.com/BackendService methodTypes: - CREATE - UPDATE condition: "resource.serviceProtocol == 'HTTP' || resource.serviceProtocol == 'TCP'" actionType: DENY displayName: Disallow the use of HTTP and TCP as backend service protocols description: Backend services cannot configure HTTP or TCP as the backend service protocol.
Règles de transfert
Cas d'utilisation Syntaxe Exiger que les règles de transfert utilisent le niveau Standard name: organizations/ORGANIZATION_ID/customConstraints/custom.forwardingRulesStandardTier resourceTypes: - compute.googleapis.com/ForwardingRule methodTypes: - CREATE - UPDATE condition: "resource.networkTier == 'STANDARD'" actionType: ALLOW displayName: Require forwarding rules to use Standard Tier description: Forwarding rules must use the Standard Network Service Tier.
Vérifications d'état
Cas d'utilisation Syntaxe Exiger que tous les protocoles de vérification de l'état;état se produisent sur le port 1024 ou supérieur name: organizations/ORGANIZATION_ID/customConstraints/custom.healthCheckPortMin1024 resourceTypes: - compute.googleapis.com/HealthCheck methodTypes: - CREATE - UPDATE condition: "resource.tcpHealthCheck.port >= 1024 && resource.httpHealthCheck.port >= 1024 && resource.httpsHealthCheck.port >= 1024 && resource.sslHealthCheck.port >= 1024 && resource.sslHealthCheck.port >= 1024 &&resource.http2HealthCheck.port >= 1024 && resource.grpcHealthCheck.port >= 1024" actionType: ALLOW displayName: Require port 1024 or greater for all health checks description: All health check protocols must use a port of 1024 or higher, to avoid well-known ports.
Interdire les vérifications de l'état GRPC name: organizations/ORGANIZATION_ID/customConstraints/custom.disallowGRPCHealthChecks resourceTypes: - compute.googleapis.com/HealthCheck methodTypes: - CREATE - UPDATE condition: "resource.type == 'GRPC'" actionType: DENY displayName: Disallow GRPC health checks description: Health checks aren't allowed to use GRPC.
Empêcher les vérifications d'état à haute fréquence name: organizations/ORGANIZATION_ID/customConstraints/custom.minHealthCheckFrequency resourceTypes: - compute.googleapis.com/HealthCheck methodTypes: - CREATE - UPDATE condition: "resource.checkIntervalSec >= 30" actionType: ALLOW displayName: Disallow fast health check probes description: Prevent health checks from having a probe frequency under 30 seconds.
Proxy cibles
Cas d'utilisation Syntaxe Interdire les valeurs de délai avant expiration du message keepalive HTTPS client supérieures à 1 000 secondes name: organizations/ORGANIZATION_ID/customConstraints/custom.clientHTTPSKeepalive1000Sec resourceTypes: - compute.googleapis.com/TargetHttpsProxy methodTypes: - CREATE - UPDATE condition: "resource.httpKeepAliveTimeoutSec > 1000" actionType: DENY displayName: Disallow client HTTPS keepalive timeout greater than 1000 seconds description: Disallow client HTTPS keepalive timeout values greater than 1000 seconds.
Mappages d'URL
Cas d'utilisation Syntaxe Exiger que les mappages d'URL disposent d'une stratégie de réponse d'erreur personnalisée pour les codes d'état HTTP 500
name: organizations/ORGANIZATION_ID/customConstraints/custom.urlMapCustomResponseHTTP500 resourceTypes: - compute.googleapis.com/UrlMaps methodTypes: - CREATE - UPDATE condition: "resource.defaultCustomErrorResponsePolicy.errorResponseRule.exists(value, value.matchResponseCode == 500)" actionType: ALLOW displayName: Require URL maps to have a custom error response policy for HTTP 500 errors description: URL maps must have a custom error response policy configured for HTTP 500 errors.
Instances cibles
Cas d'utilisation Syntaxe Exiger que les instances cibles portent un nom commençant par la chaîne "targetInstance" name: organizations/ORGANIZATION_ID/customConstraints/custom.targetInstanceConstraint resourceTypes: - compute.googleapis.com/TargetInstance methodTypes: - CREATE - UPDATE condition: "resource.name.startsWith('targetInstance')" actionType: ALLOW displayName: Require target instances to have a name that starts with the string "targetInstance" description: Target instances must have resource names that start with the string "targetInstance"
Pools cibles
Cas d'utilisation Syntaxe Exiger que les pools cibles disposent d'une affinité de session CLIENT_IP name: organizations/ORGANIZATION_ID/customConstraints/custom.targetPoolConstraint resourceTypes: - compute.googleapis.com/TargetPool methodTypes: - CREATE - UPDATE condition: "resource.sessionAffinity == 'CLIENT_IP'" actionType: ALLOW displayName: Require target pools to use CLIENT_IP session affinity description: Target pools must use CLIENT_IP session affinity
Limites
Étape suivante
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/01/07 (UTC).
-