为了提高整体安全性,IAP 默认会拒绝对没有匹配服务器名称指示 (SNI) 的请求的访问。IAP 还会检查负载均衡器证书的 SNI。这样,IAP 就可以限制网址重定向到恶意网域。IAP 允许的网域功能可为受 IAP 保护的资源提供额外的安全层。作为资源所有者或 IAP 管理员,您可以通过配置“允许的网域”功能,将对受 IAP 保护的资源的访问权限限制为特定网域。
您还可以在以下场景中配置允许的 IAP 网域:
- 您的浏览器或中间代理正在强制连接池:在这种情况下,您会收到 HTTP 响应 429 和错误代码
51
。如需解决此问题,IAP 管理员可以更新允许的网域列表,以添加您的主机名。 - 提供的主机名与服务器上的 SSL 证书不匹配:在这种情况下,您会收到错误代码
52
。如需解决此问题,IAP 管理员可以更新允许的网域列表,以添加您的主机名。
配置允许的网域
您可以使用 gcloud 或 API 来配置允许的网域设置。如需配置允许的网域,请使用以下字段:
enable
:布尔值。开启或关闭“允许的网域”功能。Domains
:字符串。允许使用的网域的列表。域名可以包含通配符前缀,例如*.example.com.
。域名不能直接在公共后缀或顶级域名中包含通配符。示例:*.com
、*.co.in
。
如需了解详情,请参阅 IapSettings。
如需配置允许的 IAP 网域,请完成以下步骤:
控制台
- 前往 IAP 页面。
前往 Identity-Aware Proxy。 - 选择一个项目,然后选择要为其启用“允许的网域”功能的资源。
- 打开相应资源的设置。在允许的网域下,选择启用允许的网域。
- 指定允许的网域列表,然后点击保存。
gcloud
以下是指定允许的网域的一些示例命令。
如需了解详情,请参阅 gcloud iap settings set
。
运行以下命令:
gcloud iap settings set SETTING_FILE --folder=FOLDER --organization=ORGANIZATION --project=PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION
其中 SETTING_FILE
为:
accessSettings:
allowed_domains_settings:
enable: true
domains: ["*.example.com", "*.example.net"]
替换以下内容:
- FOLDER:文件夹 ID。
- ORGANIZATION:组织 ID。
- PROJECT:项目 ID。
- RESOURCE_TYPE:IAP 资源类型。必须为
app-engine
、iap_web
、compute
、organization
或folder
。 - SERVICE:服务名称。当
resource-type
为compute
或app-engine
时,此字段为可选字段。 - VERSION:版本名称。此参数不适用于
compute
,当resource-type
为app-engine
时,此参数为可选参数。
API
如需配置允许的网域,请完成以下步骤。如需详细了解如何使用 API 配置允许的网域,请参阅 IapSettings。
- 运行以下命令以准备
iap_settings.json
文件。根据需要更新值。
{ "access_settings":{ "allowed_domains_settings":{ "enable": true "domains": [ "*.example.com", "*.exampe.net" ] } } }
- 运行
gcloud iap settings get
命令以获取资源名称。从输出中复制名称字段。您将在下一步中用到该名称。
gcloud iap settings get --organization=ORGANIZATION --folder=FOLDER --project=PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION
- 将以下命令中的
RESOURCE_NAME
替换为上一步中的名称。IapSettings
将会更新。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d @iap_settings.json \ "https://iap.googleapis.com/v1/RESOURCE_NAME:iapSettings?updateMask=iapSettings.accessSettings.allowedDomainsSettings.enable,iapSettings.accessSettings.allowedDomainsSettings.domains"
问题排查
允许的网域访问问题
如果您收到错误代码 53,请让 IAP 管理员将您的主机名添加到允许的网域列表中。