Automatically enforced constraints
If an organization policy isn't enforced, it inherits from its lowest ancestor where an organization policy is enforced. If no organization policy is enforced anywhere in the ancestor hierarchy, the Google-managed default behavior of the constraint is enforced.
If the Google-managed default behavior of an organization policy constraint restricts an operation, then that operation is restricted even if you never explicitly defined an organization policy. To allow those operations, you must create organization policies that override the parent policy.
The following organization policy constraints have a Google-managed default behavior that restricts operations:
| Organization policy constraint | Constraint type | 
|---|---|
| constraints/appengine.runtimeDeploymentExemption | Managed (legacy) | 
| constraints/cloudbuild.disableCreateDefaultServiceAccount | Managed (legacy) | 
| constraints/cloudbuild.useBuildServiceAccount | Managed (legacy) | 
| constraints/cloudbuild.useComputeServiceAccount | Managed (legacy) | 
| constraints/commerceorggovernance.marketplaceServices | Managed (legacy) | 
| constraints/compute.managed.blockPreviewFeatures | Managed | 
| constraints/compute.sharedReservationsOwnerProjects | Managed (legacy) | 
| constraints/iam.allowServiceAccountCredentialLifetimeExtension | Managed (legacy) | 
| constraints/iam.disableCrossProjectServiceAccountUsage | Managed (legacy) | 
| constraints/iam.managed.disableServiceAccountApiKeyCreation | Managed | 
| constraints/iam.serviceAccountKeyExposureResponse | Managed (legacy) | 
| constraints/resourcemanager.allowedExportDestinations | Managed (legacy) | 
| constraints/resourcemanager.allowedImportSources | Managed (legacy) | 
| constraints/resourcemanager.allowEnabledServicesForExport | Managed (legacy) | 
Available constraints
You can specify policies that use the following constraints.
Managed Constraints
True 
.By default, hardware-accelerated nested virtualization is allowed for all Compute Engine VMs running on Intel Haswell or newer CPU platforms.
constraints/compute.managed.disableNestedVirtualization 
Important: Enforcing this constraint does not affect existing VMs where serial-port-enable is already set to true; they will retain access unless their metadata is updated.
constraints/compute.managed.disableSerialPortAccess 
By default, serial port logging for Compute Engine VMs is disabled, and can be selectively enabled on a per-VM or per-project basis using metadata attributes . Disabling serial port logging can cause certain services that rely on it, such as Google Kubernetes Engine clusters, to not function correctly. Before you enforce this constraint, verify that the products in your project do not rely on serial port logging. You can allow specific VM instances to use serial port logging. First apply tags to mark the instances, and then use conditional rules based on tag values to properly scope those instances out of enforcement.
constraints/compute.managed.disableSerialPortLogging 
constraints/compute.managed.disallowGlobalDns 
constraints/compute.managed.requireOsConfig 
constraints/compute.managed.requireOsLogin 
- INTERNAL
- EXTERNAL
constraints/compute.managed.restrictProtocolForwardingCreationForTypes 
constraints/compute.managed.vmCanIpForward 
constraints/compute.managed.vmExternalIpAccess 
constraints/container.managed.enableBinaryAuthorization 
constraints/container.managed.enableGoogleGroupsRBAC 
constraints/container.managed.enableNetworkPolicy 
constraints/container.managed.enableSecurityBulletinNotifications 
constraints/container.managed.enableWorkloadIdentityFederation 
constraints/container.managed.disallowDefaultComputeServiceAccount 
constraints/container.managed.enableControlPlaneDNSOnlyAccess 
constraints/container.managed.enablePrivateNodes 
constraints/container.managed.enableSecretsEncryption 
constraints/container.managed.disableRBACSystemBindings 
constraints/container.managed.enableShieldedNodes 
constraints/container.managed.disableInsecureKubeletReadOnlyPort 
constraints/container.managed.disableLegacyClientCertificateIssuance 
constraints/container.managed.enableCloudLogging 
constraints/container.managed.disableABAC 
constraints/container.managed.denyServiceExternalIPs 
Specifying an organization principal set allows all identities that are associated with that organization (including Workspace accounts, Workspace groups, service accounts, workforce pool identities, workload pool identities, and service agents) to be granted roles in your organization. Your organization principal set is not automatically allowed, and must be included as an allowed principal set.
You can specify individual members using the principal type prefix (for example, `user:` or `serviceAccount:` to grant them and associated aliases roles in your organization.
Enforcing this constraint can block folder resource creation due to automatic Folder Admin and Folder Editor role grants, and can block project resource creation due to automatic Owner role grants.
constraints/iam.managed.allowedPolicyMembers 
By default, service accounts can be created by users based on their Cloud IAM roles and permissions.
constraints/iam.managed.disableServiceAccountCreation 
constraints/iam.managed.disableServiceAccountApiKeyCreation 
roles/editor 
) or the Owner role  ( roles/owner 
) to the Compute Engine and App Engine  default service accounts, at any time.  To learn more about default service accounts, see  https://cloud.google.com/iam/help/service-accounts/default.  Enforcing this constraint prevents the default service accounts from  automatically being granted the Editor role  ( roles/editor 
). This might cause permission issues for  services that use these service accounts.  To learn which roles to grant to each service account, see  https://cloud.google.com/iam/help/service-accounts/troubleshoot-roles-default.constraints/iam.managed.preventPrivilegedBasicRolesForDefaultServiceAccounts 
constraints/iam.managed.disableServiceAccountKeyCreation 
By default, users can upload public keys to service accounts based on their Cloud IAM roles and permissions.
constraints/iam.managed.disableServiceAccountKeyUpload 
By default, email addresses with any domain can be added to Essential Contacts.
The allowedDomains list must specify one or more domains of the form
@example.com 
. If this constraint is enforced, only email addresses with a suffix matching one of the entries from the list of allowed domains can be added in Essential Contacts.This constraint has no effect on updating or removing existing contacts.
constraints/essentialcontacts.managed.allowedContactDomains 
If this constraint is not enforced, you can set the
service.invoker_iam_disabled 
field (v2), or the run.googleapis.com/invoker-iam-disabled 
annotation (v1) on Cloud Run services to True 
. It's also possible to achieve a similar result by granting the run.routes.invoke 
permission to allUsers. Please visit https://cloud.google.com/run/docs/securing/managing-access#make-service-public  and https://cloud.google.com/run/docs/securing/security for more information.constraints/run.managed.requireInvokerIam 
constraints/compute.managed.blockPreviewFeatures 
By default, VLAN Attachments are allowed to use any encryption settings.
Set IPSEC as the allowed value to enforce creating encrypted VLAN attachments only.
constraints/compute.managed.allowedVlanAttachmentEncryption 
constraints/pubsub.managed.disableTopicMessageTransforms 
constraints/pubsub.managed.disableSubscriptionMessageTransforms 
Constraints supported by multiple Google Cloud services
By default, Cloud Build can use any Worker Pool.
The allowed list of Worker Pools must be of the form:
-  under:organizations/ ORGANIZATION_ID
-  under:folders/ FOLDER_ID
-  under:projects/ PROJECT_ID
-  projects/ PROJECT_ID /locations/ REGION /workerPools/ WORKER_POOL_ID
constraints/cloudbuild.allowedWorkerPools 
"is:" 
, "under:" 
By default, resources can be created in any location. For a full list of supported services, see https://cloud.google.com/resource-manager/docs/organization-policy/defining-locations-supported-services.
Policies for this constraint can specify multi-regions such as
asia 
and europe 
, regions such as us-east1 
or europe-west1 
as allowed or denied locations. Allowing or denying a multi-region does not imply that all included sub-locations should also be allowed or denied. For example, if the policy denies the us 
multi-region (which refers to multi-region resources, like some storage services), resources can still be created in the regional location us-east1 
. On the other hand, the in:us-locations 
group contains all locations within the us 
region, and can be used to block every region.We recommend using value groups to define your policy.
You can specify value groups , collections of locations that are curated by Google to provide a simple way to define your resource locations. To use value groups in your organization policy, prefix your entries with the string
in: 
, followed by the value group.For example, to create resources that will only be physically located within the US, set
in:us-locations 
in the list of allowed values.If the
suggested_value 
field is used in a location policy, it should be a region. If the value specified is a region, a UI for a zonal resource may pre-populate any zone in that region.constraints/gcp.resourceLocations 
"is:" 
, "in:" 
Allow 
(i.e. only allow CMEK keys from these projects) ensures that CMEK keys from other projects cannot be used to protect newly created resources. Values for this constraint must be specified in the form of under:organizations/ ORGANIZATION_ID 
 
, under:folders/ FOLDER_ID 
 
, or projects/ PROJECT_ID 
 
. Supported services that enforce this constraint are: - aiplatform.googleapis.com
- alloydb.googleapis.com
- apigee.googleapis.com
- artifactregistry.googleapis.com
- bigquery.googleapis.com
- bigquerydatatransfer.googleapis.com
- bigtable.googleapis.com
- cloudfunctions.googleapis.com
- cloudtasks.googleapis.com
- composer.googleapis.com
- compute.googleapis.com
- contactcenterinsights.googleapis.com
- container.googleapis.com
- dataflow.googleapis.com
- dataform.googleapis.com
- datafusion.googleapis.com
- dataplex.googleapis.com
- dataproc.googleapis.com
- dialogflow.googleapis.com
- discoveryengine.googleapis.com
- documentai.googleapis.com
- eventarc.googleapis.com
- file.googleapis.com
- firestore.googleapis.com
- gkebackup.googleapis.com
- integrations.googleapis.com
- logging.googleapis.com
- looker.googleapis.com
- netapp.googleapis.com
- notebooks.googleapis.com
- pubsub.googleapis.com
- redis.googleapis.com
- run.googleapis.com
- secretmanager.googleapis.com
- securesourcemanager.googleapis.com
- spanner.googleapis.com
- speech.googleapis.com
- sqladmin.googleapis.com
- storage.googleapis.com
- workstations.googleapis.com
Deny 
or Deny All 
is not permitted. Enforcement of this constraint is not retroactive. Existing CMEK Google Cloud resources with KMS CryptoKeys from disallowed projects must be reconfigured or recreated manually to ensure enforcement.constraints/gcp.restrictCmekCryptoKeyProjects 
"is:" 
, "under:" 
This constraint can be used to block access to Google Cloud resources through global API endpoints, enforcing that locational or regional endpoints be used. For example, specifying
bigquery.googleapis.com 
in this policy's denylist will cause requests to bigquery.googleapis.com/... 
to fail but requests to {location}-bigquery.googleapis.com/... 
succeed.By default, access to all Google Cloud API endpoints is allowed.
The denied list of endpoints must come from the list below. Trying to save the denied list with other values will fail.
For more information, including the list of valid constraint values, please refer to the Restrict endpoint usage user guide .
constraints/gcp.restrictEndpointUsage 
"is:" 
, "in:" 
Deny 
(i.e. deny resource creation without CMEK) requires that, for the specified services, newly created resources must be protected by a CMEK key. Supported services that can be set in this constraint are: - aiplatform.googleapis.com
- alloydb.googleapis.com
- apigee.googleapis.com
- artifactregistry.googleapis.com
- bigquery.googleapis.com
- bigquerydatatransfer.googleapis.com
- bigtable.googleapis.com
- cloudfunctions.googleapis.com
- cloudtasks.googleapis.com
- composer.googleapis.com
- compute.googleapis.com
- contactcenterinsights.googleapis.com
- container.googleapis.com
- dataflow.googleapis.com
- dataform.googleapis.com
- datafusion.googleapis.com
- dataplex.googleapis.com
- dataproc.googleapis.com
- dialogflow.googleapis.com
- discoveryengine.googleapis.com
- documentai.googleapis.com
- eventarc.googleapis.com
- file.googleapis.com
- firestore.googleapis.com
- gkebackup.googleapis.com
- integrations.googleapis.com
- logging.googleapis.com
- looker.googleapis.com
- netapp.googleapis.com
- notebooks.googleapis.com
- pubsub.googleapis.com
- redis.googleapis.com
- run.googleapis.com
- secretmanager.googleapis.com
- securesourcemanager.googleapis.com
- spanner.googleapis.com
- speech.googleapis.com
- sqladmin.googleapis.com
- storage.googleapis.com
- storagetransfer.googleapis.com
- workstations.googleapis.com
Deny All 
is not permitted. Setting this constraint to Allow 
is not permitted. Enforcement of this constraint is not retroactive. Existing non-CMEK Google Cloud resources must be reconfigured or recreated manually to ensure enforcement.constraints/gcp.restrictNonCmekServices 
"is:" 
By default, all Google Cloud resource services are allowed.
For more information, see https://cloud.google.com/resource-manager/help/organization-policy/restricting-resources.
constraints/gcp.restrictServiceUsage 
"is:" 
By default, all TLS cipher suites are allowed. TLS cipher suites can be specified as an allowlist or a denylist and must be identified using their names. For example,
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 
, TLS_AES_128_GCM_SHA256 
.You can also specify value groups, collections of cipher suites that are curated by Google to provide a simple way to define the constraint. To use value groups in your organization policy, prefix your entries with the string in: 
, followed by the value group. For example, in:CNSA-2.0-recommended-ciphers 
.This constraint is only applied to requests using TLS. It will not be used to restrict unencrypted requests.
For more information, please refer to the Restrict TLS Cipher Suites user guide .
constraints/gcp.restrictTLSCipherSuites 
"is:" 
, "in:" 
By default, all TLS versions are allowed. TLS versions can only be specified in the denied list, and must be identified in the form
TLS_VERSION_1 
or TLS_VERSION_1_1 
.This constraint is only applied to requests using TLS. It will not be used to restrict unencrypted requests.
For more information, see https://cloud.google.com/assured-workloads/docs/restrict-tls-versions.
constraints/gcp.restrictTLSVersion 
"is:" 
By default, enabling IAP on regional resources is allowed.
constraints/iap.requireRegionalIapWebDisabled 
"is:" 
The denied list of services must come from the list below. Explicitly enabling APIs via this constraint is not currently supported. Specifying an API not in this list will result in an error.
Enforcement of this constraint is not retroactive. If a service is already enabled on a resource when this constraint is enforced, it will remain enabled.
constraints/serviceuser.services 
"is:" 
Constraints for specific services
service-account 
mode or single-user access with the single-user 
mode. The access mode to be allowed or denied must be listed explicitly.constraints/ainotebooks.accessMode 
"is:" 
constraints/ainotebooks.disableFileDownloads 
"is:" 
constraints/ainotebooks.disableRootAccess 
"is:" 
constraints/ainotebooks.disableTerminal 
"is:" 
The expected format for VM instances is
ainotebooks-vm/PROJECT_ID/IMAGE_TYPE/CONSTRAINED_VALUE 
. Replace IMAGE_TYPE with image-family 
or image-name 
. Examples: ainotebooks-vm/deeplearning-platform-release/image-family/pytorch-1-4-cpu 
, ainotebooks-vm/deeplearning-platform-release/image-name/pytorch-latest-cpu-20200615 
.The expected format for container images will be
ainotebooks-container/CONTAINER_REPOSITORY:TAG 
. Examples: ainotebooks-container/gcr.io/deeplearning-platform-release/tf-gpu.1-15:latest 
, ainotebooks-container/gcr.io/deeplearning-platform-release/tf-gpu.1-15:m48 
.constraints/ainotebooks.environmentOptions 
"is:" 
notebook-upgrade-schedule 
metadata flag to specify a cron schedule for the automatic upgrades. For example: --metadata=notebook-upgrade-schedule="00 19 * * MON" 
.constraints/ainotebooks.requireAutoUpgradeSchedule 
"is:" 
constraints/ainotebooks.restrictPublicIp 
"is:" 
under:organizations/ ORGANIZATION_ID 
 
, under:folders/ FOLDER_ID 
 
, under:projects/ PROJECT_ID 
 
, or projects/ PROJECT_ID 
/global/networks/ NETWORK_NAME 
 
.constraints/ainotebooks.restrictVpcNetworks 
"is:" 
, "under:" 
 model_id 
: feature_family 
 
. For example, publishers/google/models/text-bison:predict 
. This list constraint only restricts access to Google proprietary generative AI models, and doesn't affect third-party proprietary models or open source models. The constraint vertexai.allowedModels 
can be used to define access to a broader set of models including Google proprietary models, third-party proprietary models, and open source models. By default, all models can be used in Vertex AI APIs.constraints/vertexai.allowedGenAIModels 
"is:" 
 model_id 
: feature_family 
 
", for example " publishers/google/models/gemini-1.0-pro:predict 
". By default, all models can be used in Vertex AI APIs.constraints/vertexai.allowedModels 
"is:" 
constraints/vertexai.disableGenAIGoogleSearchGrounding 
"is:" 
By default, all grounding sources are allowed.
Valid values are:
GoogleMaps 
, VertexAiSearch 
, VertexRagStore 
, EnterpriseWebSearch 
, ExternalApiSimpleSearch 
, ExternalApiElasticSearch 
and UrlContext 
.constraints/vertexai.genAIGroundingSources 
"is:" 
constraints/appengine.disableCodeDownload 
"is:" 
constraints/appengine.runtimeDeploymentExemption 
"is:" 
constraints/bigquery.disableBQOmniAWS 
"is:" 
constraints/bigquery.disableBQOmniAzure 
"is:" 
By default, Cloud Build processes all webhooks for projects that have at least one LIVE trigger.
constraints/cloudbuild.allowedIntegrations 
"is:" 
constraints/cloudbuild.disableCreateDefaultServiceAccount 
"is:" 
constraints/cloudbuild.useBuildServiceAccount 
"is:" 
constraints/cloudbuild.useComputeServiceAccount 
"is:" 
By default, labels identifying Cloud Deploy resources are added to deployed objects during release creation.
constraints/clouddeploy.disableServiceLabelGeneration 
"is:" 
By default, Cloud Functions can use any ingress settings.
Ingress settings must be specified in the allowed list using the values of the
IngressSettings 
 
enum. The enum has a default value of INGRESS_SETTINGS_UNSPECIFIED 
. The enum must be changed to another value before you can use it in an organization policy.For Cloud Functions (2nd gen) use the constraint
constraints/run.allowedIngress 
.constraints/cloudfunctions.allowedIngressSettings 
"is:" 
By default, Cloud Functions can use any VPC Connector egress settings.
VPC Connector egress settings must be specified in the allowed list using the values of the
VpcConnectorEgressSettings 
 
enum. The default value of the enum, VPC_CONNECTOR_EGRESS_SETTINGS_UNSPECIFIED 
, is not supported, and including it in a policy results in an error.For Cloud Functions (2nd gen) use the constraint
constraints/run.allowedVPCEgress 
.constraints/cloudfunctions.allowedVpcConnectorEgressSettings 
"is:" 
By default, specifying a VPC Connector is not required to deploy a Cloud Function.
constraints/cloudfunctions.requireVPCConnector 
"is:" 
1stGen 
, 2ndGen 
.constraints/cloudfunctions.restrictAllowedGenerations 
"is:" 
SOFTWARE 
, HSM 
, EXTERNAL 
, EXTERNAL_VPC 
. Deny policies are disallowed.constraints/cloudkms.allowedProtectionLevels 
"is:" 
constraints/cloudkms.disableBeforeDestroy 
"is:" 
Only one allowed value can be specified in the format
in:1d 
, in:7d 
, in:15d 
, in:30d 
, in:60d 
, in:90d 
, or in:120d 
. For example, if constraints/cloudkms.minimumDestroyScheduledDuration is set to in:15d 
, then users can create keys with destroy scheduled duration set to any value higher than 15 days, such as 16 days or 31 days. However, users cannot create keys with destroy scheduled duration lower than 15 days, such as 14 days. For each resource in the hierarchy, the minimum destroy scheduled duration may inherit, replace, or be merged with the parent's policy. When the resource's policy is merged with the parent's policy, the effective value of minimum destroy scheduled duration at the resource is the lowest between that value specified at the resource's policy and the parent's effective minimum destroy scheduled duration. For example, if an organization has minimum destroy scheduled duration of 7 days and in a child project the policy is set to 'Merge with parent' with a value of in:15d 
, then the effective minimum destroy scheduled duration at the project is 7 days.constraints/cloudkms.minimumDestroyScheduledDuration 
"is:" 
, "in:" 
By default, all job targets are allowed.
Valid values are:
APPENGINE 
, HTTP 
, PUBSUB 
.constraints/cloudscheduler.allowedTargetTypes 
"is:" 
By default, Authorized Networks can be added to Cloud SQL instances.
constraints/sql.restrictAuthorizedNetworks 
"is:" 
constraints/sql.restrictNoncompliantDiagnosticDataAccess 
"is:" 
constraints/sql.restrictNoncompliantResourceCreation 
"is:" 
By default, Public IP access is allowed to Cloud SQL instances.
constraints/sql.restrictPublicIp 
"is:" 
Important: For the most optimal experience, we strongly recommend that you use the marketplace user access restrictions feature, as described in https://cloud.google.com/marketplace/docs/governance/strict-user-access to prevent unauthorized use of the marketplace in your organization, instead of doing so via this organization policy.
constraints/commerceorggovernance.disablePublicMarketplace 
"is:" 
-  PRIVATE_MARKETPLACE
-  IAAS_PROCUREMENT
IAAS_PROCUREMENT 
is in the allowed value list, the IaaS procurement governance experience is enabled for all products. By default, the IaaS procurement governance experience is turned off. The IAAS_PROCUREMENT 
policy works independently from the Request Procurement governance capability, which is specifically for SaaS products listed on Cloud Marketplace.Note: The PRIVATE_MARKETPLACE value is no longer supported and using it has no effect. To turn on Google Private Marketplace, you must follow the instructions at https://cloud.google.com/marketplace/docs/governance/enable-private-marketplace.
constraints/commerceorggovernance.marketplaceServices 
"is:" 
By default, VLAN Attachments are allowed to use any encryption settings.
Set IPSEC as the allowed value to enforce creating encrypted VLAN attachments only.
constraints/compute.allowedVlanAttachmentEncryption 
"is:" 
By default, anyone with appropriate Cloud IAM permissions can create or update Google Compute Engine resources with IPv6 usage in any projects, folders, and organizations.
If set, this constraint will have higher priority than other IPv6 org constraints including
disableVpcInternalIpv6 
, disableVpcExternalIpv6 
, and disableHybridCloudIpv6 
.constraints/compute.disableAllIpv6 
"is:" 
By default, you can create or update Cloud Armor security policies in any organization, folder, or project.
constraints/compute.disableGlobalCloudArmorPolicy 
"is:" 
constraints/compute.disableGlobalLoadBalancing 
"is:" 
By default, you can create global self-managed SSL Certificates in any organization, folder, or project.
constraints/compute.disableGlobalSelfManagedSslCertificate 
"is:" 
constraints/compute.disableGlobalSerialPortAccess 
"is:" 
By default, the Compute Engine API can be used to access Compute Engine VM guest attributes.
constraints/compute.disableGuestAttributesAccess 
"is:" 
stack_type 
of IPV4_IPV6 
or IPV6_ONLY 
, or a gatewayIpVersion 
of IPv6 
.If enforced on a Cloud Router resource, the ability to create IPv6 Border Gateway Protocol (BGP) sessions and the ability to enable IPv6 route exchange over IPv4 BGP sessions are disabled.
By default, anyone with appropriate Cloud IAM permissions can create or update hybrid cloud resources with
stack_type 
of IPV4_IPV6 
in projects, folders, and organizations.constraints/compute.disableHybridCloudIpv6 
"is:" 
constraints/compute.disableInstanceDataAccessApis 
"is:" 
type 
of INTERNET_FQDN_PORT 
and INTERNET_IP_PORT 
.By default, any user with appropriate IAM permissions can create Internet NEGs in any project.
constraints/compute.disableInternetNetworkEndpointGroup 
"is:" 
True 
.By default, hardware-accelerated nested virtualization is allowed for all Compute Engine VMs running on Intel Haswell or newer CPU platforms.
constraints/compute.disableNestedVirtualization 
"is:" 
constraints/compute.disableNonFIPSMachineTypes 
"is:" 
By default, forwarding rules can be created for any Private Service Connect endpoint type.
The allowed/denied list of Private Service Connect endpoints must come from the list below:
-  GOOGLE_APIS
-  SERVICE_PRODUCERS
GOOGLE_APIS 
in the allowed/denied list will restrict the creation of Private Service Connect forwarding rules for accessing Google APIs.  Using SERVICE_PRODUCERS 
in the allowed/denied list will restrict the creation of Private Service Connect forwarding rules for accessing services in another VPC network.constraints/compute.disablePrivateServiceConnectCreationForConsumers 
"is:" 
By default, customers can enable serial port access for Compute Engine VMs on a per-VM or per-project basis using metadata attributes. Enforcing this constraint will disable serial port access for Compute Engine VMs, regardless of the metadata attributes.
constraints/compute.disableSerialPortAccess 
"is:" 
By default, serial port logging for Compute Engine VMs is disabled, and can be selectively enabled on a per-VM or per-project basis using metadata attributes . When enforced, this constraint disables serial port logging for new Compute Engine VMs whenever a new VM is created, as well as preventing users from changing the metadata attribute of any VMs (old or new) to
True 
. Disabling serial port logging can cause certain services that rely on it, such as Google Kubernetes Engine clusters, to not function correctly. Before you enforce this constraint, verify that the products in your project do not rely on serial port logging.constraints/compute.disableSerialPortLogging 
"is:" 
constraints/compute.disableSshInBrowser 
"is:" 
stack_type 
of IPV4_IPV6 
and ipv6_access_type 
of EXTERNAL 
.By default, anyone with appropriate Cloud IAM permissions can create or update subnetworks with
stack_type 
of IPV4_IPV6 
in any projects, folders, and organizations.constraints/compute.disableVpcExternalIpv6 
"is:" 
stack_type 
of IPV4_IPV6 
and ipv6_access_type 
of INTERNAL 
.By default, anyone with appropriate Cloud IAM permissions can create or update subnetworks with
stack_type 
of IPV4_IPV6 
in any projects, folders, and organizations.constraints/compute.disableVpcInternalIpv6 
"is:" 
constraints/compute.enableComplianceMemoryProtection 
"is:" 
regions.list 
, regions.get 
, and projects.get 
methods. That means that if the quota information is unavailable, these methods fail when the constraint is enforced. By default, these methods succeed on server-side failures and display a warning message when the quota information is unavailable.constraints/compute.requireBasicQuotaInResponse 
"is:" 
By default, VM Manager is disabled on Compute Engine projects.
constraints/compute.requireOsConfig 
"is:" 
By default, the OS Login feature is disabled on Compute Engine projects.
constraints/compute.requireOsLogin 
"is:" 
By default, Shielded VM features do not need to be enabled in order to create Compute Engine VM instances. Shielded VM features add verifiable integrity and exfiltration resistance to your VMs.
constraints/compute.requireShieldedVm 
"is:" 
-  under:organizations/ ORGANIZATION_ID
-  under:folders/ FOLDER_ID
-  under:projects/ PROJECT_ID
-  projects/ PROJECT_ID /global/targetHttpsProxies/ TARGET_PROXY_NAME
-  projects/ PROJECT_ID /regions/ REGION_NAME /targetHttpsProxies/ TARGET_PROXY_NAME
-  projects/ PROJECT_ID /global/targetSslProxies/ TARGET_PROXY_NAME
constraints/compute.requireSslPolicy 
"is:" 
, "under:" 
By default VPC Flow logs may be configured with any settings in each subnet.
This constraint enforces enabling flow logs for all subnetworks in scope with a required minimum sampling rate.
Specify one or more of the following valid values:
-  ESSENTIAL(allows values >= 0.1 and < 0.5)
-  LIGHT(allows values >= 0.5 and < 1.0)
-  COMPREHENSIVE(allows values == 1.0)
constraints/compute.requireVpcFlowLogs 
"is:" 
under:organizations/ ORGANIZATION_ID 
 
, under:folders/ FOLDER_ID 
 
, under:projects/ PROJECT_ID 
 
,  or projects/ PROJECT_ID 
/regions/ REGION_NAME 
/subnetworks/ SUBNETWORK_NAME 
 
.constraints/compute.restrictCloudNATUsage 
"is:" 
, "under:" 
-  under:organizations/ ORGANIZATION_ID
-  under:folders/ FOLDER_ID
-  under:projects/ PROJECT_ID
-  projects/ PROJECT_ID /regions/ REGION /backendBuckets/ BACKEND_BUCKET_NAME
-  projects/ PROJECT_ID /global/backendBuckets/ BACKEND_BUCKET_NAME
-  projects/ PROJECT_ID /regions/ REGION /backendServices/ BACKEND_SERVICE_NAME
-  projects/ PROJECT_ID /global/backendServices/ BACKEND_SERVICE_NAME
constraints/compute.restrictCrossProjectServices 
"is:" 
, "under:" 
under:organizations/ ORGANIZATION_ID 
 
, under:folders/ FOLDER_ID 
 
, under:projects/ PROJECT_ID 
 
, or projects/ PROJECT_ID 
/global/networks/ NETWORK_NAME 
 
.constraints/compute.restrictDedicatedInterconnectUsage 
"is:" 
, "under:" 
The list of allowed or denied values must be identified as the string name of a load balancer, and can only include values from the list below:
- INTERNAL_TCP_UDP
- INTERNAL_HTTP_HTTPS
- GLOBAL_INTERNAL_MANAGED_HTTP_HTTPS
- GLOBAL_INTERNAL_MANAGED_TCP_PROXY
- REGIONAL_INTERNAL_MANAGED_TCP_PROXY
- EXTERNAL_NETWORK_TCP_UDP
- EXTERNAL_TCP_PROXY
- EXTERNAL_SSL_PROXY
- EXTERNAL_HTTP_HTTPS
- EXTERNAL_MANAGED_HTTP_HTTPS
- GLOBAL_EXTERNAL_MANAGED_HTTP_HTTPS
- GLOBAL_EXTERNAL_MANAGED_TCP_PROXY
- GLOBAL_EXTERNAL_MANAGED_SSL_PROXY
To include all internal or all external load balancer types, use the in: prefix followed by INTERNAL or EXTERNAL. For example, allowing in:INTERNAL will allow all load balancer types from the above list that include INTERNAL. For more information about restricting load balancer types, see https://cloud.google.com/load-balancing/docs/org-policy-constraints.
constraints/compute.restrictLoadBalancerCreationForTypes 
"is:" 
, "in:" 
constraints/compute.restrictNonConfidentialComputing 
"is:" 
under:organizations/ ORGANIZATION_ID 
 
, under:folders/ FOLDER_ID 
 
, under:projects/ PROJECT_ID 
 
, or projects/ PROJECT_ID 
/global/networks/ NETWORK_NAME 
 
.constraints/compute.restrictPartnerInterconnectUsage 
"is:" 
, "under:" 
under:organizations/ ORGANIZATION_ID 
 
, under:folders/ FOLDER_ID 
 
, or under:projects/ PROJECT_ID 
 
. By default, all connections are allowed.constraints/compute.restrictPrivateServiceConnectConsumer 
"is:" 
, "under:" 
under:organizations/ ORGANIZATION_ID 
 
, under:folders/ FOLDER_ID 
 
, or under:projects/ PROJECT_ID 
 
. By default, all connections are allowed.constraints/compute.restrictPrivateServiceConnectProducer 
"is:" 
, "under:" 
The list of allowed or denied values can only include values from the list below:
- INTERNAL
- EXTERNAL
constraints/compute.restrictProtocolForwardingCreationForTypes 
"is:" 
under:organizations/ ORGANIZATION_ID 
 
, under:folders/ FOLDER_ID 
 
, under:projects/ PROJECT_ID 
 
, projects/ PROJECT_ID 
/regions/ REGION 
/backendServices/ BACKEND_SERVICE_NAME 
 
or projects/ PROJECT_ID 
/global/backendServices/ BACKEND_SERVICE_NAME 
 
. This constraint is not retroactive.constraints/compute.restrictSharedVpcBackendServices 
"is:" 
, "under:" 
under:organizations/ ORGANIZATION_ID 
 
, under:folders/ FOLDER_ID 
 
, or projects/ PROJECT_ID 
 
.constraints/compute.restrictSharedVpcHostProjects 
"is:" 
, "under:" 
under:organizations/ ORGANIZATION_ID 
 
, under:folders/ FOLDER_ID 
 
, under:projects/ PROJECT_ID 
 
, or projects/ PROJECT_ID 
/regions/ REGION 
/subnetworks/ SUBNETWORK-NAME 
 
.constraints/compute.restrictSharedVpcSubnetworks 
"is:" 
, "under:" 
under:organizations/ ORGANIZATION_ID 
 
, under:folders/ FOLDER_ID 
 
, under:projects/ PROJECT_ID 
 
,  or projects/ PROJECT_ID 
/global/networks/ NETWORK_NAME 
 
.constraints/compute.restrictVpcPeering 
"is:" 
, "under:" 
 IP_V4_ADDRESS 
 
or  IP_V6_ADDRESS 
 
.constraints/compute.restrictVpnPeerIPs 
"is:" 
False 
and newly created projects will be using the default DNS type 
.constraints/compute.setNewProjectDefaultToZonalDNSOnly 
"is:" 
projects/PROJECT_NUMBER 
or under:projects/PROJECT_NUMBER 
.constraints/compute.sharedReservationsOwnerProjects 
"is:" 
, "under:" 
constraints/compute.skipDefaultNetworkCreation 
"is:" 
Projects, folders, and organizations specified in allowed or denied lists must be in the form:
under:projects/ PROJECT_ID 
 
, under:folders/ FOLDER_ID 
 
, under:organizations/ ORGANIZATION_ID 
 
.constraints/compute.storageResourceUseRestrictions 
"is:" 
, "under:" 
By default, instances can be created from images in any project that shares images publicly or explicitly with the user.
The allowed/denied list of publisher projects must be strings in the form:
projects/ PROJECT_ID 
 
. If this constraint is active, only images from trusted projects 
will be allowed as the source for boot disks for new instances.constraints/compute.trustedImageProjects 
"is:" 
under:organizations/ ORGANIZATION_ID 
 
, under:folders/ FOLDER_ID 
 
, under:projects/ PROJECT_ID 
 
, or projects/ PROJECT_ID 
/zones/ ZONE 
/instances/ INSTANCE-NAME 
 
. This constraint is not retroactive.constraints/compute.vmCanIpForward 
"is:" 
, "under:" 
By default, all VM instances are allowed to use external IPv4 and IPv6 addresses.
The allowed/denied list of VM instances must be identified by the VM instance name, in the form:
projects/ PROJECT_ID 
/zones/ ZONE 
/instances/ INSTANCE 
 
constraints/compute.vmExternalIpAccess 
"is:" 
By default, enabling IAP on global resources is allowed.
constraints/iap.requireGlobalIapWebDisabled 
"is:" 
constraints/container.restrictNoncompliantDiagnosticDataAccess 
"is:" 
Deny all 
. This constraint is retroactive, and blocks communication for existing repositories that violate it. Entries should be links to trusted remotes, in the same format as provided in Dataform.By default, repositories in Dataform projects can communicate with any remote.
constraints/dataform.restrictGitRemotes 
"is:" 
constraints/datastream.disablePublicConnectivity 
"is:" 
By default, email addresses with any domain can be added to Essential Contacts.
The allowed/denied list must specify one or more domains of the form
@example.com 
. If this constraint is active and configured with allowed values, only email addresses with a suffix matching one of the entries from the list of allowed domains can be added in Essential Contacts.This constraint has no effect on updating or removing existing contacts.
constraints/essentialcontacts.allowedContactDomains 
"is:" 
notification_category_subscriptions 
field that contains either the SECURITY 
or ALL 
category, if the contact also has a project resource as a parent.constraints/essentialcontacts.disableProjectSecurityContacts 
"is:" 
By default, Firestore imports and exports may use the App Engine service account.
Firestore will stop using the App Engine service account for imports and exports in the future and all accounts will need to migrate to the Firestore Service Agent, after which time this constraint will no longer be necessary.
constraints/firestore.requireP4SAforImportExport 
"is:" 
Audit logs aren't affected by this constraint.
Cloud Logs generated for the Cloud Healthcare API before the constraint is enforced are not deleted and can still be accessed.
constraints/gcp.disableCloudLogging 
"is:" 
The allowed/denied list of service accounts must specify one or more service account email addresses.
constraints/iam.allowServiceAccountCredentialLifetimeExtension 
"is:" 
By default, all user identities are allowed to be added to IAM policies. Only allowed values can be defined in this constraint, denied values are not supported.
All domains associated with a Google Workspace account or the principal set listed in the
allowed_values 
will be allowed by the organization policy. All other domains will be blocked by the organization policy.You do not need to add the google.com customer ID to this list in order to interoperate with Google services. Adding google.com allows sharing with Google employees and non-production systems, and should only be used for sharing data with Google employees.
constraints/iam.allowedPolicyMemberDomains 
"is:" 
constraints/iam.disableAuditLoggingExemption 
"is:" 
constraints/iam.disableCrossProjectServiceAccountUsage 
"is:" 
By default, service accounts can be created by users based on their Cloud IAM roles and permissions.
constraints/iam.disableServiceAccountCreation 
"is:" 
By default, service account external keys can be created by users based on their Cloud IAM roles and permissions.
constraints/iam.disableServiceAccountKeyCreation 
"is:" 
By default, users can upload public keys to service accounts based on their Cloud IAM roles and permissions.
constraints/iam.disableServiceAccountKeyUpload 
"is:" 
constraints/iam.disableWorkloadIdentityClusterCreation 
"is:" 
The allowed duration is specified in hours, and must come from the list below. Only one allowed value can be specified, and denied values are not supported. Specifying a duration not in this list will result in an error.
-  1h
-  8h
-  24h
-  168h
-  336h
-  720h
-  1440h
-  2160h
inheritFromParent=false 
in the policy file if using the gcloud CLI. This constraint can't be merged with a parent policy. Enforcement of the constraint is not retroactive and will not change pre-existing keys.constraints/iam.serviceAccountKeyExpiryHours 
"is:" 
DISABLE_KEY 
.The allowed values are
DISABLE_KEY 
and WAIT_FOR_ABUSE 
. Values not explicitly part of this list cannot be used. Only one allowed value can be specified, and denied values are not supported.Allowing the
DISABLE_KEY 
value automatically disables any publicly exposed service account key, and creates an entry in the audit log.Allowing the
WAIT_FOR_ABUSE 
value opts out of this protection, and does not disable exposed service account keys automatically. However, Google Cloud may disable exposed service account keys if they are used in ways that adversely affect the platform, but makes no promise to do so.To enforce this constraint, set it to replace the parent policy in the Google Cloud Console, or set
inheritFromParent=false 
in the policy file if using the gcloud CLI. This constraint can't be merged with a parent policy.constraints/iam.serviceAccountKeyExposureResponse 
"is:" 
constraints/iam.workloadIdentityPoolAwsAccounts 
"is:" 
constraints/iam.workloadIdentityPoolProviders 
"is:" 
constraints/meshconfig.allowedVpcscModes 
"is:" 
constraints/osconfig.restrictInlineScriptAndOutputFileUsage 
"is:" 
constraints/pubsub.enforceInTransitRegions 
"is:" 
By default, any user with the permission to update liens can remove a Shared VPC host project lien. Enforcing this constraint requires that permission be granted at the organization level.
constraints/compute.restrictXpnProjectLienRemoval 
"is:" 
constraints/iam.restrictCrossProjectServiceAccountLienRemoval 
"is:" 
under:organizations/ ORGANIZATION_ID 
 
.constraints/resourcemanager.accessBoundaries 
"is:" 
, "under:" 
-  SHARED_VPC
This constraint provides an additional control on top of constraints/resourcemanager.allowedExportDestinations. This list_constraint is empty by default and will not block cross organization moves unless a supported service is enabled on the resource to be exported. This constraint allows more fine-grained control over resources using features that require more caution when being moved to another organization. By default, a resource with a supported service enabled cannot be moved across organizations.
constraints/resourcemanager.allowEnabledServicesForExport 
"is:" 
under:organizations/ ORGANIZATION_ID 
 
.constraints/resourcemanager.allowedExportDestinations 
"is:" 
, "under:" 
under:organizations/ ORGANIZATION_ID 
 
.constraints/resourcemanager.allowedImportSources 
"is:" 
, "under:" 
default 
. To allow/disallow one or more custom platform policies, the resource ID of each such policy must be added separately.constraints/run.allowedBinaryAuthorizationPolicies 
"is:" 
By default, Cloud Run services can use any ingress settings.
The allowed list must contain supported ingress settings values, which are
all 
, internal 
, and internal-and-cloud-load-balancing 
.constraints/run.allowedIngress 
"is:" 
By default, Cloud Run resources can set VPC egress settings to any supported value.
The allowed list must contain supported VPC egress settings values, which are
private-ranges-only 
and all-traffic 
.For existing Cloud Run services, all new revisions must comply with this constraint. Existing services with revisions serving traffic that violate this constraint can continue to migrate traffic to revisions that violate this constraint. Once all traffic for a service is served by revisions compliant with this constraint, all subsequent traffic migrations must only migrate traffic to revisions that comply with this constraint.
constraints/run.allowedVPCEgress 
"is:" 
By default, these service accounts automatically receive the Editor role when they are created. To learn about default service accounts, see https://cloud.google.com/iam/help/service-accounts/default.
To learn which roles to grant instead of the Editor role, see https://cloud.google.com/iam/help/service-accounts/troubleshoot-roles-default.
constraints/iam.automaticIamGrantsForDefaultServiceAccounts 
"is:" 
constraints/spanner.assuredWorkloadsAdvancedServiceControls 
"is:" 
constraints/spanner.disableMultiRegionInstanceIfNoLocationSelected 
"is:" 
constraints/gcp.detailedAuditLoggingMode 
"is:" 
allUsers 
and allAuthenticatedUsers 
. Enforce this policy on the entire organization (recommended), specific projects, or specific folders to ensure no data is publicly exposed.This policy overrides existing public permissions. Public access will be revoked for existing buckets and objects after this policy is enabled. For more details on the effects of changing enforcement of this constraint on resources, please see: https://cloud.google.com/storage/docs/public-access-prevention.
constraints/storage.publicAccessPrevention 
"is:" 
USER_ACCOUNT_HMAC_SIGNED_REQUESTS 
, SERVICE_ACCOUNT_HMAC_SIGNED_REQUESTS 
, and RSA_SIGNED_REQUESTS 
. Use in:ALL_HMAC_SIGNED_REQUESTS 
to include user account and service account HMAC signed requests. Use in:ALL_SIGNED_REQUESTS 
to include HMAC and RSA signed requests.constraints/storage.restrictAuthTypes 
"is:" 
, "in:" 
By default, if no organization policy is specified, a Cloud Storage bucket can have a retention policy of any duration.
The list of allowed durations must be specified as a positive integer value greater than zero, representing the retention policy in seconds.
Any insert, update, or patch operation on a bucket in the organization resource must have a retention policy duration that matches the constraint.
Enforcement of this constraint is not retroactive. When a new organization policy is enforced, the retention policy of existing buckets remains unchanged and valid.
constraints/storage.retentionPolicySeconds 
"is:" 
constraints/storage.secureHttpTransport 
"is:" 
constraints/storage.softDeletePolicySeconds 
"is:" 
True 
. Any new bucket in the Organization resource must have uniform bucket-level access enabled, and no existing buckets in the organization resource can disable uniform bucket-level access.Enforcement of this constraint is not retroactive: existing buckets with uniform bucket-level access disabled continue to have it disabled. The default value for this constraint is
False 
.Uniform bucket-level access disables the evaluation of ACLs assigned to Cloud Storage objects in the bucket. Consequently, only IAM policies grant access to objects in these buckets.
constraints/storage.uniformBucketLevelAccess 
"is:" 
How-to guides
For more information about how to use individual constraints:
| Constraint | How-to guide | 
|---|---|
| constraints/cloudbuild.allowedIntegrations | Gate builds on organization policy | 
| constraints/cloudfunctions.allowedIngressSettings | Set up organization policies | 
| constraints/cloudfunctions.allowedVpcConnectorEgressSettings | Set up organization policies | 
| constraints/cloudfunctions.requireVPCConnector | Set up organization policies | 
| constraints/gcp.restrictNonCmekServices | CMEK organization policies | 
| constraints/gcp.restrictCmekCryptoKeyProjects | CMEK organization policies | 
| constraints/gcp.restrictEndpointUsage | Restricting endpoint usage | 
| constraints/gcp.restrictTLSVersion | Restrict TLS versions | 
| constraints/compute.requireOsConfig | Enable OS Config organization policy | 
| constraints/compute.restrictPrivateServiceConnectConsumerconstraints/compute.restrictPrivateServiceConnectProducer | Manage security for Private Service Connect consumers | 
| constraints/compute.restrictCloudNATUsage | Organization policy constraints | 
| constraints/compute.restrictLoadBalancerCreationForTypes | Organization policy constraints for Cloud Load Balancing | 
| constraints/compute.restrictProtocolForwardingCreationForTypes | Protocol forwarding overview | 
| constraints/compute.restrictDedicatedInterconnectUsageconstraints/compute.restrictPartnerInterconnectUsage | Restrict Cloud Interconnect usage | 
| constraints/compute.restrictVpnPeerIPs | Restricting Peer IP addresses through a Cloud VPN tunnel | 
| constraints/compute.trustedImageProjects | Set image access constraints | 
| constraints/compute.vmExternalIpAccess | Restrict external IP access to specific instances | 
| constraints/compute.requireVpcFlowLogs | Configure organization policy constraints for VPC Flow Logs | 
| constraints/dataform.restrictGitRemotes | Restrict remote repositories | 
| constraints/gcp.restrictServiceUsage | Restricting resource usage | 
| constraints/iam.allowedPolicyMemberDomains | Restricting identities by domain | 
| constraints/iam.allowServiceAccountCredentialLifetimeExtension | Extend lifetime of OAuth 2.0 access tokens | 
| constraints/iam.disableCrossProjectServiceAccountUsage | Configure for a resource in a different project | 
| constraints/iam.disableServiceAccountCreation | Disable service account creation | 
| constraints/iam.disableServiceAccountKeyCreation | Disable service account key creation | 
| constraints/iam.disableServiceAccountKeyUpload | Disable service account key upload | 
| constraints/iam.disableWorkloadIdentityClusterCreation | Disable workload identity cluster creation | 
| constraints/iam.managed.disableServiceAccountApiKeyCreation | Enable key binding to service accounts | 
| constraints/iam.restrictCrossProjectServiceAccountLienRemoval | Configure for a resource in a different project | 
| constraints/gcp.detailedAuditLoggingModeconstraints/storage.retentionPolicySecondsconstraints/storage.uniformBucketLevelAccessconstraints/storage.publicAccessPrevention | Organization policy constraints for Cloud Storage | 
| constraints/gcp.disableCloudLogging | Disable Cloud Logging for the Cloud Healthcare API | 
| constraints/gcp.resourceLocations | Restricting Resource Locations | 
| constraints/resourcemanager.accessBoundaries | Restricting project visibility for users | 
| constraints/run.allowedIngress | Restrict allowed ingress settings | 
| constraints/run.allowedVPCEgress | Restrict allowed VPC egress settings | 
| constraints/vertexai.allowedModels | Control access to Model Garden models | 
Learn more
To learn more about the core concepts of organization policy:
-  Read the overview of organization policy . 
-  Read about what constraints are . 
-  Read how to use constraints to create organization policies . 
-  Read about how hierarchical evaluation works. 

