Stay organized with collections
Save and categorize content based on your preferences.
You can create a Service Directory zone that allows your
Google Cloud-based services to query your Service Directory namespace
using Cloud DNS.
These instructions require that you already have a Service Directory
namespace in place. If you do not, first create a namespace using the
procedure in Configuring
Service Directory.
Once you have attached a Service Directory zone to the namespace, all
services and endpoints within the namespace become available over DNS on the
private network. All service and endpoint updates are immediately reflected in
their DNS records. However, the service and the endpoint are not available
over DNS.
Permissions required for this task
To perform this task, you must have been granted the following permissions
or the following IAM roles.
Permissions
servicedirectory.namespaces.associatePrivateZone
Roles
servicedirectory.admin
servicedirectory.editor
Limitations
Service Directory integration with Cloud DNS has the following
limitations:
You can only associate a Service Directory zone with a namespace when you
create the zone.
A Service Directory zone must be in the same project as the Service Directory
namespace that it is associated with.
A Service Directory zone cannot also be a forwarding zone, a regular private
zone, or a public zone.
Create a Service Directory zone backed by a namespace
You can only associate a Service Directory zone with a namespace when you
create the zone. A Service Directory zone cannot also be a forwarding zone,
a regular private zone, or a public zone.
Console
Go to the Cloud DNS page in the Google Cloud console. Go to Cloud DNS
Click Create zone.
In the Zone type section, click Private.
Enter a name for the zone.
Enter a DNS name for the zone.
Under Options, select Use a service directory namespace.
Under Networks, select one or more networks that can use the
Service Directory zone.
Select the Region where the namespace that you want to link lives.
SD_ZONE: the name of the Service Directory zone that you
are creating.
DNS_NAME: the DNS name, such as
us-east1.example.com., for the new zone.
DESCRIPTION: a description of the zone, such as this zone
is backed by Service Directory.
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK:
the FQDN of the networks that can use the zone.
https://www.servicedirectory.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/registries/NAMESPACE_NAME:
the FQDN of the namespace that you are linking.
Delete the Service Directory zone
At any point, you can delete a Service Directory zone. This deletion
happens through Cloud DNS and has no effect on any associated
Service Directory namespaces. The associated namespace continues to be
available for look up through HTTP and gRPC. For more information, see
Delete a managed zone.
You can delete a
service
or namespace that has a Service Directory zone pointing to it without
deleting the zone. If you do, any further DNS queries for that service return
NXDOMAIN.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-29 UTC."],[],[],null,["# Configure a DNS zone\n\nYou can create a Service Directory zone that allows your\nGoogle Cloud-based services to query your Service Directory namespace\nusing Cloud DNS.\n\nThese instructions require that you already have a Service Directory\nnamespace in place. If you do not, first create a namespace using the\nprocedure in [Configuring\nService Directory](/service-directory/docs/configuring-service-directory).\n\nOnce you have attached a Service Directory zone to the namespace, all\nservices and endpoints within the namespace become available over DNS on the\nprivate network. All service and endpoint updates are immediately reflected in\ntheir DNS records. However, the service and the endpoint are not available\nover DNS.\n\n#### Permissions required for this task\n\nTo perform this task, you must have been granted the following permissions\n*or* the following IAM roles.\n\n**Permissions**\n\n- `servicedirectory.namespaces.associatePrivateZone`\n\n**Roles**\n\n- `servicedirectory.admin`\n- `servicedirectory.editor`\n| **Note:** Service visibility (*who* is authorized to look up a service) changes once a Service Directory private zone is assigned to a namespace. The network, not IAM, determines the access when responding to DNS queries. For more details, see [Roles and permissions](/dns/docs/access-control).\n\nLimitations\n-----------\n\nService Directory integration with Cloud DNS has the following\nlimitations:\n\n- You can only associate a Service Directory zone with a namespace when you create the zone.\n- A Service Directory zone must be in the same project as the Service Directory namespace that it is associated with.\n- A Service Directory zone cannot also be a forwarding zone, a regular private zone, or a public zone.\n\nCreate a Service Directory zone backed by a namespace\n-----------------------------------------------------\n\nYou can only associate a Service Directory zone with a namespace when you\ncreate the zone. A Service Directory zone cannot also be a forwarding zone,\na regular private zone, or a public zone. \n\n### Console\n\n1. Go to the Cloud DNS page in the Google Cloud console. \n [Go to Cloud DNS](https://console.cloud.google.com/net-services/dns/zones)\n2. Click **Create zone**.\n3. In the **Zone type** section, click **Private**.\n4. Enter a name for the zone.\n5. Enter a DNS name for the zone.\n6. Under **Options** , select **Use a service directory namespace**.\n7. Under **Networks**, select one or more networks that can use the Service Directory zone.\n8. Select the **Region** where the namespace that you want to link lives.\n9. Select the **Namespace** that you want to link.\n10. Click **Create**.\n\n### gcloud\n\n```\ngcloud dns managed-zones create SD_ZONE \\\n --dns-name DNS_NAME \\\n --description DESCRIPTION \\\n --visibility private \\\n --networks https://www.googleapis.com/compute/v1/projects/project_ID/global/networks/network \\\n --service-directory-namespace https://servicedirectory.googleapis.com/v1/projects/project_ID/locations/region/namespaces/namespace-name\n```\n\nReplace the following values:\n\n- \u003cvar translate=\"no\"\u003eSD_ZONE\u003c/var\u003e: the name of the Service Directory zone that you are creating.\n- \u003cvar translate=\"no\"\u003eDNS_NAME\u003c/var\u003e: the DNS name, such as `us-east1.example.com.`, for the new zone.\n- \u003cvar translate=\"no\"\u003eDESCRIPTION\u003c/var\u003e: a description of the zone, such as `this zone\n is backed by Service Directory`.\n- https://www.googleapis.com/compute/v1/projects/\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e/global/networks/\u003cvar translate=\"no\"\u003eNETWORK\u003c/var\u003e: the FQDN of the networks that can use the zone.\n- https://www.servicedirectory.googleapis.com/v1/projects/\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e/locations/\u003cvar translate=\"no\"\u003eREGION\u003c/var\u003e/registries/\u003cvar translate=\"no\"\u003eNAMESPACE_NAME\u003c/var\u003e: the FQDN of the namespace that you are linking.\n| **Note:** You can associate only one Service Directory zone with a given namespace, and you cannot associate a given zone with multiple namespaces. You must create the Cloud DNS zone and the Service Directory namespace in the same project.\n\nDelete the Service Directory zone\n---------------------------------\n\nAt any point, you can delete a Service Directory zone. This deletion\nhappens through Cloud DNS and has no effect on any associated\nService Directory namespaces. The associated namespace continues to be\navailable for look up through HTTP and gRPC. For more information, see\n[Delete a managed zone](/dns/docs/zones#delete_a_managed_zone).\n\nYou can [delete a\nservice](/service-directory/docs/configuring-service-directory#deleting_a_service_from_a_namespace)\nor namespace that has a Service Directory zone pointing to it without\ndeleting the zone. If you do, any further DNS queries for that service return\n`NXDOMAIN`.\n\nWhat's next\n-----------\n\n- To learn how to secure Service Directory in a service perimeter, see [Service Directory and VPC Service Controls](/service-directory/docs/securing-with-vpc-sc).\n- To get an overview of Service Directory, see the [Service Directory overview](/service-directory/docs/overview).\n- To find solutions for common issues that you might encounter when using Service Directory, see [Troubleshooting](/service-directory/docs/troubleshooting)."]]