diff --git a/.github/auto-label.json b/.github/auto-label.json index 3f5aea8..8174887 100644 --- a/.github/auto-label.json +++ b/.github/auto-label.json @@ -1,5 +1,5 @@ { - "rules": { - "automerge": "policies/org_policy.json" + "rules": { + "automerge": "policies/org_policy.json" } } \ No newline at end of file diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 0000000..5aed936 --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1 @@ +automerge-test: policies/org_policy_test.json \ No newline at end of file diff --git a/.github/workflows/auto_label.yml b/.github/workflows/auto_label.yml index fb55264..801ff22 100644 --- a/.github/workflows/auto_label.yml +++ b/.github/workflows/auto_label.yml @@ -1,21 +1,22 @@ -#################################################################### -## Add an 'automerge' label to the PR based on file touched ## -#################################################################### +# #################################################################### +# ## Add an 'automerge' label to the PR based on file touched ## +# #################################################################### -name: Auto-label +# name: Auto-label -on: - pull_request: - types: - - opened +# on: +# pull_request: +# types: +# - opened +# - synchronize -jobs: - pr-automation: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Auto label based on files touched. - uses: banyan/auto-label@1.2 - env: - GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} +# jobs: +# pr-automation: +# runs-on: ubuntu-latest +# steps: +# - name: Checkout +# uses: actions/checkout@v2 +# - name: Auto label based on files touched. +# uses: banyan/auto-label@1.2 +# env: +# GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml new file mode 100644 index 0000000..f66ae51 --- /dev/null +++ b/.github/workflows/labeler.yml @@ -0,0 +1,20 @@ +#################################################################### +## Add an 'automerge' label to the PR based on file touched ## +#################################################################### + +name: Labeler + +on: + pull_request: + types: + - opened + - synchronize + +jobs: + triage: + permissions: + contents: read + pull-requests: write + runs-on: ubuntu-latest + steps: + - uses: actions/labeler@v4 diff --git a/policies/org_policy_test.json b/policies/org_policy_test.json new file mode 100644 index 0000000..48f1d8b --- /dev/null +++ b/policies/org_policy_test.json @@ -0,0 +1,810 @@ +{ + "constraints": [ + { + "name": "constraints/ainotebooks.accessMode", + "displayName": "Define access mode for Vertex AI Workbench notebooks and instances", + "description": "This list constraint defines the modes of access allowed to Vertex AI Workbench notebooks and instances where enforced. The allow or deny list can specify multiple users with the service-account mode or single-user access with the single-user mode. The access mode to be allowed or denied must be listed explicitly.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/ainotebooks.disableFileDownloads", + "displayName": "Disable file downloads on new Vertex AI Workbench instances", + "description": "This boolean constraint, when enforced, prevents the creation of Vertex AI Workbench instances with the file download option enabled. By default, the file download option can be enabled on any Vertex AI Workbench instance.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/ainotebooks.disableRootAccess", + "displayName": "Disable root access on new Vertex AI Workbench user-managed notebooks and instances", + "description": "This boolean constraint, when enforced, prevents newly created Vertex AI Workbench user-managed notebooks and instances from enabling root access. By default, Vertex AI Workbench user-managed notebooks and instances can have root access enabled.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/ainotebooks.disableTerminal", + "displayName": "Disable terminal on new Vertex AI Workbench instances", + "description": "This boolean constraint, when enforced, prevents the creation of Vertex AI Workbench instances with the terminal enabled. By default, the terminal can be enabled on Vertex AI Workbench instances.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/ainotebooks.environmentOptions", + "displayName": "Restrict environment options on new Vertex AI Workbench notebooks and instances", + "description": "This list constraint defines the VM and container image options a user can select when creating new Vertex AI Workbench notebooks and instances where this constraint is enforced. The options to be allowed or denied must be listed explicitly.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.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/ainotebooks.requireAutoUpgradeSchedule", + "displayName": "Require automatic scheduled upgrades on new Vertex AI Workbench user-managed notebooks and instances", + "description": "This boolean constraint, when enforced, requires that newly created Vertex AI Workbench user-managed notebooks and instances have an automatic upgrade schedule set. The automatic upgrade schedule can be defined by using the `notebook-upgrade-schedule` metadata flag to specify a cron schedule for the automatic upgrades. For example: `--metadata=notebook-upgrade-schedule=\"00 19 * * MON\"`.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/ainotebooks.restrictVpcNetworks", + "displayName": "Restrict VPC networks on new Vertex AI Workbench instances", + "description": "This list constraint defines the VPC networks a user can select when creating new Vertex AI Workbench instances where this constraint is enforced. By default, a Vertex AI Workbench instance can be created with any VPC networks. The allowed or denied list of networks must be identified in the form: under:organizations/ORGANIZATION_ID, under:folders/FOLDER_ID, under:projects/PROJECT_ID, or projects/PROJECT_ID/global/networks/NETWORK_NAME.", + "constraintDefault": "ALLOW", + "listConstraint": { + "supportsUnder": true + } + }, + { + "name": "constraints/ainotebooks.restrictPublicIp", + "displayName": "Restrict public IP access on new Vertex AI Workbench notebooks and instances", + "description": "This boolean constraint, when enforced, restricts public IP access to newly created Vertex AI Workbench notebooks and instances. By default, public IPs can access Vertex AI Workbench notebooks and instances.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/appengine.disableCodeDownload", + "displayName": "Disable Source Code Download", + "description": "Disables code downloads of source code previously uploaded to App Engine.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/bigquery.disableBQOmniAWS", + "displayName": "Disable BigQuery Omni for Cloud AWS", + "description": "This boolean constraint, when set to True, will disable users from using BigQuery Omni to process data on Amazon Web Services where this constraint is enforced.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/bigquery.disableBQOmniAzure", + "displayName": "Disable BigQuery Omni for Cloud Azure", + "description": "This boolean constraint, when set to True, will disable users from using BigQuery Omni to process data on Microsoft Azure where this constraint is enforced.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/cloudbuild.allowedIntegrations", + "displayName": "Allowed Integrations (Cloud Build)", + "description": "This list constraint defines the allowed Cloud Build integrations for performing Builds through receiving webhooks from services outside Google Cloud. When this constraint is enforced, only webhooks for services whose host matches one of the allowed values will be processed. By default, Cloud Build processes all webhooks for projects that have at least one LIVE trigger.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/cloudbuild.allowedWorkerPools", + "displayName": "Allowed Worker Pools (Cloud Build)", + "description": "This list constraint defines the set of allowed Cloud Build Worker Pools for performing Builds using Cloud Build. When this constraint is enforced, builds will be required to build in a Worker Pool that matches one of the allowed values. 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]. ", + "constraintDefault": "ALLOW", + "listConstraint": { + "supportsUnder": true + } + }, + { + "name": "constraints/clouddeploy.disableServiceLabelGeneration", + "displayName": "Disable Cloud Deploy service labels", + "description": "This boolean constraint, when enforced, prevents Cloud Deploy from adding Cloud Deploy identifier labels to deployed objects.By default, labels identifying Cloud Deploy resources are added to deployed objects during release creation.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/cloudfunctions.restrictAllowedGenerations", + "displayName": "Allowed Cloud Functions Generations", + "description": "This list constraint defines the set of allowed Cloud Function Generations that can be used to create new Function resources. Valid values are: 1stGen, 2ndGen.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/cloudfunctions.allowedVpcConnectorEgressSettings", + "displayName": "Allowed VPC Connector egress settings (Cloud Functions)", + "description": "This list constraint defines the allowed VPC Connector egress settings for deployment of a Cloud Function. When this constraint is enforced, functions will be required to have VPC Connector egress settings that match one of the allowed values. 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.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/cloudfunctions.allowedIngressSettings", + "displayName": "Allowed ingress settings (Cloud Functions)", + "description": "This list constraint defines the allowed ingress settings for deployment of a Cloud Function. When this constraint is enforced, functions will be required to have ingress settings that match one of the allowed values. 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.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/cloudfunctions.requireVPCConnector", + "displayName": "Require VPC Connector (Cloud Functions)", + "description": "This boolean constraint enforces setting a VPC Connector when deploying a Cloud Function. When this constraint is enforced, functions will be required to specify a VPC Connector. By default, specifying a VPC Connector is not required to deploy a Cloud Function.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/cloudkms.allowedProtectionLevels", + "displayName": "Restrict which KMS CryptoKey types may be created.", + "description": "This list constraint defines the Cloud KMS key types which may be created under a given hierarchy node. When this constraint is enforced, only KMS key types specified within this org policy may be created within the associated hierarchy node. Configuring this org policy will also impact the protection level of import jobs and key versions. By default, all key types are allowed. Valid values are: SOFTWARE, HSM, EXTERNAL, EXTERNAL_VPC. Deny policies are disallowed.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/compute.allowedVlanAttachmentEncryption", + "displayName": "Allowed VLAN Attachment encryption settings", + "description": "This list constraint defines the allowed encryption settings for new VLAN Attachments. By default, VLAN Attachments are allowed to use any encryption settings. Set IPSEC as the allowed value to enforce creating encrypted VLAN attachments only.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/compute.disableNestedVirtualization", + "displayName": "Disable VM nested virtualization", + "description": "This boolean constraint disables hardware-accelerated nested virtualization for all Compute Engine VMs belonging to the organization, project, or folder where this constraint is set to True. By default, hardware-accelerated nested virtualization is allowed for all Compute Engine VMs running on Intel Haswell or newer CPU platforms. ", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.disableSerialPortLogging", + "displayName": "Disable VM serial port logging to Stackdriver", + "description": "This boolean constraint disables serial port logging to Stackdriver from Compute Engine VMs belonging to the organization, project, or folder where this constraint is being enforced. 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 GKE Autopilot, to not function correctly. Before you enforce this constraint, verify that the products in your project do not rely on serial port logging.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.disableSerialPortAccess", + "displayName": "Disable VM serial port access", + "description": "This boolean constraint disables serial port access to Compute Engine VMs belonging to the organization, project, or folder where this constraint is set to True. 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.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.disableGlobalSerialPortAccess", + "displayName": "Disable Global Access to VM Serial Ports", + "description": "This boolean constraint disables global serial port access to Compute Engine VMs belonging to the organization, project, or folder where the constraint is enforced. 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 global serial port access for Compute Engine VMs, regardless of the metadata attributes. Regional serial port access is not affected by this constraint. To disable all serial port access, use the compute.disableSerialPortAccess constraint instead.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.disableInstanceDataAccessApis", + "displayName": "Disable Instance Data Access APIs", + "description": "Do not configure or modify this policy. This constraint is automatically configured during Assured Workloads onboarding and is only intended for advanced regulatory control for Assured Workloads. This boolean constraint, when enforced, will disable the GetSerialPortOutput and GetScreenshot APIs that access VM's serial port output and capture screen shot from VM UIs.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.disableGuestAttributesAccess", + "displayName": "Disable Guest Attributes of Compute Engine metadata", + "description": "This boolean constraint disables Compute Engine API access to the Guest Attributes of Compute Engine VMs belonging to the organization, project, or folder where this constraint is set to True. By default, the Compute Engine API can be used to access Compute Engine VM guest attributes.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.restrictXpnProjectLienRemoval", + "displayName": "Restrict shared VPC project lien removal", + "description": "This boolean constraint restricts the set of users that can remove a Shared VPC host project lien without organization-level permission where this constraint is set to True. 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.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.requireOsLogin", + "displayName": "Require OS Login", + "description": "This boolean constraint, when set to true, enables OS Login on all newly created Projects. All VM instances created in new projects will have OS Login enabled. On new and existing projects, this constraint prevents metadata updates that disable OS Login at the project or instance level. By default, the OS Login feature is disabled on Compute Engine projects.GKE instances in private clusters running node pool versions 1.20.5-gke.2000 and later support OS Login. GKE instances in public clusters do not currently support OS Login. If this constraint is applied to a Project running public clusters, GKE instances running in that Project may not function properly.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.requireShieldedVm", + "displayName": "Shielded VMs", + "description": "This boolean constraint, when set to True, requires that all new Compute Engine VM instances use Shielded disk images with Secure Boot, vTPM, and Integrity Monitoring options enabled. Secure Boot can be disabled after creation, if desired. Existing running instances will continue to work as usual. 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.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.restrictNonConfidentialComputing", + "displayName": "Restrict Non-Confidential Computing", + "description": "The deny list of this list constraint defines the set of services that require all new resources to be created with Confidential Computing enabled. By default, new resources are not required to use Confidential Computing. While this list constraint is enforced, Confidential Computing cannot be disabled throughout the lifecycle of the resource. Existing resources will continue to work as usual. The denied list of services must be identified as the string name of an API, and can only include explicitly denied values from the list below. Explicitly allowing APIs is not currently supported. Explicitly denying APIs not in this list will result in an error. List of supported APIs: [compute.googleapis.com, container.googleapis.com]", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/compute.setNewProjectDefaultToZonalDNSOnly", + "displayName": "Sets the internal DNS setting for new projects to Zonal DNS Only", + "description": "When set to `True`, newly created projects will use Zonal DNS as default. By default, this constraint is set to `False` and newly created projects will be using the default DNS type.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.storageResourceUseRestrictions", + "displayName": "Compute Storage resource use restrictions (Compute Engine disks, images, and snapshots)", + "description": "This list constraint defines a set of projects that are allowed to use Compute Engine's storage resources. By default, anyone with appropriate Cloud IAM permissions can access Compute Engine resources. When using this constraint, users must have Cloud IAM permissions, and they must not be restricted by the constraint to access the resource. 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. ", + "constraintDefault": "ALLOW", + "listConstraint": { + "supportsUnder": true + } + }, + { + "name": "constraints/compute.trustedImageProjects", + "displayName": "Define trusted image projects", + "description": "This list constraint defines the set of projects that can be used for image storage and disk instantiation for Compute Engine. 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.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/compute.vmExternalIpAccess", + "displayName": "Define allowed external IPs for VM instances", + "description": "This list constraint defines the set of Compute Engine VM instances that are allowed to use external IP addresses. By default, all VM instances are allowed to use external IP 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 ", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/container.restrictNoncompliantDiagnosticDataAccess", + "displayName": "Disable diagnostic administrative access pathways in GKE.", + "description": "Do not configure or modify this policy. This constraint is automatically configured during Assured Workloads onboarding and is only intended for advanced regulatory control for Assured Workloads. When this boolean constraint is enforced, all access paths for diagnostics and other customer support use cases that do not comply with Assured Workloads requirements will be disabled.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/essentialcontacts.allowedContactDomains", + "displayName": "Domain restricted contacts", + "description": "This list constraint defines the set of domains that email addresses added to Essential Contacts can have. 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.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/essentialcontacts.disableProjectSecurityContacts", + "displayName": "Disable Project Security Contacts", + "description": "This boolean constraint, when enforced, allows organization policy administrators to ensure that only contacts assigned at the organization or folder level can receive security notifications. Specifically, enforcing this constraint blocks project owners and contact administrators from creating or updating an Essential Contact with a notification_category_subscriptions field that contains either the SECURITY or ALL category, if the contact also has a project resource as a parent.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/gcp.resourceLocations", + "displayName": "Google Cloud Platform - Resource Location Restriction", + "description": "This list constraint defines the set of locations where location-based Google Cloud resources can be created. By default, resources can be created in any location. 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. ", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/gcp.restrictCmekCryptoKeyProjects", + "displayName": "Restrict which projects may supply KMS CryptoKeys for CMEK", + "description": "This list constraint defines which projects may be used to supply Customer-Managed Encryption Keys (CMEK) when creating resources. Setting this constraint to 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, artifactregistry.googleapis.com, bigquery.googleapis.com, bigtable.googleapis.com, cloudfunctions.googleapis.com, composer.googleapis.com, compute.googleapis.com, container.googleapis.com, dataflow.googleapis.com, dataproc.googleapis.com, documentai.googleapis.com, logging.googleapis.com, pubsub.googleapis.com, run.googleapis.com, secretmanager.googleapis.com, spanner.googleapis.com, sqladmin.googleapis.com, storage.googleapis.com]. Enforcement of this constraint may grow over time to include additional services. Use caution when applying this constraint to projects, folders, or organizations where a mix of supported and unsupported services are used. Setting this constraint to 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.", + "constraintDefault": "ALLOW", + "listConstraint": { + "supportsUnder": true + } + }, + { + "name": "constraints/gcp.restrictNonCmekServices", + "displayName": "Restrict which services may create resources without CMEK", + "description": "This list constraint defines which services require Customer-Managed Encryption Keys (CMEK). Setting this constraint to 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, artifactregistry.googleapis.com, bigquery.googleapis.com, bigtable.googleapis.com, cloudfunctions.googleapis.com, composer.googleapis.com, compute.googleapis.com, container.googleapis.com, dataflow.googleapis.com, dataproc.googleapis.com, documentai.googleapis.com, logging.googleapis.com, pubsub.googleapis.com, run.googleapis.com, secretmanager.googleapis.com, spanner.googleapis.com, sqladmin.googleapis.com, storage.googleapis.com]. Setting this constraint to 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.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/iam.allowedPolicyMemberDomains", + "displayName": "Domain restricted sharing", + "description": "This list constraint defines one or more Cloud Identity or Google Workspace customer IDs whose principals can be added to IAM policies. 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. If this constraint is active, only principals that belong to the allowed customer IDs can be added to IAM policies.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/iam.disableAuditLoggingExemption", + "displayName": "Disable Audit Logging exemption", + "description": "This boolean constraint, when enforced, prevents you from exempting additional principals from audit logging. This constraint does not affect any audit-logging exemptions that existed before you enforced the constraint.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/iam.disableServiceAccountKeyUpload", + "displayName": "Disable Service Account Key Upload", + "description": "This boolean constraint disables the feature that allows uploading public keys to service accounts where this constraint is set to `True`. By default, users can upload public keys to service accounts based on their Cloud IAM roles and permissions.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/iam.disableServiceAccountCreation", + "displayName": "Disable service account creation", + "description": "This boolean constraint disables the creation of service accounts where this constraint is set to `True`. By default, service accounts can be created by users based on their Cloud IAM roles and permissions.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/iam.disableServiceAccountKeyCreation", + "displayName": "Disable service account key creation", + "description": "This boolean constraint disables the creation of service account external keys where this constraint is set to `True`. By default, service account external keys can be created by users based on their Cloud IAM roles and permissions.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/iam.restrictCrossProjectServiceAccountLienRemoval", + "displayName": "Restrict removal of Cross Project Service Account liens", + "description": "This boolean constraint, when ENFORCED, prevents users from removing a Cross Project Service Account lien without organization-level permission. By default, any user with the permission to update liens can remove a Cross Project Service Account lien. Enforcing this constraint requires that permission to be granted at the organization level.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/iam.automaticIamGrantsForDefaultServiceAccounts", + "displayName": "Disable Automatic IAM Grants for Default Service Accounts", + "description": "This boolean constraint, when enforced, prevents the default App Engine and Compute Engine service accounts that are created in your projects from being automatically granted any IAM role on the project when the accounts are created. By default, these service accounts automatically receive the Editor role when they are created.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/iam.allowServiceAccountCredentialLifetimeExtension", + "displayName": "Allow extending lifetime of OAuth 2.0 access tokens to up to 12 hours", + "description": "This list constraint defines the set of service accounts that can be granted OAuth 2.0 access tokens with a lifetime of up to 12 hours. By default, the maximum lifetime for these access tokens is 1 hour. The allowed/denied list of service accounts must specify one or more service account email addresses.", + "constraintDefault": "DENY", + "listConstraint": {} + }, + { + "name": "constraints/resourcemanager.allowedExportDestinations", + "displayName": "Allowed Destinations for Exporting Resources", + "description": "This list constraint defines the set of external Organizations to which resources can be moved, and denies all moves to all other Organizations. By default, resources cannot be moved between Organizations. If this constraint is applied to a resource, the resource can be moved only to Organizations that are explicitly allowed by this constraint. Moves within an Organization are not governed by this constraint. The move operation will still require the same IAM permissions as normal resource moves. Values specified in allow/deny lists must be in the form: under:organizations/ORGANIZATION_ID.", + "constraintDefault": "DENY", + "listConstraint": { + "supportsUnder": true + } + }, + { + "name": "constraints/resourcemanager.allowedImportSources", + "displayName": "Allowed Sources for Importing Resources", + "description": "This list constraint defines the set of external Organizations from which resources can be imported, and denies all moves from all other Organizations. By default, resources cannot be moved between Organizations. If this constraint is applied to a resource, imported resources directly under this resource must be explicitly allowed by this constraint. Moves within an Organization are not governed by this constraint. The move operation will still require the same IAM permissions as normal resource moves. Values specified in allow/deny lists must be in the form: under:organizations/ORGANIZATION_ID.", + "constraintDefault": "DENY", + "listConstraint": { + "supportsUnder": true + } + }, + { + "name": "constraints/resourcemanager.allowEnabledServicesForExport", + "displayName": "Require Enabled Services Allow List for Cross-Organization Move", + "description": "This list constraint acts as a check to verify that a project with a service enabled is eligible for cross-organization move. A resource with a supported service enabled must have this constraint enforced and that supported service included in the allowed values to be eligible for a cross-organization move. The current list of allowed values for supported services that can be used is: [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. ", + "constraintDefault": "DENY", + "listConstraint": {} + }, + { + "name": "constraints/resourcemanager.accessBoundaries", + "displayName": "Restrict resource query visibility", + "description": "This list constraint, when enforced on an organization resource, defines the set of Google Cloud resources that are returned in list and search methods for users in the domain of the organization where this constraint is enforced. This can be used to limit what resources are visible in various parts of the Cloud Console, such as the Resource Picker, Search, and Manage Resources page. Note that this Constraint is only ever evaluated at the Organization level. Values specified in allow/deny lists must be in the form: under:organizations/ORGANIZATION_ID.", + "constraintDefault": "ALLOW", + "listConstraint": { + "supportsUnder": true + } + }, + { + "name": "constraints/run.allowedIngress", + "displayName": "Allowed ingress settings (Cloud Run)", + "description": "This list constraint defines the allowed ingress settings for Cloud Run services. When this constraint is enforced, services will be required to have ingress settings that match one of the allowed values. Existing Cloud Run services with ingress settings that violate this constraint can continue to be updated until the service's ingress settings are changed to comply with this constraint. Once a service complies with this constraint the service can only use ingress settings allowed by this constraint. 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.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/run.allowedVPCEgress", + "displayName": "Allowed VPC egress settings (Cloud Run)", + "description": "This list constraint defines the allowed VPC egress settings for revisions of a Cloud Run service. When this constraint is enforced, a service's revisions are required to use a Serverless VPC Access connector and the revisions' VPC egress settings are required to match one of the allowed values. For existing services, all newly deployed 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. By default, Cloud Run revisions 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.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/run.allowedBinaryAuthorizationPolicies", + "displayName": "Allowed Binary Authorization Policies (Cloud Run)", + "description": "This list constraint defines the set of Binary Authorization policy names that are allowed to be specified on a Cloud Run resource. To allow/disallow a default policy, use the value `default`. To allow/disallow one or more custom platform policies, the resource ID of each such policy must be added separately.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/serviceuser.services", + "displayName": "Restrict allowed Google Cloud APIs and services", + "description": "This list constraint restricts the set of services and their APIs that can be enabled on this resource. By default, all services are allowed. 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. [ compute.googleapis.com , deploymentmanager.googleapis.com , dns.googleapis.com ]. 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.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/sql.restrictAuthorizedNetworks", + "displayName": "Restrict Authorized Networks on Cloud SQL instances", + "description": "This boolean constraint restricts adding Authorized Networks for unproxied database access to Cloud SQL instances where this constraint is set to True. This constraint is not retroactive, Cloud SQL instances with existing Authorized Networks will still work even after this constraint is enforced. By default, Authorized Networks can be added to Cloud SQL instances.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/sql.restrictPublicIp", + "displayName": "Restrict Public IP access on Cloud SQL instances", + "description": "This boolean constraint restricts configuring Public IP on Cloud SQL instances where this constraint is set to True. This constraint is not retroactive, Cloud SQL instances with existing Public IP access will still work even after this constraint is enforced. By default, Public IP access is allowed to Cloud SQL instances.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/sql.restrictNoncompliantResourceCreation", + "displayName": "Restrict non-compliant workloads for Cloud SQL instances.", + "description": "Do not configure or modify this policy. This constraint is automatically configured during Assured Workloads onboarding and is only intended for advanced regulatory control for Assured Workloads. When this boolean constraint is enforced, certain aspects of supportability will be impaired and provisioned resources will strictly follow advanced sovereignty requirements for Assured Workloads. This policy is retroactive in that it will apply to existing projects, but it will not affect resources that have already been provisioned; ie. modifications to the policy will only be reflected in resources created after the policy is modified.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/sql.restrictNoncompliantDiagnosticDataAccess", + "displayName": "Disable diagnostic and administrative access pathways in Cloud SQL to meet compliance requirements.", + "description": "Do not configure or modify this policy. This constraint is automatically configured during Assured Workloads onboarding and is only intended for advanced regulatory control for Assured Workloads. When this boolean constraint is enforced, certain aspects of supportability will be impaired and all access paths for diagnostics and other customer support use cases that do not meet advanced sovereignty requirements for Assured Workloads will be disabled.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/storage.uniformBucketLevelAccess", + "displayName": "Enforce uniform bucket-level access", + "description": "This boolean constraint requires buckets to use uniform bucket-level access where this constraint is set to 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.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/storage.retentionPolicySeconds", + "displayName": "Retention policy duration in seconds", + "description": "This list constraint defines the set of durations for retention policies that can be set on Cloud Storage buckets. 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.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/storage.restrictAuthTypes", + "displayName": "Cloud Storage - restrict authentication types", + "description": "The constraint defines the set of authentication types that would be restricted from accessing any storage resources under the organization in Cloud Storage. Supported values are USER_ACCOUNT_HMAC_SIGNED_REQUESTS and SERVICE_ACCOUNT_HMAC_SIGNED_REQUESTS. Use in:ALL_HMAC_SIGNED_REQUESTS to include both.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/compute.skipDefaultNetworkCreation", + "displayName": "Skip default network creation", + "description": "This boolean constraint skips the creation of the default network and related resources during Google Cloud Platform Project resource creation where this constraint is set to True. By default, a default network and supporting resources are automatically created when creating a Project resource.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.restrictVpcPeering", + "displayName": "Restrict VPC peering usage", + "description": "This list constraint defines the set of VPC networks that are allowed to be peered with the VPC networks belonging to this project, folder, or organization. By default, a Network Admin for one network can peer with any other network. The allowed/denied list of networks must be identified in the form: under:organizations/ORGANIZATION_ID, under:folders/FOLDER_ID, under:projects/PROJECT_ID, or projects/PROJECT_ID/global/networks/NETWORK_NAME.", + "constraintDefault": "ALLOW", + "listConstraint": { + "supportsUnder": true + } + }, + { + "name": "constraints/compute.restrictSharedVpcHostProjects", + "displayName": "Restrict Shared VPC Host Projects", + "description": "This list constraint defines the set of Shared VPC host projects that projects at or below this resource can attach to. By default, a project can attach to any host project in the same organization, thereby becoming a service project. Projects, folders, and organizations in allowed/denied lists affect all objects underneath them in the resource hierarchy, and must be specified in the form: under:organizations/ORGANIZATION_ID, under:folders/FOLDER_ID, or projects/PROJECT_ID.", + "constraintDefault": "ALLOW", + "listConstraint": { + "supportsUnder": true + } + }, + { + "name": "constraints/compute.restrictSharedVpcSubnetworks", + "displayName": "Restrict Shared VPC Subnetworks", + "description": "This list constraint defines the set of shared VPC subnetworks that eligible resources can use. This constraint does not apply to resources within the same project. By default, eligible resources can use any shared VPC subnetwork. The allowed/denied list of subnetworks must be specified in the form: under:organizations/ORGANIZATION_ID, under:folders/FOLDER_ID, under:projects/PROJECT_ID, or projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK-NAME.", + "constraintDefault": "ALLOW", + "listConstraint": { + "supportsUnder": true + } + }, + { + "name": "constraints/compute.restrictSharedVpcBackendServices", + "displayName": "Restrict Shared VPC Backend Services", + "description": "This list constraint defines the set of shared VPC Backend Services that eligible resources can use. This constraint does not apply to resources within the same project. By default, eligible resources can use any shared VPC Backend Services. The allowed/denied list of Backend Services must be specified in the form: 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.", + "constraintDefault": "ALLOW", + "listConstraint": { + "supportsUnder": true + } + }, + { + "name": "constraints/compute.restrictVpnPeerIPs", + "displayName": "Restrict VPN Peer IPs", + "description": "This list constraint defines the set of valid IP addresses that can be configured as VPN peer IPs. By default, any IP can be a VPN peer IP for a VPC network. The allowed/denied list of IP addresses must be specified as valid IP addresses in the form: IP_V4_ADDRESS or IP_V6_ADDRESS.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/compute.restrictLoadBalancerCreationForTypes", + "displayName": "Restrict Load Balancer Creation Based on Load Balancer Types", + "description": "This list constraint defines the set of load balancer types which can be created for an organization, folder, or project. Every load balancer type to be allowed or denied must be listed explicitly. By default, creation of all types of load balancers is allowed. 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, EXTERNAL_NETWORK_TCP_UDP, EXTERNAL_TCP_PROXY, EXTERNAL_SSL_PROXY, EXTERNAL_HTTP_HTTPS, EXTERNAL_MANAGED_HTTP_HTTPS, REGIONAL_INTERNAL_MANAGED_TCP_PROXY, REGIONAL_EXTERNAL_MANAGED_TCP_PROXY, GLOBAL_EXTERNAL_MANAGED_HTTP_HTTPS]. 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.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/compute.restrictProtocolForwardingCreationForTypes", + "displayName": "Restrict Protocol Forwarding Based on type of IP Address", + "description": "This list constraint defines the type of protocol forwarding rule objects with target instance that a user can create. When this constraint is enforced, new forwarding rule objects with target instance will be limited to internal and/or external IP addresses, based on the types specified. The types to be allowed or denied must be listed explicitly. By default, creation of both internal and external protocol forwarding rule objects with target instance are allowed. The list of allowed or denied values can only include values from the list below: [INTERNAL, EXTERNAL]. .", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/compute.vmCanIpForward", + "displayName": "Restrict VM IP Forwarding", + "description": "This list constraint defines the set of VM instances that can enable IP forwarding. By default, any VM can enable IP forwarding in any virtual network. VM instances must be specified in the form: 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.", + "constraintDefault": "ALLOW", + "listConstraint": { + "supportsUnder": true + } + }, + { + "name": "constraints/compute.restrictDedicatedInterconnectUsage", + "displayName": "Restrict Dedicated Interconnect usage", + "description": "This list constraint defines the set of Compute Engine networks that are allowed to use Dedicated Interconnect. By default, networks are allowed to use any type of Interconnect. The allowed/denied list of networks must be identified in the form: under:organizations/ORGANIZATION_ID, under:folders/FOLDER_ID, under:projects/PROJECT_ID, or projects/PROJECT_ID/global/networks/NETWORK_NAME.", + "constraintDefault": "ALLOW", + "listConstraint": { + "supportsUnder": true + } + }, + { + "name": "constraints/compute.restrictPartnerInterconnectUsage", + "displayName": "Restrict Partner Interconnect usage", + "description": "This list constraint defines the set of Compute Engine networks that are allowed to use Partner Interconnect. By default, networks are allowed to use any type of Interconnect. The allowed/denied list of networks must be identified in the form: under:organizations/ORGANIZATION_ID, under:folders/FOLDER_ID, under:projects/PROJECT_ID, or projects/PROJECT_ID/global/networks/NETWORK_NAME.", + "constraintDefault": "ALLOW", + "listConstraint": { + "supportsUnder": true + } + }, + { + "name": "constraints/compute.restrictCloudNATUsage", + "displayName": "Restrict Cloud NAT usage", + "description": "This list constraint defines the set of subnetworks that are allowed to use Cloud NAT. By default, all subnetworks are allowed to use Cloud NAT. The allowed/denied list of subnetworks must be identified in the form: under:organizations/ORGANIZATION_ID, under:folders/FOLDER_ID, under:projects/PROJECT_ID, or projects/PROJECT_ID/regions/REGION_NAME/subnetworks/SUBNETWORK_NAME.", + "constraintDefault": "ALLOW", + "listConstraint": { + "supportsUnder": true + } + }, + { + "name": "constraints/compute.sharedReservationsOwnerProjects", + "displayName": "Shared Reservations Owner Projects", + "description": "This list constraint defines the set of projects that are allowed to create and own shared reservations in the org. A shared reservation is similar to a local reservation, except that instead of being consumable by only owner projects, they can be consumed by other Compute Engine projects in the resource hierarchy. The list of projects allowed to access the shared reservation must be of the form: projects/PROJECT_NUMBER or under:projects/PROJECT_NUMBER.", + "constraintDefault": "DENY", + "listConstraint": { + "supportsUnder": true + } + }, + { + "name": "constraints/gcp.restrictServiceUsage", + "displayName": "Restrict Resource Service Usage", + "description": "This constraint defines the set of Google Cloud resource services that can be used within an organization, folder, or project, such as compute.googleapis.com and storage.googleapis.com. By default, all Google Cloud resource services are allowed. For more information, see https://cloud.google.com/resource-manager/help/organization-policy/restricting-resources. ", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/gcp.restrictTLSVersion", + "displayName": "Restrict TLS Versions", + "description": "This constraint defines the set of TLS versions that cannot be used on the organization, folder, or project where this constraint is enforced, or any of that resource's children in the resource hierarchy. 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 unencrpyted requests. For more information, see https://cloud.google.com/assured-workloads/docs/restrict-tls-versions.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/iam.disableWorkloadIdentityClusterCreation", + "displayName": "Disable Workload Identity Cluster Creation", + "description": "This boolean constraint, when set to `True`, requires that all new GKE clusters have Workload Identity disabled at creation time. Existing GKE clusters with Workload Identity already enabled will continue to work as usual. By default, Workload Identity can be enabled for any GKE cluster.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.disableInternetNetworkEndpointGroup", + "displayName": "Disable Internet Network Endpoint Groups", + "description": "This boolean constraint restricts whether a user can create Internet Network Endpoint Groups (NEG) with a type of INTERNET_FQDN_PORT and INTERNET_IP_PORT.By default, any user with appropriate IAM permissions can create Internet NEGs in any project.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/gcp.detailedAuditLoggingMode", + "displayName": "Google Cloud Platform - Detailed Audit Logging Mode", + "description": "When Detailed Audit Logging Mode is enforced, both the request and response are included in Cloud Audit Logs. Changes to this feature may take up to 10 minutes to reflect. This Org Policy is highly encouraged in coordination with Bucket Lock when seeking compliances such as SEC Rule 17a-4(f), CFTC Rule 1.31(c)-(d), and FINRA Rule 4511(c). This policy is currently only supported in Cloud Storage.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/gcp.disableCloudLogging", + "displayName": "Disable Cloud Logging for Cloud Healthcare API", + "description": "This boolean constraint, when enforced, disables Cloud Logging for the Cloud Healthcare API. 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. ", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/iam.workloadIdentityPoolProviders", + "displayName": "Allowed external Identity Providers for workloads in Cloud IAM", + "description": "Identity Providers that can be configured for workload authentication within Cloud IAM, specified by URI/URLs.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/iam.workloadIdentityPoolAwsAccounts", + "displayName": "Allowed AWS accounts that can be configured for workload identity federation in Cloud IAM", + "description": "List of AWS account IDs that can be configured for workload identity federation in Cloud IAM.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/compute.disablePrivateServiceConnectCreationForConsumers", + "displayName": "Disable Private Service Connect for Consumers", + "description": "This list constraint defines the set of Private Service Connect endpoint types for which users cannot create forwarding rules. When this constraint is enforced, users will be blocked from creating forwarding rules for the Private Service Connect endpoint type. This constraint is not retroactively enforced. 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]. Using 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.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/compute.restrictPrivateServiceConnectConsumer", + "displayName": "Restrict allowed Private Service Connect Consumers", + "description": "This list constraint defines the organizations, folders, and projects that can connect to service attachments within a producer's organization or project. The allowed or denied lists must be identified in the following form: under:organizations/ORGANIZATION_ID, under:folders/FOLDER_ID, or under:projects/PROJECT_ID. By default, all connections are allowed.", + "constraintDefault": "ALLOW", + "listConstraint": { + "supportsUnder": true + } + }, + { + "name": "constraints/compute.restrictPrivateServiceConnectProducer", + "displayName": "Restrict allowed Private Service Connect Producers", + "description": "This list constraint defines which service attachments Private Service Connect consumers can connect to. The constraint blocks the deployment of Private Service Connect endpoints or backends based on the organization, folder, or project resource of the service attachment that the endpoints or backends refer to. The allowed or denied lists must be identified in the following form: under:organizations/ORGANIZATION_ID, under:folders/FOLDER_ID, or under:projects/PROJECT_ID. By default, all connections are allowed.", + "constraintDefault": "ALLOW", + "listConstraint": { + "supportsUnder": true + } + }, + { + "name": "constraints/storage.publicAccessPrevention", + "displayName": "Enforce Public Access Prevention", + "description": "Secure your Cloud Storage data from public exposure by enforcing public access prevention. This governance policy prevents existing and future resources from being accessed via the public internet by disabling and blocking ACLs and IAM permissions that grant access to 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.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.disableVpcInternalIpv6", + "displayName": "Disable VPC Internal IPv6 usage", + "description": "This boolean constraint, when set to True, disables the creation of or update to subnetworks with a 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.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.disableHybridCloudIpv6", + "displayName": "Disable Hybrid Cloud IPv6 usage", + "description": "This boolean constraint, when set to True, disables the creation of or update to hybrid cloud resources including Cloud Router, Interconnect Attachments, and Cloud VPN with a stack_type of IPV4_IPV6. By default, anyone with appropriate Cloud IAM permissions can create or update hybrid cloud resources with stack_type of IPV4_IPV6 in any projects, folders and organizations.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.disableVpcExternalIpv6", + "displayName": "Disable VPC External IPv6 usage", + "description": "This boolean constraint, when set to True, disables the creation of or update to subnetworks with a 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.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.disableAllIpv6", + "displayName": "Disable All IPv6 usage", + "description": "This boolean constraint, when set to True, disables the creation of or update to any Google Compute Engine resources involved in IPv6 usage. 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.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/datastream.disablePublicConnectivity", + "displayName": "Datastream - Block Public Connectivity Methods", + "description": "By default, Datastream connection profiles can be created with public or private connectivity methods. If the boolean constraint for this organization policy is enforced, then only private connectivity methods (for example, VPC peering) can be used to create connection profiles.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/cloudscheduler.allowedTargetTypes", + "displayName": "Allowed target types for jobs", + "description": "This list constraint defines the list of target types, such as App Engine HTTP, HTTP, or Pubsub, allowed for Cloud Scheduler jobs. By default, all job targets are allowed. Valid values are: APPENGINE, HTTP, PUBSUB.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/compute.requireVpcFlowLogs", + "displayName": "Require predefined policies for VPC flow logs", + "description": "This list constraint defines the set of predefined policies that can be enforced for VPC Flow logs.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)]. ", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/firestore.requireP4SAforImportExport", + "displayName": "Require Firestore Service Agent for import/export", + "description": "This boolean constraint, when enforced, requires Firestore imports and exports to use the Firestore Service Agent. 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.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/meshconfig.allowedVpcscModes", + "displayName": "Allowed VPC Service Controls mode for Anthos Service Mesh Managed Control Planes", + "description": "This constraint determines what VPC Service Controls modes can be set when provisioning a new Anthos Service Mesh Managed Control Plane. Valid values are \"NONE\" and \"COMPATIBLE\".", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/compute.enableComplianceMemoryProtection", + "displayName": "Enable settings required for compliance memory protection workloads", + "description": "Do not configure or modify this policy. This constraint is automatically configured during Assured Workloads onboarding and is only intended for advanced regulatory control for Assured Workloads. This constraint controls settings required to eliminate potential access paths to VM core memory. When enforced it limits the ability to access VM core memory by disabling access pathways and restricts internal data collection when an error occurs.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.disableGlobalCloudArmorPolicy", + "displayName": "Disable Creation of Cloud Armor Security Policies", + "description": "This boolean constraint, when enforced, disables creating Cloud Armor security policies. By default, you can create Cloud Armor security policies in any organization, folder, or project.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.disableGlobalSelfManagedSslCertificate", + "displayName": "Disable Creation of global self-managed SSL Certificates", + "description": "This boolean constraint, when enforced, disables creation of global self-managed SSL Certificates. Creation of google-managed or regional self-managed certificates is not disabled by this constraint. By default, you can create global self-managed SSL Certificates in any organization, folder, or project.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/iap.requireGlobalIapWebDisabled", + "displayName": "Disable Enabling Identity-Aware Proxy (IAP) on global resources", + "description": "This boolean constraint, when enforced, disables turning on Identity-Aware Proxy on global resources. Enabling IAP on regional resources is not restricted by this constraint. By default, enabling IAP on global resources is allowed.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/iap.requireRegionalIapWebDisabled", + "displayName": "Disable Enabling Identity-Aware Proxy (IAP) on regional resources", + "description": "This boolean constraint, when enforced, disables turning on Identity-Aware Proxy on regional resources. Enabling IAP on global resources is not restricted by this constraint. By default, enabling IAP on regional resources is allowed.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.disableGlobalLoadBalancing", + "displayName": "Disable Global Load Balancing", + "description": "This boolean constraint disables creation of global load balancing products. When enforced, only regional load balancing products without global dependencies can be created. By default, creation of global load balancing is allowed.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.disableSshInBrowser", + "displayName": "Disable SSH in browser", + "description": "This boolean constraint disables the SSH-in-browser tool in the Cloud Console. When enforced, the SSH-in-browser button is disabled. By default, using the SSH-in-browser tool is allowed.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/iam.serviceAccountKeyExpiryHours", + "displayName": "Service account key expiry duration in hours", + "description": "This list constraint defines the maximum duration allowed for service account key expiry. By default, created keys never expire. 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]. To enforce this constraint, you must set it to replace the parent policy in the 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. Enforcement of the constraint is not retroactive and will not change pre-existing keys.", + "constraintDefault": "ALLOW", + "listConstraint": {} + }, + { + "name": "constraints/commerceorggovernance.marketplaceServices", + "displayName": "Restrict access on marketplace services", + "description": "This list constraint defines the set of services allowed for marketplace organizations, and can only include values from the list below: [PRIVATE_MARKETPLACE, IAAS_PROCUREMENT]. If PRIVATE_MARKETPLACE is in the allowed value list, the private marketplace is enabled. If the IAAS_PROCUREMENT is in the allowed value list, the IaaS procurement governance experience is enabled for all products. By default, the private marketplace is disabled and the IaaS procurement governance experience is disabled. Also, the IAAS_PROCUREMENT policy works independently from the Request Procurement governance capability, which is specifically for SaaS products listed on the marketplace.", + "constraintDefault": "DENY", + "listConstraint": {} + }, + { + "name": "constraints/commerceorggovernance.disablePublicMarketplace", + "displayName": "Disable Public Marketplace", + "description": "This boolean constraint, when enforced, disables public marketplace for all users under the org. By default, public marketplace access is enabled for the org.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/compute.disableNonFIPSMachineTypes", + "displayName": "Enforce FIPS-compliant machine types", + "description": "This boolean constraint when enforced, disables creation of VM instance types that do not comply with FIPS requirements.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/spanner.assuredWorkloadsAdvancedServiceControls", + "displayName": "Enable advanced service control for compliance workloads", + "description": "Do not configure or modify this policy. This constraint is automatically configured during Assured Workloads onboarding and is only intended for advanced regulatory control for Assured Workloads. When this boolean constraint is enforced, certain aspects of supportability will be impaired and provisioned resources will strictly follow advanced sovereignty requirements for Assured Workloads. This policy will apply to existing projects, but it will not affect resources that have already been provisioned; ie. modifications to the policy will only be reflected in resources created after the policy is modified.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + }, + { + "name": "constraints/spanner.disableMultiRegionInstanceIfNoLocationSelected", + "displayName": "Disable Cloud Spanner multi-region if no location selected", + "description": "Do not configure or modify this policy. This constraint is automatically configured during Assured Workloads onboarding and is only intended for advanced regulatory control for Assured Workloads. This boolean constraint, when enforced, prevents the creation of spanner instances using multi region instance config unless a location is selected. Cloud Spanner today does not yet support selecting location, so all multi regions will be disallowed. In the future, Spanner will provide the functionality for users to select a location for multi regions. Enforcement of this constraint is not retroactive. Spanner instances that have been already created will be unaffected.", + "constraintDefault": "ALLOW", + "booleanConstraint": {} + } + ] +} \ No newline at end of file