您可以将 Looker (Google Cloud Core) 生产或 非生产实例配置为使用 专用服务访问通道的专用连接。
借助专用服务访问通道,Looker (Google Cloud Core) 实例可以直接与虚拟私有云 (VPC) 中的其他资源通信,而无需通过公共互联网或使用外部 IP 地址。此配置限制了攻击途径,可防止来自公共互联网的入站流量,并减少网络延迟。
专用连接支持使用 VPC Service Controls 等功能。但是,专用连接与并非所有 Looker (Google Cloud Core) 功能都兼容。如需了解详情,请参阅功能兼容性表。
Looker (Google Cloud Core) 支持 企业版 或 嵌入式 实例版本的专用连接 (PSA)。
所需的角色和权限
如需设置专用连接 (PSA) 实例,您必须拥有以下 IAM 权限:
- 如需创建 Looker (Google Cloud Core) 实例,您必须拥有 Looker Admin (
roles/looker.Admin) 角色。 -
如需获得创建分配的 IP 地址范围和管理专用连接所需的权限,请让您的管理员为您授予项目的Compute Network Admin (
roles/compute.networkAdmin) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。此预定义角色可提供创建分配的 IP 地址范围和管理专用连接所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需创建分配的 IP 地址范围和管理专用连接,需要具备以下权限:
-
在网络 下拉列表中查看可用网络:
-
compute.addresses.list -
compute.globalAddresses.list -
compute.networks.list -
compute.globalAddresses.list
-
-
创建新的 VPC 网络:
-
compute.addresses.create -
compute.globalAddresses.create -
serviceusage.services.enable
-
-
分配专用 IP 范围并设置专用服务访问通道连接:
compute.networks.addPeering
如果您使用的是已设置的专用网络,则不需要这些权限。
-
在网络 下拉列表中查看可用网络:
您可能还需要其他 IAM 角色来设置 VPC Service Controls 或客户管理的加密密钥 (CMEK)。如需了解详情,请访问 VPC Service Controls 对 Looker (Google Cloud Core) 的支持或为 Looker (Google Cloud Core) 启用 CMEK 文档页面,了解这些功能。
您可能还需要其他 IAM 角色来设置 Workforce Identity Federation、VPC Service Controls 或客户管理的加密密钥 (CMEK)。如需了解详情,请访问将 Workforce Identity Federation 用于 Looker (Google Cloud Core) 用户身份验证、VPC Service Controls 对 Looker (Google Cloud Core) 的支持或为 Looker (Google Cloud Core) 启用 CMEK文档页面,了解这些功能。
准备工作
- 与销售团队合作,确保您的年度合同已完成,并且您的配额已分配到您的项目中。
- 确保您的 Google Cloud 项目已启用结算功能。
- 在 Google Cloud 控制台的“项目选择器”页面上,创建 Google Cloud 项目或前往要创建 Looker (Google Cloud Core) 实例的现有项目。
- 在 Google Cloud 控制台中为您的项目启用 Looker API。启用 API 时,您可能需要刷新控制台页面才能确认相应 API 已启用。
- 在 Google Cloud 控制台中为您的项目启用 Service Networking API。启用 API 时,您可能需要刷新控制台页面才能确认相应 API 已启用。
- 在 Google Cloud 控制台中为您的项目启用 Compute Engine API。启用 API 后,您可能需要刷新控制台页面才能确认相应 API 已启用。
- 设置 OAuth 客户端并创建授权凭据。借助 OAuth 客户端,您可以进行身份验证并访问实例。您必须设置 OAuth 才能创建 Looker (Google Cloud Core) 实例,即使您使用其他 身份验证方法 将用户验证到实例中也是如此。
创建和配置 VPC 网络
您必须先创建和配置虚拟私有云 (VPC) 网络,然后才能创建专用连接。Looker (Google Cloud Core) 支持在同一 VPC 中创建多个专用连接 (PSA) 实例,这些实例可以位于同一区域,也可以位于不同区域。
- 在项目中创建 VPC 网络。或者,如果您使用的是共享 VPC而不是创建新的 VPC 网络,请完成以下在共享 VPC 中创建实例部分中的步骤,并完成本部分中针对共享 VPC 的其余步骤。
- 在 VPC 中为 Looker (Google Cloud Core) 的专用服务访问通道连接分配 IPv4 IP 范围(CIDR 块)。
- 在分配范围之前,请考虑限制条件。
- 设置 IP 地址范围大小时,请注意最小大小为
/22块。 - Looker (Google Cloud Core) 支持 RFC 1918 中的所有 IPv4 范围,该规范指定分配给内部(即组织内)使用的 IP 地址,这些地址将不会在互联网上路由。具体而言,这些范围如下:
10.0.0.0/8172.16.0.0/12192.168.0.0/16- 如 RFC 5735 和 RFC 1112 中所述,E 类 IPv4 范围 (
240.0.0.0/4) 预留以供将来使用,Looker (Google Cloud Core) 不支持这些范围。 - 使用上一步中为分配的分配分配的 IP 范围,将专用服务访问通道连接添加到 VPC 网络。
- 创建 VPC 网络后,返回到 Google Cloud 项目中的创建 Looker 实例 页面。您可能需要刷新页面,以便系统识别您的 VPC 网络。
/22 子网的 /26 范围子网。同一 VPC 和同一区域中的任何后续专用连接 (PSA) Looker (Google Cloud Core) 实例都使用相同的代理专用子网。
完成这些步骤后,您可以按照创建 Looker (Google Cloud Core) 实例 文档页面上的步骤开始创建实例,首先从准备工作部分开始。
同一 VPC 中的多个专用连接实例
如果两个或多个专用连接 Looker (Google Cloud Core) 实例位于同一区域和同一 VPC 中,并且您删除了在该区域中创建的第一个 Looker (Google Cloud Core) 实例,则代理专用子网不会发布,因为它仍在被其余实例使用。如果您尝试创建新的专用连接 (PSA) Looker (Google Cloud Core) 实例,该实例使用您为已删除实例使用的相同地址范围(其中包含代理专用子网的 IP 地址范围),则实例创建将失败,并且您会看到“IP 范围已用完”错误。如需检查 IP 范围是否正在使用,请检查 Service Networking 的 VPC 对等互连,并检查导入的路由,看看它们是否正在使用您感兴趣的 IP 范围。
在共享 VPC 中创建实例
如果您要在共享 VPC 中创建 Looker (Google Cloud Core) 实例,请在共享 VPC 的宿主项目中完成以下步骤:
- 在 Google Cloud 控制台中,在共享 VPC 的宿主项目中启用 Looker API。启用 API 后,您可能需要刷新控制台页面才能确认相应 API 已启用。
在共享 VPC 的宿主项目中创建服务账号,使用 gcloud
services identity create命令:gcloud beta services identity create --service=looker.googleapis.com \ --project=SHARED_HOST_PROJECT_ID
将 SHARED_HOST_PROJECT_ID 替换为共享 VPC 的宿主项目的 ID。
向共享 VPC 的宿主项目中的服务帐号授予包含
compute.globalAddresses.getIAM 权限的 IAM 角色。接下来,运行add-iam-policy-binding命令:gcloud projects add-iam-policy-binding SHARED_HOST_PROJECT_ID \ --member=serviceAccount:SA_EMAIL --role=ROLE_NAME
替换以下内容:
SHARED_HOST_PROJECT_ID:共享 VPC 的宿主项目的 ID。SA_EMAIL:您在共享 VPC 的宿主项目中创建的服务帐号的电子邮件地址。ROLE_NAME:包含compute.globalAddresses.get权限的角色的名称。请采用以下某种格式:- 预定义角色:
roles/SERVICE.IDENTIFIER - 项目级自定义角色:
projects/PROJECT_ID/roles/IDENTIFIER - 组织级自定义角色:
organizations/ORG_ID/roles/IDENTIFIER
如需了解预定义角色的列表,请参阅了解角色。
- 预定义角色:
创建服务帐号并向其授予 IAM 权限后,请等待几分钟,以便服务帐号和权限传播。
此外,请在共享 VPC 中分配 IPv4 IP 范围,并按照上一部分创建和配置 VPC 网络中的说明,将专用服务访问通道连接添加到共享 VPC。
创建专用连接实例
Looker (Google Cloud Core) 生成新实例大约需要 60 分钟。
如果您想要专用连接 (PSA) 实例,则必须使用 Google Cloud CLI 或 Terraform,并且在创建实例时必须将其配置为专用连接 (PSA)。创建实例后,无法向实例添加或从中移除专用连接。
如需使用 Google Cloud CLI 创建专用连接 (PSA) 实例,请执行以下步骤:
- 如果您使用的是 CMEK,请按照说明创建服务帐号、密钥环和密钥,然后再创建 Looker (Google Cloud Core) 实例。
使用
gcloud looker instances create命令创建实例:gcloud looker instances create INSTANCE_NAME \ --project=PROJECT_ID \ --oauth-client-id=OAUTH_CLIENT_ID \ --oauth-client-secret=OAUTH_CLIENT_SECRET \ --region=REGION \ --edition=EDITION \ --private-ip-enabled \ --consumer-network=CONSUMER_NETWORK --reserved-range=RESERVED_RANGE [--no-public-ip-enabled]\ [--public-ip-enabled]\ [--release-channel=RELEASE_CHANNEL]
替换以下内容:
INSTANCE_NAME:Looker (Google Cloud Core) 实例的名称;它与实例网址无关。PROJECT_ID:您要在其中创建 Looker (Google Cloud Core) 实例的 Google Cloud 项目的名称。OAUTH_CLIENT_ID和OAUTH_CLIENT_SECRET:您在设置 OAuth 客户端时创建的 OAuth 客户端 ID 和 OAuth secret。创建实例后,在 OAuth 客户端的已获授权的重定向 URI 部分中输入实例的网址。REGION:Looker (Google Cloud Core) 实例的托管区域。选择与订阅合同中的区域一致的区域。Looker (Google Cloud Core) 位置文档页面列出了可用区域。EDITION:实例的版本、环境类型(生产或非生产)以及这是否为试用版。对于专用连接 (PSA) 实例,这应为core-enterprise-annual、core-embed-annual、nonprod-core-enterprise-annual、nonprod-core-embed-annual、core-trial-enterprise或core-trial-embed。确保您选择的类型与您的年度合同中列出的类型相同,并且您已分配配额。创建实例后,版本便无法更改。如果您想更改版本,可以使用 导入和导出 功能将 Looker (Google Cloud Core) 实例数据移动到配置了不同版本的新实例中。CONSUMER_NETWORK:您的 VPC 网络或共享 VPC 网络,格式为projects/PROJECT_ID/global/networks/NETWORK_NAME。如果您要创建专用连接 (PSA) 实例,则必须进行设置。RESERVED_RANGE:VPC 中的 IP 地址范围,Google 将在该范围内为 Looker (Google Cloud Core) 实例预配子网。RELEASE_CHANNEL:实例的发布渠道。可用值为rapid、regular和no-channel。在预览期间,默认值为no-channel。如果您未在create命令中添加此标志,则系统将使用默认渠道创建实例。此功能处于预览版阶段。
您可以添加以下标志:
--private-ip-enabled用于启用专用连接 (PSA)。必须添加此标志才能创建专用连接 (PSA) 实例。--public-ip-enabled用于启用公共 IP。--no-public-ip-enabled用于停用公共 IP。- 创建 Looker (Google Cloud Core) 实例时,建议使用
--async。
您可以添加更多参数来应用其他实例设置:
[--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] [--accelerated-security-patch-enabled] [--no-accelerated-security-patch-enabled] [--fips-enabled] [--catalog-integration-enabled] [--no-catalog-integration-enabled]替换以下内容:
MAINTENANCE_WINDOW_DAY:必须是以下各项之一:friday、monday、saturday、sunday、thursday、tuesday、wednesday。如需详细了解维护窗口设置,请参阅管理 Looker (Google Cloud Core) 的维护政策文档页面。MAINTENANCE_WINDOW_TIME和DENY_MAINTENANCE_PERIOD_TIME:必须采用 24 小时制 UTC 时间格式(例如13:00、17:45)。DENY_MAINTENANCE_PERIOD_START_DATE和DENY_MAINTENANCE_PERIOD_END_DATE:必须采用YYYY-MM-DD格式。如果您同时将实例注册到快速发布渠道,或者将加速安全补丁 (ASP) 配置标志与常规发布渠道搭配使用,则无法设置拒绝维护期。KMS_KEY_ID:必须是在设置 客户管理的加密 密钥 (CMEK) 时创建的密钥。
以下标志可启用其他设置:
--accelerated-security-patch-enabled和--no-accelerated-security-patch-enabled:如果您的实例位于regular渠道中,并且您希望每两周接收或停用安全补丁,请添加其中一个标志。此功能处于 预览版阶段。--fips-enabled:启用 FIPS 140-3 1 级合规性。- 将
--catalog-integration-enabled标志替换为--no-catalog-integration-enabled标志,以停用 Looker (Google Cloud Core) 和 Knowledge Catalog 集成。此功能处于 预览版阶段。
创建实例时,您可以在控制台内的实例 页面上查看其状态。您还可以点击 Google Cloud 控制台菜单中的通知图标,查看实例创建活动。
如果您在设置实例时选择了混合连接,则可以通过实例的网址设置入站访问权限。如果您设置了自定义网域,则可以在控制台 Google Cloud 的实例 页面或实例详情页面的自定义网域 标签页中找到该网址。您可以设置 IP 许可名单,以将入站连接限制为来自特定 IP 地址的流量。如果您创建的实例仅使用专用连接 (PSA),则不会 在实例 页面上显示网址。如需详细了解如何设置对专用连接 (PSA) 实例的访问权限,请参阅以下 创建后访问专用服务访问通道实例 部分。
创建后访问专用服务访问通道实例
如果您创建的实例仅启用了专用连接,则不会 收到该实例的网址。如需访问该实例,您必须为该实例配置自定义网域,并将该自定义网域添加到实例的 OAuth 凭据中。请按照使用专用服务访问通道访问 Looker (Google Cloud Core) 实例文档页面上的说明创建和访问自定义网域。
如果您创建的实例使用混合网络配置,请按照为使用公共连接的 Looker (Google Cloud Core) 实例设置自定义网域文档页面上的说明创建和访问自定义网域。
排查实例创建问题
如需获得问题排查帮助,请参阅排查 Looker (Google Cloud Core) 实例创建失败问题文档页面。
后续步骤
- 如果您使用的是混合连接,请设置 IP 许可名单,以将入站流量限制为来自特定 IP 地址的流量。
- 如果您使用的是混合连接或公共连接,请设置自定义网域。