Loading...
Amazon S3 Express One Zone 是一种高性能的单可用区Availability ZoneS3 存储类,现在可以使用 AWS 密钥管理服务 (KMS) 进行服务器端加密。S3 Express One Zone 默认情况下会使用 Amazon S3 管理密钥 (SSES3) 加密所有存储在 S3 目录桶 中的对象。现在,您可以使用 AWS KMS 自管密钥 来加密静态数据,而不会对性能产生影响。这项新的加密功能,为您在使用 S3 Express One Zone 时满足合规和监管要求提供了额外选择。S3 Express One Zone 旨在为最常访问的数据和对延迟敏感的应用程序提供一致的单数毫秒数据访问。
功能描述加密支持支持使用 AWS KMS 自管密钥进行 SSEKMS 加密,同时支持默认的 SSES3 加密。性能使用 SSEKMS 不会影响请求延迟,仍能保持单数毫秒的数据访问。权限管理每个 S3 目录桶只能指定一个自管密钥进行加密,添加后不支持更改。同时,使用 AWS CLI 需要 IAM 用户或角色的相关权限。定价信息使用 AWS KMS 生成和检索数据密钥时会产生费用,同时 S3 Bucket Key 默认启用,减少对 AWS KMS 的请求次数从而优化性能和成本。为了演示这个新功能,我首先在 Amazon S3 控制台 中创建一个 S3 目录桶,按照 创建 S3 目录桶 的步骤,选择可用区 apne1az4。在 基础名称 中输入 s3expresskms,系统会自动添加一个后缀以创建最终名称。勾选确认 数据存储在单个可用区,然后点击 创建桶。
接下来,我将通过 AWS 命令行界面 (AWS CLI) 来设置我们刚创建的桶的加密。
使用 SSEKMS 加密需要 IAM 用户或角色,并附加相应的 策略。该策略允许执行 CreateSession API 操作,以便成功上传和下载加密文件。
json{ Version 20121017 Statement [ { Effect Allow Action [ s3expressCreateSession ] Resource [ arnawss3expressltaccountgtbucket/s3expresskmsapne1az4xs3 ] } { Effect Allow Action [ kmsDecrypt kmsGenerateDataKey ] Resource [ arnawskmsltaccountgtkey/ltkeyIdgt ] } ]}
我将使用 PutBucketEncryption API 设置默认的桶加密为 SSEKMS。以下是 AWS CLI 的示例命令:
bashaws s3api putbucketencryption bucket s3expresskmsapne1az4xs3 serversideencryptionconfiguration {Rules [{ApplyServerSideEncryptionByDefault {SSEAlgorithm awskms KMSMasterKeyID 1234abcd12ab34cd56ef1234567890ab } BucketKeyEnabledtrue}]}

我上传到该 S3 目录桶的每个新对象都会自动使用我的 AWS KMS 密钥进行加密。使用 PutObject 命令上传一个名为 confidentialdoctxt 的新文件。
bashaws s3api putobject bucket s3expresskmsapne1az4xs3 key confidentialdoctxt body confidentialdoctxt
在执行成功后,将收到以下响应:
json{ ETag 664469eeb92c4218bbdcf92ca559d03b ChecksumCRC32 0duteA== ServerSideEncryption awskms SSEKMSKeyId arnawskmsapnortheast1ltaccountIdgtkey/ltkeyIdgt BucketKeyEnabled true}
通过 HeadObject 命令检查对象属性时,会看到它使用了之前创建的 SSEKMS 加密:
bashaws s3api headobject bucket s3expresskmsapne1az4xs3 key confidentialdoctxt
返回结果如下:
json{ AcceptRanges bytes LastModified 20240821T1529220000 ContentLength 5 ETag 664469eeb92c4218bbdcf92ca559d03b ContentType binary/octetstream ServerSideEncryption awskms Metadata {} SSEKMSKeyId arnawskmsapnortheast1ltaccountIdgtkey/ltkeyIdgt BucketKeyEnabled true StorageClass EXPRESSONEZONE}
我使用 GetObject 下载加密对象:
bashaws s3api getobject bucket s3expresskmsapne1az4xs3 key confidentialdoctxt outputconfidentialdoctxt
由于我的会话拥有必要的权限,文件将自动下载并解密。
json{ AcceptRanges bytes LastModified 20240821T1529220000 ContentLength 5 ETag 664469eeb92c4218bbdcf92ca559d03b ContentType binary/octetstream ServerSideEncryption awskms Metadata {} SSEKMSKeyId arnawskmsapnortheast1ltaccountIdgtkey/ltkeyIdgt BucketKeyEnabled true StorageClass EXPRESSONEZONE}
在第二次测试中,我使用的 IAM 用户没有被授予下载对象所需的 KMS 密钥权限。这次尝试以 AccessDenied 错误失败,展示了 SSEKMS 加密功能的正常工作。
bashAn error occurred (AccessDenied) when calling the CreateSession operation Access Denied
这个演示展示了 SSEKMS 如何与 S3 Express One Zone 无缝配合,提供了一层额外的安全保护,同时为授权用户保持了易用性。
Eli
加速器永久免费更新于2024年9月19日 我们更新了 CLI 示例,以便为现有桶配置默认加密,而不是通过控制台进行设置。
我的使命是将复杂的概念拆解为易于理解的解释,激励开发者不断扩展他们的技能与知识。通过会议、教程和在线资源,我分享我的专业知识,助力全球开发者社区,为他们提供达到潜能的工具与信心。通过实操方式和简化复杂的承诺,我努力成为推动AWS技术领域增长与学习的催化剂。
加载评论
2026-01-27 14:56:07
2026-01-27 14:41:25
2026-01-27 14:26:43
2026-01-27 14:12:02
2026-01-27 13:57:16
2026-01-27 13:42:11
Azure 可能因 Apache Airflow 漏洞而受到威胁 媒体
微软Azure Data Factory中的Apache Airflow安全漏洞关键要点微软Azure Data Factory中的Apache Airflow受到三项低严重性漏洞影响。包括Kuber...