将 CloudFront Functions 与源双向 TLS 结合使用 - Amazon CloudFront
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将 CloudFront Functions 与源双向 TLS 结合使用

CloudFront Functions 在边缘提供轻量级的无服务器计算,用于自定义内容交付。在 CloudFront Functions 中使用源双向 TLS 时,需要注意有关源选择和操作的特定行为和限制。

支持的 CloudFront Functions 操作

CloudFront Functions 可以通过以下方式与启用了 mTLS 的源进行交互:

updateRequestOrigin()

updateRequestOrigin() 函数在使用启用了 mTLS 的源时支持进行有限的修改:

  • 在源 mTLS 源之间切换:您可以更新请求以路由到使用源 mTLS 的不同源,前提是这两个源都使用相同的客户端证书。这支持您在保持双向 TLS 身份验证的同时实现自定义路由逻辑。

  • 禁用源 mTLS:您可以通过在函数中设置 mTLSConfig: 'off',从启用了 mTLS 的源切换到非 mTLS 源。这为根据请求特征有条件地禁用双向 TLS 身份验证提供了灵活性。

示例:在具有相同证书的源 mTLS 源之间切换

function handler(event) { var request = event.request; // Route to different origin based on request path if (request.uri.startsWith('/api/v2')) { request.origin = { domainName: 'api-v2.example.com', customHeaders: {}, // Both origins must use the same certificate }; } return request; }

示例:有条件地禁用源 mTLS

function handler(event) { var request = event.request; // Disable mTLS for specific paths if (request.uri.startsWith('/public')) { request.origin = { domainName: 'public-origin.example.com', customHeaders: {}, mTLSConfig: 'off' }; } return request; }

不支持的 CloudFront Functions 操作

在正式上市时,以下 CloudFront Functions 操作不支持启用了源 mTLS 的源:

selectRequestOriginById()

selectRequestOriginById() 函数无法选择已启用源 mTLS 的源。尝试使用此函数选择已启用源 mTLS 的源将导致验证错误。

如果使用案例要求使用源 mTLS 进行动态源选择,请改用 updateRequestOrigin(),确保所有目标源都使用相同的客户端证书。

createRequestOriginGroup()

createRequestOriginGroup() 函数不支持创建包含已启用 mTLS 的源的源组。无法通过 CloudFront Functions 动态创建具有源 mTLS 源的源组。

如果您需要具有源 mTLS 的源失效转移功能,请直接在 CloudFront 分配设置中配置源组,而不是在函数中动态创建源组。