【问题标题】:x-amz-server-side-encryption header is not supported for this operation此操作不支持 x-amz-server-side-encryption 标头
【发布时间】:2017-11-09 13:39:24
【问题描述】:

我在 AWS AMI 中运行我的应用程序。 AMI 通过云形成模板启动,该模板使用sts:AssumeRole 创建AWS::IAM::Role 角色。 EC2 实例启动后,我使用 boto3.create_bucket 从 Ec2 实例创建一个 S3 存储桶。

在我的应用程序中,我将一个文件上传到创建的存储桶,并启用了加密标志。但是在上传时出现错误:

com.amazonaws.services.s3.model.AmazonS3Exception: 不支持 x-amz-server-side-encryption 标头 手术。 (服务:Amazon S3;状态代码:400;错误代码: 无效的论点;请求 ID:04DD9259D04F92CA),S3 扩展请求 ID: EVdqFn6jUNshxUejZFWa6VN/lHPXHyi0F+TG+UZ3K9Sh8Gy0MPABi1AnxZloIajypLb39/5UAVA=

这是我的代码的服务器端加密部分:

    ObjectMetadata meta = new ObjectMetadata();
    meta.setContentLength(contentLength);
    meta.setSSEAlgorithm(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION)

我做错了什么?当我在其他地方运行我的代码并使用 S3 存储桶时,这可以按预期工作。这是否与云的形成或sts:AssumeRole有关?

【问题讨论】:

    标签: amazon-s3 boto3 aws-java-sdk amazon-cloudformation


    【解决方案1】:

    The Put object function in boto3 具有设置对象级加密的选项。

    object = bucket.put_object(
        ServerSideEncryption='AES256'|'aws:kms',
        SSECustomerAlgorithm='string',
        SSECustomerKey='string',
        SSEKMSKeyId='string',
    )
    
    • ServerSideEncryption (string) -- 在 S3 中存储此对象时使用的服务器端加密算法(例如,AES256、aws:kms)。 StorageClass (string) -- 用于对象的存储类型。默认为“标准”。

    • SSECustomerAlgorithm (string) -- 指定加密对象时使用的算法(例如,AES256)。

    • SSECustomerKey(字符串)- 指定客户提供的供 Amazon S3 用于加密数据的加密密钥。该值用于存储对象,然后将其丢弃;亚马逊不存储加密密钥。密钥必须适合与 x-amz-server-side​-encryption​-customer-algorithm 标头中指定的算法一起使用。> -

    • SSECustomerKeyMD5 (string) -- 根据 RFC 1321 指定加密密钥的 128 位 MD5 摘要。Amazon S3 使用此标头进行消息完整性检查,以确保加密密钥的传输没有错误。请注意,如果未提供此参数,则会自动填充。不需要包含这个参数

    • SSEKMSKeyId (string) -- 指定用于对象加密的 AWS KMS 密钥 ID。如果不是通过 SSL 或使用 SigV4 发出的,对受 AWS KMS 保护的对象的所有 GET 和 PUT 请求都将失败。有关配置任何官方支持的 AWS 开发工具包和 CLI 的文档,请访问 http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version)

    http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html

    【讨论】:

      猜你喜欢
      • 2019-12-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-05
      • 1970-01-01
      • 1970-01-01
      • 2023-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多