创建 Looker (Google Cloud Core) Private Service Connect 实例

本页面介绍了如何使用 gcloud CLI 创建启用了 Private Service Connect 的 Looker (Google Cloud Core) 实例。

您可以为满足以下条件的 Looker (Google Cloud Core) 实例启用 Private Service Connect:

  • Looker (Google Cloud Core) 实例必须是新的。Private Service Connect 只能在创建实例时启用。
  • 实例不能启用公共 IP。
  • 实例版本必须为企业版 (core-enterprise-annual) 或嵌入版 (core-embed-annual)。

准备工作

  1. 在 Google Cloud 控制台的项目选择器页面上,选择您要在其中创建 Private Service Connect 实例的项目。

    前往项目选择器

  2. 在 Google Cloud 控制台中为您的项目启用 Looker API。启用 API 时,您可能需要刷新控制台页面,确认 API 是否已启用。

    启用 API

  3. 设置 OAuth 客户端并创建授权凭据。借助 OAuth 客户端,您可以进行身份验证并访问实例。您必须设置 OAuth 才能创建 Looker (Google Cloud Core) 实例,即使您使用其他身份验证方法对用户进行身份验证以便他们登录实例也是如此。
  4. 如果您想将 VPC Service Controls客户管理的加密密钥 (CMEK) 与您要创建的 Looker (Google Cloud Core) 实例搭配使用,则需要在创建实例之前进行额外的设置。在创建实例时,可能还需要进行其他版本和网络配置。

所需的角色

如需获取创建 Looker (Google Cloud Core) 实例所需的权限, 请让管理员授予您 Looker Admin (roles/looker.admin) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

您可能还需要其他 IAM 角色才能设置 VPC Service Controls客户管理的加密密钥 (CMEK)。如需了解详情,请访问这些功能的文档页面。

创建 Private Service Connect 实例

如需创建 Private Service Connect 实例,请运行 gcloud looker instances create 命令,并附加以下所有标志:


gcloud looker instances create INSTANCE_NAME \
--no-public-ip-enabled \
--psc-enabled \
--oauth-client-id=OAUTH_CLIENT_ID \
--oauth-client-secret=OAUTH_CLIENT_SECRET \
--region=REGION \
--edition=EDITION \
--psc-allowed-vpcs=ALLOWED_VPC,ADDITIONAL_ALLOWED_VPCS \
--async

替换以下内容:

  • INSTANCE_NAME:Looker (Google Cloud Core) 实例的名称;该名称与实例网址无关。
  • OAUTH_CLIENT_IDOAUTH_CLIENT_SECRET:您在设置 OAuth 客户端时创建的 OAuth 客户端 ID 和 OAuth 密钥。创建实例后,在 OAuth 客户端的已获授权的重定向 URI 部分中输入实例的网址
  • REGION:Looker (Google Cloud Core) 实例的托管区域。选择与订阅合同中的区域匹配的区域。Looker (Google Cloud Core) 位置文档页面列出了可用区域。
  • EDITION:实例的版本。可能的值为 core-enterprise-annualcore-embed-annual。实例创建后,版本便无法更改。如果您想要更改版本,可以使用导入和导出功能将 Looker (Google Cloud Core) 实例数据移动到配置了其他版本的新实例。
  • ALLOWED_VPC:一个 VPC,将被允许对 Looker (Google Cloud Core) 进行北向(入站)访问。如需从实例所在的 VPC 外部访问该实例,您必须列出至少一个 VPC。使用以下格式之一指定 VPC:
    • projects/{project}/global/networks/{network}
    • https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}
  • ADDITIONAL_ALLOWED_VPCS:您可以将要允许向 Looker (Google Cloud Core) 进行北向访问的任何其他 VPC 添加到 --psc-allowed-vpcs 标志中,以逗号分隔的列表的形式。

如果需要,您可以添加更多参数来应用其他实例设置:

    [--maintenance-window-day=MAINTENANCE_WINDOW_DAY
            --maintenance-window-time=MAINTENANCE_WINDOW_TIME]
    [--deny-maintenance-period-end-date=DENY_MAINTENANCE_PERIOD_END_DATE
            --deny-maintenance-period-start-date=DENY_MAINTENANCE_PERIOD_START_DATE
            --deny-maintenance-period-time=DENY_MAINTENANCE_PERIOD_TIME]
    --kms-key=KMS_KEY_ID
    [--fips-enabled]
    
替换以下内容:

  • MAINTENANCE_WINDOW_DAY:必须是以下各项之一:fridaymondaysaturdaysundaythursdaytuesdaywednesday。如需详细了解维护期设置,请参阅管理 Looker (Google Cloud Core) 的维护政策文档页面。
  • MAINTENANCE_WINDOW_TIMEDENY_MAINTENANCE_PERIOD_TIME:必须采用 24 小时制 UTC 格式(例如 13:00、17:45)。
  • DENY_MAINTENANCE_PERIOD_START_DATEDENY_MAINTENANCE_PERIOD_END_DATE:必须采用 YYYY-MM-DD 格式。
  • KMS_KEY_ID:必须是设置客户管理的加密密钥 (CMEK) 时创建的密钥。

您可以添加 --fips-enabled 标志,以使 FIPS 140-2 1 级合规性

创建 Private Service Connect 实例的流程与创建 Looker (Google Cloud Core)(专用服务访问通道)实例的流程在以下几个方面有所不同:

  • 在 Private Service Connect 设置中,无需使用 --consumer-network--reserved-range 标志。
  • Private Service Connect 实例需要另外两个标志:--no-public-ip-enabled--psc-enabled
  • --psc-allowed-vpcs 标志是 VPC 的逗号分隔列表。您可以在列表中指定任意数量的 VPC。

检查实例的状态

实例大约需要 40-60 分钟才能创建完毕。如需检查状态,请使用 gcloud looker instances describe 命令:

gcloud looker instances describe INSTANCE_NAME --region=REGION

替换以下内容:

  • INSTANCE_NAME:您的 Looker (Google Cloud Core) 实例的名称。
  • REGION:Looker (Google Cloud Core) 实例的托管区域。

在实例达到 ACTIVE 状态后,该实例即准备就绪。

为外部服务设置 Private Service Connect

为了让您的 Looker (Google Cloud Core) 实例能够连接到外部服务,必须使用 Private Service Connect 发布该外部服务。针对您要发布的任何服务,按照使用 Private Service Connect 发布服务的说明操作。

服务可以通过自动批准显式批准发布。如果您选择使用显式批准发布,则必须按如下方式配置服务连接:

  • 将服务连接许可名单设置为使用项目(而非影音平台)。
  • 将 Looker 租户项目 ID 添加到许可名单。

实例创建后,您可以通过运行以下命令找到 Looker 租户项目 ID:

gcloud looker instances describe INSTANCE_NAME --region=REGION--format=json

替换以下内容:

  • INSTANCE_NAME:您的 Looker (Google Cloud Core) 实例的名称。
  • REGION:托管您的 Looker (Google Cloud Core) 实例的区域。

在命令输出中,looker_service_attachment_uri 字段将包含您的 Looker 租户项目 ID。其格式如下:projects/{Looker tenant project ID}/regions/…

服务连接 URI

日后,当您更新 Looker (Google Cloud Core) 实例以连接到服务时,您需要完整的服务连接 URI。您可以使用创建服务附件的项目、区域和名称,按如下方式指定 URI:

projects/{project}/regions/{region}/serviceAttachments/{name}

更新 Looker (Google Cloud Core) Private Service Connect 实例

创建 Looker (Google Cloud Core) Private Service Connect 实例后,您可以进行以下更改:

指定南向连接

使用 --psc-service-attachment 标志可启用与您已设置 Private Service Connect 的外部服务的南向(出站)连接:

gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment  domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--psc-service-attachment domain=DOMAIN_2,attachment=SERVICE_ATTACHMENT_URI_2 \
--region=REGION

替换以下内容:

  • INSTANCE_NAME:您的 Looker (Google Cloud Core) 实例的名称。
  • DOMAIN_1DOMAIN_2:如果您要连接到公共服务,请使用该服务的域名。如果您要连接到专用服务,请使用自己选择的完全限定域名。网域名须遵循以下限制:

    • 每个南向连接都支持单个网域。
    • 域名必须至少由三部分组成。例如,mydomain.github.com 是可接受的,而 github.com 是不可接受的。
    • 名称的最后一部分不能是以下任何一项:

      • googleapis.com
      • google.com
      • gcr.io
      • pkg.dev

    在 Looker (Google Cloud Core) 实例中设置与服务的连接时,请将此网域用作服务的别名。

  • SERVICE_ATTACHMENT_1SERVICE_ATTACHMENT_2:您要连接的已发布服务的完整服务连接 URI。每个服务连接 URI 只能由单个网域访问。

  • REGION:Looker (Google Cloud Core) 实例的托管区域。

如果您要连接到 Looker (Google Cloud Core) 实例所在区域以外的非 Google 代管式服务,请在生产者负载均衡器上启用全球访问权限

包含应启用的所有连接

每次运行带有 --psc-service-attachment 标志的更新命令时,您都必须包含想要启用的每个连接,包括之前已启用的连接。例如,假设您之前已将名为 my-instance 的实例连接到 www.cloud.com 网域,如下所示:

gcloud looker instances update my-instance
--psc-service-attachment domain=www.cloud.com,attachment=projects/123/regions/us-central1/serviceAttachment/cloud

运行以下命令以添加新的 www.me.com 连接会删除 www.cloud.com 连接:

gcloud looker instances update my-instance \
--psc-service-attachment domain=www.me.com,attachment=projects/123/regions/us-central1/serviceAttachment/my-sa

为了防止在添加新的 www.me.com 连接时删除 www.cloud.com 连接,请在 update 命令中为现有连接和新连接添加一个单独的 psc-service-attachment 标志,如下所示:

gcloud looker instances update my-instance \
--psc-service-attachment domain=www.cloud.com,attachment=projects/123/regions/us-central1/serviceAttachment/cloud \
--psc-service-attachment domain=www.me.com,attachment=projects/123/regions/us-central1/serviceAttachment/my-sa

检查南向连接状态

您可以再次运行 gcloud looker instances describe --format=json 命令,检查南向(出站)连接的状态。每个服务附件都应填充 connection_status 字段。

删除所有南向连接

如需删除所有南向(出站)连接,请运行以下命令:

gcloud looker instances update MY_INSTANCE \ --clear-psc-service-attachments \
--region=REGION

替换以下内容:

  • INSTANCE_NAME:您的 Looker (Google Cloud Core) 实例的名称。
  • REGION:Looker (Google Cloud Core) 实例的托管区域。

更新允许的 VPC

使用 --psc-allowed-vpcs 标志更新已授权北向访问实例的 VPC 列表。

更新允许的 VPC 时,您必须指定要在更新后生效的完整列表。例如,假设 VPC ALLOWED_VPC_1 已获准,而您想添加 VPC ALLOWED_VPC_2。如需添加 VPC ALLOWED_VPC_1,同时确保继续允许使用 VPC ALLOWED_VPC_2,请添加 --psc-allowed-vpcs 标志,如下所示:

gcloud looker instances update INSTANCE_NAME --psc-allowed-vpcs=ALLOWED_VPC_1,ALLOWED_VPC_2 --region=REGION

替换以下内容:

  • INSTANCE_NAME:您的 Looker (Google Cloud Core) 实例的名称。
  • ALLOWED_VPC_1ALLOWED_VPC_2:允许进入 Looker (Google Cloud Core) 的 VPC。使用以下格式之一指定每个允许的 VPC:
    • projects/{project}/global/networks/{network}
    • https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}
  • REGION:托管您的 Looker (Google Cloud Core) 实例的区域。

删除所有允许的 VPC

如需删除所有允许的 VPC,请运行以下命令:

gcloud looker instances update MY_INSTANCE \ --clear-psc-allowed-vpcs \
--region=REGION

替换以下内容:

  • INSTANCE_NAME:您的 Looker (Google Cloud Core) 实例的名称。
  • REGION:托管您的 Looker (Google Cloud Core) 实例的区域。

对实例的北向访问权限

创建 Looker (Google Cloud Core) (Private Service Connect) 实例后,您可以设置上行访问权限,以允许用户访问该实例。

如需从其他 VPC 网络访问您的实例,请先按照创建 Private Service Connect 端点的说明操作。请确保允许该网络向您的 Looker (Google Cloud Core) 实例北向访问,并在创建端点时遵循以下准则:

如需从混合网络环境访问您的实例,您可以按照使用 Private Service Connect 对 Looker (Google Cloud Core) 实例进行北向访问文档页面上的说明设置自定义网域并访问实例。

后续步骤