Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如果S3加密的AWS密钥丢失,会发生什么情况?_Amazon Web Services_Amazon S3_Aws Kms - Fatal编程技术网

Amazon web services 如果S3加密的AWS密钥丢失,会发生什么情况?

Amazon web services 如果S3加密的AWS密钥丢失,会发生什么情况?,amazon-web-services,amazon-s3,aws-kms,Amazon Web Services,Amazon S3,Aws Kms,我有一个使用cloudformation创建的S3存储桶 RenditionsBucket: Type: AWS::S3::Bucket Properties: BucketEncryption: ServerSideEncryptionConfiguration: - ServerSideEncryptionByDefault: SSEAlgorithm: aws:kms KMSMasterKeyID:

我有一个使用cloudformation创建的S3存储桶

RenditionsBucket:
  Type: AWS::S3::Bucket
  Properties:
    BucketEncryption:
      ServerSideEncryptionConfiguration:
        - ServerSideEncryptionByDefault:
            SSEAlgorithm: aws:kms
            KMSMasterKeyID: !Ref BucketEncryptionKey
    CorsConfiguration:
      CorsRules:
        - AllowedHeaders:
            - "*"
          AllowedMethods:
            - GET
            - HEAD
            - POST
            - PUT
            - DELETE
          AllowedOrigins:
            - "*"
我将其默认加密设置为默认的服务器端加密。SSE算法是aws:kms

我还生成一个键,如下所示

BucketEncryptionKey:
  Type: AWS::KMS::Key
  Properties:
    Enabled: true
    KeyPolicy:
      Version: 2012-10-17
      Statement:
        - Effect: Allow
          Action: kms:*
          Principal:
            AWS: !Sub arn:aws:iam::${AWS::AccountId}:root
          Resource: "*"

现在,这将加密服务器上静止的文档。但是,如果我的
BucketEncryptionKey
密钥丢失,会发生什么情况?是否可能丢失此密钥或处于无法解密数据的状态?

AWS::KMS::key
是一个客户主密钥,从技术上讲,没有任何东西阻止您删除密钥,这可能是一个密钥“丢失”的最有可能的方式。因此,此警告:

在AWS密钥管理服务(AWS KMS)中删除客户主密钥(CMK)具有破坏性和潜在危险。它删除关键材料和与CMK关联的所有元数据,并且是不可逆的。删除CMK后,您无法再解密在该CMK下加密的数据,这意味着数据将无法恢复

从理论上讲,影响密钥管理服务(KMS)的严重故障、缺陷、破坏或灾难性事件也可能导致密钥丢失,但这些可能比帐户所有者的人为错误要小。从本质上讲,在静止状态下对数据进行加密是一项有风险的业务——加密数据在没有密钥的情况下是故意不可用的

S3实际上并不直接用主密钥加密存储的数据。相反,它使用单独的加密密钥,密钥使用主密钥加密。。。但是如果没有主密钥,这些数据密钥也无法解密。S3不以明文形式存储密钥,甚至在内存中保留密钥的明文版本的时间也不会超过加密或解密飞行中的objecta所需的时间

S3[…]在使用后尽快从内存中删除明文密钥


AWS::KMS::Key
是一个客户主密钥,从技术上讲,没有任何东西可以阻止您删除一个主密钥,这可能是一个主密钥“丢失”的最可能方式。因此,此警告:

在AWS密钥管理服务(AWS KMS)中删除客户主密钥(CMK)具有破坏性和潜在危险。它删除关键材料和与CMK关联的所有元数据,并且是不可逆的。删除CMK后,您无法再解密在该CMK下加密的数据,这意味着数据将无法恢复

从理论上讲,影响密钥管理服务(KMS)的严重故障、缺陷、破坏或灾难性事件也可能导致密钥丢失,但这些可能比帐户所有者的人为错误要小。从本质上讲,在静止状态下对数据进行加密是一项有风险的业务——加密数据在没有密钥的情况下是故意不可用的

S3实际上并不直接用主密钥加密存储的数据。相反,它使用单独的加密密钥,密钥使用主密钥加密。。。但是如果没有主密钥,这些数据密钥也无法解密。S3不以明文形式存储密钥,甚至在内存中保留密钥的明文版本的时间也不会超过加密或解密飞行中的objecta所需的时间

S3[…]在使用后尽快从内存中删除明文密钥


S3中的对象在AWS KMS客户主密钥(CMK)下加密, 因此,为了解密每个对象,CMK必须是可用的

因此,如果删除CMK,数据将无法恢复

如果您想删除,这实际上是一个很大的好处 分布式系统中的大量数据。 删除(有时甚至只是查找)很多东西是很困难的。 验证您是否删除了所有这些内容以及它们是否无法恢复更加困难。 删除一件事(本例中的CMK)要容易得多, 并将导致在该密钥下加密的所有数据变得不可恢复

加密数据的这一特性是无法直接删除CMK的原因之一。 您可以计划在未来至少七天内删除CMK[1](默认值为30)。 当您计划删除时,CMK将被禁用, 但它直到删除日期才被删除

如果您意识到在计划删除和删除日期之间需要CMK, 您可以取消删除

类似地,如果您通过CloudFormation创建CMK, 然后当CloudFormation“删除”CMK资源时, 它实际做的是安排CMK删除。 默认情况下,这是在未来30天内安排的, 但如果设置“PendingWindowInDays”值[2], 您可以选择7到30天之间的自定义期间

有关这方面的更多信息,请参阅CMK删除文档[3]

[1]

[2]


[3]

S3中的对象在AWS KMS客户主密钥(CMK)下加密, 因此,为了解密每个对象,CMK必须是可用的

因此,如果删除CMK,数据将无法恢复

如果您想删除,这实际上是一个很大的好处 分布式系统中的大量数据。 删除(有时甚至只是查找)很多东西是很困难的。 验证您是否删除了所有这些内容以及它们是否无法恢复更加困难。 删除一件事(本例中的CMK)要容易得多, 并将导致在该密钥下加密的所有数据变得不可恢复

加密数据的这一特性是无法直接删除CMK的原因之一。 您可以计划在未来至少七天内删除CMK[1](默认值为30)。 当您计划删除时,CMK将被禁用, 但它直到删除日期才被删除

如果您意识到在计划删除和删除日期之间需要CMK, 您可以取消删除