使用带有 OAI 的 CloudFront 访问 KMS 加密文件时令牌无效

Invalid token when using CloudFront with OAI to access KMS encrypted file

我有一个用于通过 CloudFront Distribution 提供内容的存储桶。目前 OAI 用于验证对存储桶的请求,但作为额外的安全层,我希望为存储桶中的文件添加 KMS 加密。

我已按照文档 here 启用 KMS 加密文件的检索,但是一旦应用,我无法通过 CDN 访问存储桶中的任何文件(KMS 加密与否)并获得 InvalidToken 错误:

<?xml version="1.0" encoding="UTF-8"?>
<Error>
    <Code>InvalidToken</Code>
    <Message>The provided token is malformed or otherwise invalid.</Message>
    <Token-0>{TOKEN}</Token-0>
    <RequestId>{REQUEST_ID}</RequestId>
    <HostId>{HOST_ID}</HostId>
</Error>

如果我删除 OAI,我可以按预期检索所有文件,如果我删除 KMS 解密 lambda,我可以按预期检索未加密的文件,但是当两者都到位时,我什么也得不到。检查来自 lambda 的输出请求时,使用和不使用 OAI 的唯一区别是 origin authMethodnone vs origin-access-identity.

是什么导致了身份验证冲突,是否可以同时使用这两种方法,以便只有通过 CF 分发的请求才能访问存储桶并解密 KMS 加密文件?

不知道我是怎么错过这个的,但在文档中是这样说的:

Currently, OAI only supports SSE-S3, which means customers cannot use SSE-KMS with OAI.

因此现阶段无法同时使用 OAI 和 KMS