Google Cloud 조직 정책을 사용하면 조직 리소스를 중앙에서 프로그래매틱 방식으로 제어할 수 있습니다. 조직 정책 관리자는 Google Cloud 리소스 계층 구조에서 Google Cloud 리소스 및 이러한 리소스의 하위 요소에 적용되는 제약조건이라는 제한사항 집합인 조직 정책을 정의할 수 있습니다. 조직, 폴더, 프로젝트 수준에서 조직 정책을 적용할 수 있습니다.
조직 정책은 다양한 Google Cloud 서비스에 대한 사전 정의된 제약조건을 제공합니다. 그러나 조직 정책에서 제한되는 특정 필드를 보다 세부적으로 맞춤설정 가능한 방식으로 제어하려면 커스텀 제약조건을 만들고 커스텀 조직 정책에 이러한 커스텀 제약조건을 사용하면 됩니다.
다음 부하 분산 구성요소는 맞춤 제약조건을 지원합니다.
이점
- 비용 관리: 커스텀 조직 정책을 사용하여 상태 점검 프로브 빈도를 제한합니다.
보안, 규정 준수, 거버넌스: 커스텀 조직 정책을 사용하여 정책을 적용할 수 있습니다. 예를 들면 다음과 같습니다.
- 특정 상태 점검 프로토콜 또는 포트 범위의 사용을 적용합니다.
- 특정 백엔드 트래픽 프로토콜을 허용하지 않기
- 백엔드 버킷에 Cloud CDN이 사용 설정되어 있어야 함
- 전달 규칙에서 특정 네트워크 서비스 등급을 사용하도록 요구
Cloud Load Balancing 지원 리소스
Cloud Load Balancing의 경우 다음 리소스 및 필드에 커스텀 제약조건을 설정할 수 있습니다.
백엔드 버킷
백엔드 버킷: 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
백엔드 서비스
백엔드 서비스: 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
전달 규칙
전달 규칙: 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
상태 점검
상태 점검: compute.googleapis.com/HealthCheck
resource.name
resource.description
resource.checkIntervalSec
resource.timeoutSec
resource.unhealthyThreshold
resource.healthyThreshold
resource.type
- TCP 상태 점검:
resource.tcpHealthCheck.port
resource.tcpHealthCheck.request
resource.tcpHealthCheck.response
resource.tcpHealthCheck.proxyHeader
resource.tcpHealthCheck.portSpecification
- SSL 상태 점검:
resource.sslHealthCheck.port
resource.sslHealthCheck.request
resource.sslHealthCheck.response
resource.sslHealthCheck.proxyHeader
resource.sslHealthCheck.portSpecification
- HTTP 상태 점검:
resource.httpHealthCheck.port
resource.httpHealthCheck.host
resource.httpHealthCheck.requestPath
resource.httpHealthCheck.proxyHeader
resource.httpHealthCheck.response
resource.httpHealthCheck.portSpecification
- HTTPS 상태 점검:
resource.httpsHealthCheck.port
resource.httpsHealthCheck.host
resource.httpsHealthCheck.requestPath
resource.httpsHealthCheck.proxyHeader
resource.httpsHealthCheck.response
resource.httpsHealthCheck.portSpecification
- HTTP/2 상태 점검:
resource.http2HealthCheck.port
resource.http2HealthCheck.host
resource.http2HealthCheck.requestPath
resource.http2HealthCheck.proxyHeader
resource.http2HealthCheck.response
resource.http2HealthCheck.portSpecification
- gRPC 상태 점검:
resource.grpcHealthCheck.port
resource.grpcHealthCheck.grpcServiceName
resource.grpcHealthCheck.portSpecification
resource.sourceRegions
resource.logConfig
resource.logConfig.enable
대상 프록시
대상 TCP 프록시: compute.googleapis.com/TargetTcpProxy
resource.name
resource.description
resource.proxyBind
resource.proxyHeader
대상 SSL 프록시: compute.googleapis.com/TargetSslProxy
resource.name
resource.description
resource.proxyHeader
대상 HTTP 프록시: compute.googleapis.com/TargetHttpProxy
resource.name
resource.description
resource.proxyBind
resource.httpKeepAliveTimeoutSec
대상 HTTPS 프록시: compute.googleapis.com/TargetHttpsProxy
resource.name
resource.description
resource.proxyBind
resource.httpKeepAliveTimeoutSec
resource.quicOverride
resource.tlsEarlyData
타겟 gRPC 프록시: compute.googleapis.com/TargetGrpcProxy
resource.name
resource.description
resource.validateForProxyless
URL 맵
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
SSL 정책
SSL 정책: compute.googleapis.com/SslPolicy
resource.profile
resource.name
resource.description
resource.minTlsVersion
resource.customFeatures
대상 인스턴스
타겟 인스턴스: compute.googleapis.com/TargetInstance
resource.name
resource.description
resource.natPolicy
대상 풀
타겟 풀: compute.googleapis.com/TargetPool
resource.name
resource.description
resource.sessionAffinity
resource.failoverRatio
지원되는 기타 컴퓨팅 리소스에 관한 자세한 내용은 Compute Engine 맞춤 제약 조건 페이지를 참고하세요.
정책 상속
기본적으로 조직 정책은 정책을 적용하는 리소스의 하위 요소에 상속됩니다. 예를 들어 폴더에 정책을 적용하면 Google Cloud가 폴더의 모든 프로젝트에 정책을 적용합니다. 이 동작 및 이를 변경하는 방법에 대한 자세한 내용은 계층 구조 평가 규칙을 참조하세요.
시작하기 전에
-
아직 인증을 설정하지 않았다면 설정합니다.
인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다.
로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음 옵션 중 하나를 선택하여 Compute Engine에 인증하면 됩니다.
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.
- 조직 ID를 알고 있어야 합니다.
-
조직 resource_types의 조직 정책 관리자 (
roles/orgpolicy.policyAdmin
) -
부하 분산 리소스의 제약조건을 테스트하려면 프로젝트 리소스에 대한 Compute 부하 분산기 관리자 (v1) (
roles/compute.loadBalancerAdmin.v1
) 권한이 필요합니다. -
orgpolicy.constraints.list
-
orgpolicy.policies.create
-
orgpolicy.policies.delete
-
orgpolicy.policies.list
-
orgpolicy.policies.update
-
orgpolicy.policy.get
-
orgpolicy.policy.set
Google Cloud 콘솔에서 조직 정책 페이지로 이동합니다.
페이지 상단의 프로젝트 선택 도구를 선택합니다.
리소스 선택 창에서 맞춤 제약조건을 만들려는 조직을 선택합니다.
커스텀 제약조건을 클릭합니다.
표시 이름 상자에 제약조건에 대해 사용자 친화적인 이름을 입력합니다. 이 필드의 최대 길이는 200자(영문 기준)입니다. 오류 메시지에 노출될 수 있으므로 제약조건 이름에 민감한 정보 또는 PII를 사용하지 마세요.
제약조건 ID 상자에 새 커스텀 제약조건에 사용하려는 이름을 입력합니다. 커스텀 제약조건은
custom.
으로 시작해야 하며 대소문자 또는 숫자만 포함할 수 있습니다(예:custom.enforceTCPHealthCheckPort1024
). 이 필드의 최대 길이는 프리픽스를 제외하고 70자입니다(예:organizations/123456789/customConstraints/custom.
).설명 상자에 정책을 위반할 때 오류 메시지로 표시할 제약조건에 대해 사용자 친화적인 설명을 입력합니다. 이 필드의 최대 길이는 2,000자(영문 기준)입니다.
리소스 유형 상자에서 제한하려는 객체 및 필드가 포함된 Google Cloud REST 리소스 이름을 선택합니다. 예를 들면
compute.googleapis.com/HealthCheck
입니다.적용 방법 아래에서 REST
CREATE
메서드에 제약조건을 적용할지 여부를 선택합니다.조건을 정의하려면
조건 수정을 클릭합니다.조건 추가 패널에서 지원되는 서비스 리소스를 참조하는 CEL 조건을 만듭니다(예:
). 이 필드의 최대 길이는 1000자(영문 기준)입니다.resource.tcpHealthCheck.port >= 1024
저장을 클릭합니다.
작업에서 조건이 충족될 경우 평가된 메서드를 허용하거나 거부할지를 선택합니다.
제약조건 만들기를 클릭합니다.
ORGANIZATION_ID
: 조직 ID입니다(예:123456789
).CONSTRAINT_NAME
: 새 커스텀 제약조건에 사용하려는 이름입니다. 커스텀 제약조건은custom.
으로 시작해야 하며 대문자, 소문자 또는 숫자만 포함할 수 있습니다. 예를 들면custom.enforceTCPHealthCheckPort1024
입니다. 이 필드의 최대 길이는 프리픽스를 제외하고 70자입니다(예:organizations/123456789/customConstraints/custom.
).RESOURCE_NAME
: 제한할 객체 및 필드가 포함된 Compute Engine API REST 리소스의 이름입니다(URI 아님). 예를 들면HealthCheck
입니다.CONDITION
: 지원되는 서비스 리소스의 표현에 대해 작성된 CEL 조건. 이 필드의 최대 길이는 1000자(영문 기준)입니다. 조건을 작성하는 데 사용할 수 있는 리소스에 대한 자세한 내용은 지원되는 리소스를 참조하세요. 예를 들면"resource.tcpHealthCheck.port >= 1024"
입니다.ACTION
:condition
이 충족될 때 수행할 작업.ALLOW
또는DENY
일 수 있습니다.DISPLAY_NAME
: 제약조건에 대한 사용자 친화적인 이름입니다. 이 필드의 최대 길이는 200자(영문 기준)입니다.DESCRIPTION
: 정책을 위반할 때 오류 메시지로 표시할 제약조건에 대한 사용자 친화적인 설명입니다. 이 필드의 최대 길이는 2,000자(영문 기준)입니다.- Google Cloud 콘솔에서 조직 정책 페이지로 이동합니다.
- 프로젝트 선택 도구에서 조직 정책을 설정할 프로젝트를 선택합니다.
- 조직 정책 페이지의 목록에서 제약조건을 선택하여 해당 제약조건의 정책 세부정보 페이지를 봅니다.
- 이 리소스의 조직 정책을 구성하려면 정책 관리를 클릭합니다.
- 정책 수정 페이지에서 상위 정책 재정의를 선택합니다.
- 규칙 추가를 클릭합니다.
- 적용 섹션에서 이 조직 정책 적용을 사용 설정할지 여부를 선택합니다.
- 선택사항: 태그로 조직 정책을 조건부로 만들려면 조건 추가를 클릭합니다. 조건부 규칙을 조직 정책에 추가하면 비조건부 규칙을 최소 하나 이상 추가해야 합니다. 그렇지 않으면 정책을 저장할 수 없습니다. 자세한 내용은 태그를 사용하여 조직 정책 설정을 참조하세요.
- 커스텀 제약조건인 경우 변경사항 테스트를 클릭하여 이 조직 정책의 효과를 시뮬레이션할 수 있습니다. 자세한 내용은 정책 시뮬레이터로 조직 정책 변경사항 테스트를 참조하세요.
- 조직 정책을 완료하고 적용하려면 정책 설정을 클릭합니다. 정책이 적용되는 데 최대 15분이 소요됩니다.
-
PROJECT_ID
: 제약조건을 적용할 프로젝트입니다. -
CONSTRAINT_NAME
: 커스텀 제약조건에 대해 정의된 이름입니다. 예를 들면
입니다.custom.enforceTCPHealthCheckPort1024
커스텀 제약조건의 YAML 파일을 만듭니다.
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
다음 예시에서는 최소 TLS 버전을 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.
커스텀 제약조건을 조직에 추가합니다.
gcloud org-policies set-custom-constraint PATH_TO_FILE
조직에 커스텀 제약조건이 있는지 확인합니다.
gcloud org-policies list-custom-constraints \ --organization=ORGANIZATION_ID
제약조건의 정책 파일을 만듭니다.
name: projects/PROJECT_ID/policies/custom.CONSTRAINT_NAME spec: rules: – enforce: true
다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트 ID입니다.CONSTRAINT_NAME
: 제약조건 이름
정책을 적용합니다.
gcloud org-policies set-policy PATH_TO_POLICY_FILE
PATH_TO_POLICY_FILE
을 정책 파일의 정규화된 경로로 바꿉니다.최소 TLS 버전을 1.2로 제한하는 YAML 파일을 만들었다고 가정하고
minTlsVersion
을TLS_1_0
으로 설정하여 SSL 정책을 만들어 제약조건을 테스트합니다.gcloud compute ssl-policies create SSL_POLICY_NAME \ --min-tls-version=1.0 \ --project=PROJECT_ID
출력은 다음과 비슷합니다.
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
프로젝트 ID
다음 정보로
enforceTCPHealthCheckPort1024.yaml
제약조건 파일을 만듭니다.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.
커스텀 제약조건을 설정합니다.
gcloud org-policies set-custom-constraint enforceTCPHealthCheckPort1024.yaml
다음 정보로
enforceTCPHealthCheckPort1024-policy.yaml
정책 파일을 만듭니다. 이 예시에서는 프로젝트 수준에서 이 제약조건을 적용하지만 조직 또는 폴더 수준에서 이를 설정할 수도 있습니다.PROJECT_ID
를 프로젝트 ID로 바꿉니다.name: projects/PROJECT_ID/policies/custom.enforceTCPHealthCheckPort1024 spec: rules: – enforce: true
정책을 적용합니다.
gcloud org-policies set-policy enforceTCPHealthCheckPort1024-policy.yaml
허용되지 않는 포트 80에서 TCP 상태 점검을 만들어 제약조건을 테스트합니다.
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 \
출력은 다음과 비슷합니다.
ERROR: (gcloud.compute.healthChecks.create) Could not fetch resource: – Operation denied by custom org policies: [customConstraints/
custom.enforceTCPHealthCheckPort1024
]: Only TCP HealthCheck Port >= 1024 Allowed.기존 상태 확인(기존 전역 (HTTP) 및 기존 전역 (HTTPS))은 지원되지 않습니다.
Compute Engine SSL 정책 리소스와 같은 일부 Compute Engine 리소스의 경우
UPDATE
메서드에도 커스텀 제약조건이 적용됩니다.- 조직 정책에 대해 자세히 알아보기
- 조직 정책 만들기 및 관리 방법 자세히 알아보기
- 사전 정의된 조직 정책 제약조건의 전체 목록 참조하기
필요한 역할
Cloud Load Balancing 리소스의 조직 정책을 관리하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이러한 사전 정의된 역할에는 Cloud Load Balancing 리소스의 조직 정책을 관리하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
Cloud Load Balancing 리소스의 조직 정책을 관리하려면 다음 권한이 필요합니다.
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
커스텀 제약조건 설정
커스텀 제약조건은 조직 정책을 적용하는 서비스에서 지원되는 리소스, 메서드, 조건, 작업에 의해 정의됩니다. 커스텀 제약조건의 조건은 Common Expression Language(CEL)를 사용하여 정의됩니다. CEL을 사용해서 커스텀 제약 조건에서 조건을 빌드하는 방법은 커스텀 조직 정책 만들기 및 관리의 CEL 섹션을 참조하세요.
Google Cloud 콘솔이나 gcloud CLI를 사용하여 커스텀 제약조건을 만들고 조직 정책에 사용하도록 설정할 수 있습니다.
콘솔
각 필드에 값을 입력하면 이 커스텀 제약조건에 해당하는 YAML 구성이 오른쪽에 표시됩니다.
gcloud
gcloud CLI를 사용하여 커스텀 제약조건을 만들려면 커스텀 제약조건의 YAML 파일을 만듭니다.
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
다음을 바꿉니다.
커스텀 제약조건을 만드는 방법은 커스텀 조직 정책 만들기 및 관리를 참조하세요.
새 커스텀 제약조건의 YAML 파일을 만든 후에는 조직에서 조직 정책에 사용할 수 있도록 설정해야 합니다. 커스텀 제약조건을 설정하려면gcloud org-policies set-custom-constraint
명령어를 사용합니다.gcloud org-policies set-custom-constraint CONSTRAINT_PATH
CONSTRAINT_PATH
를 커스텀 제약조건 파일의 전체 경로로 바꿉니다. 예를 들면/home/user/customconstraint.yaml
입니다. 완료되면 Google Cloud 조직 정책 목록에서 조직 정책으로 커스텀 제약조건을 사용할 수 있습니다. 커스텀 제약조건이 존재하는지 확인하려면gcloud org-policies list-custom-constraints
명령어를 사용합니다.gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
ORGANIZATION_ID
를 조직 리소스 ID로 바꿉니다. 자세한 내용은 조직 정책 보기를 참조하세요.커스텀 제약조건 적용
불리언 제약조건을 참조하는 조직 정책을 만들고 해당 조직 정책을 Google Cloud 리소스에 적용하여 불리언 제약조건을 적용할 수 있습니다.콘솔
gcloud
불리언 제약조건을 적용하는 조직 정책을 만들려면 제약조건을 참조하는 정책 YAML 파일을 만듭니다.
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true
다음을 바꿉니다.
제약조건이 포함된 조직 정책을 적용하려면 다음 명령어를 실행합니다.
gcloud org-policies set-policy POLICY_PATH
POLICY_PATH
를 조직 정책 YAML 파일의 전체 경로로 바꿉니다. 정책이 적용되는 데 최대 15분이 소요됩니다.예시: 커스텀 제약조건을 사용하여 TLS 기능 제한
커스텀 제약조건을 사용하여 지원되는 부하 분산기의 TLS 기능을 제한하려면 조직에서 사전 정의된
constraints/compute.requireSslPolicy
제약조건을 사용하는 정책을 정의합니다. 정책을 정의한 후 다음 단계를 수행하여 커스텀 제약조건을 설정하고 사용합니다.예: TCP 상태 점검 포트를 최소 1024로 제한하는 제약조건 만들기
다음 예에서는 TCP 상태 확인 포트 번호를 최소
1024
로 제한하는 맞춤 제약조건 및 정책을 만듭니다.시작하기 전에 다음 사항을 알아야 합니다.
gcloud
일반적인 사용 사례의 추가 예시
다음 섹션에서는 유용할 수 있는 몇 가지 커스텀 제약조건의 구문을 제공합니다.
백엔드 버킷
사용 사례 구문 모든 백엔드 버킷에 Cloud CDN을 사용 설정하도록 요구 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.
백엔드 서비스
사용 사례 구문 HTTP 및 TCP를 백엔드 서비스 프로토콜로 사용하는 것을 허용하지 않음 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.
전달 규칙
사용 사례 구문 전달 규칙에서 표준 등급을 사용해야 함 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.
상태 점검
사용 사례 구문 모든 상태 점검 프로토콜이 포트 1024 이상에서 실행되도록 요구 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.
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.
빈번한 상태 점검 프로브 방지 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.
대상 프록시
사용 사례 구문 클라이언트 HTTPS 연결 유지 제한 시간 값이 1,000초를 초과하는 경우 허용 안함 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.
URL 맵
사용 사례 구문 URL 맵에 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.
대상 인스턴스
사용 사례 구문 대상 인스턴스의 이름이 '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"
대상 풀
사용 사례 구문 대상 풀에 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
제한사항
다음 단계
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2024-12-22(UTC)
-