【问题标题】:Decrypt input parameter in Lambda function in AWS Codepipeline在 AWS Codepipeline 中解密 Lambda 函数中的输入参数
【发布时间】:2017-08-19 03:53:38
【问题描述】:

我使用 CodeBuild 步骤构建了一个 CodePipeline,该步骤生成带有单行标记信息的文件“build.json”作为输出。此文件是 Codepipeline 中下一个 Lambda 步骤的输入。 Lambda 函数想要读取标签信息,然后对其进行处理。因此,我使用 s3::getobject 读取了 S3 对象,作为响应,我得到:

{
"AcceptRanges": "bytes",
"LastModified": "2017-08-07T00:25:22.000Z",
"ContentLength": 158,
"ETag": "\"4444a193ad79ffe0ec0bd51ce7cf297c\"",
"ContentType": "",
"ServerSideEncryption": "aws:kms",
"Metadata": {
    "codebuild-content-sha256": "fa85881e29d5b68464b078243ac23754189741e244bbf2d3748c02d97885ff51",
    "codebuild-content-md5": "44444449e8f4b830a487b86e1e94c0"
},
"SSEKMSKeyId": "arn:aws:kms:eu-central-1:813287844011:key/4444444-0db2-4c3c-b24e-20ff7bbe206a",
"Body": {
    "type": "Buffer",
    "data": [
        80,
        75,
        3,...]}}

当我使用内容并将其发送到 kms 进行解密时:

kms.decrypt({ CiphertextBlob: mydata.Metadata["codebuild-content-sha256"]  }, function (err, kmsData) {
if (err) {
    console.log("ERROR " + err);
} else {
    console.log("SUCCESS"); 
}

我只得到:ERROR InvalidCiphertextException: null。

我还尝试提供一些其他值作为 Encryptioncontext,但没有运气。

谢谢。

【问题讨论】:

    标签: encryption aws-lambda aws-codepipeline aws-kms


    【解决方案1】:

    对象是否使用 S3 服务器端加密之外的另一个 KMS 密钥本身加密?据我了解,S3:GetObject返回的数据是解密的,见http://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-03
      • 2021-04-08
      • 1970-01-01
      • 2020-11-06
      • 1970-01-01
      • 2021-08-28
      • 2020-04-13
      相关资源
      最近更新 更多