我正在使用AWS SDK iOS v2.6.21以编程方式向AWS S3存储桶添加KMS(SSE-KMS)加密。我用以下目标C代码进行此操作:
awss3*awsclient=[awss3 s3forkey:bucketObject.regionshortname];
awss3服务器加密规则*规则=[awss3服务器加密规则新建];
awss3serversideencryptionbydefault*applyserversidencryptionbydefault=[awss3serversideencryptionbydefault new];applyserversidencryptionbydefault.ssealgorithm=awss3serversideencryptionwskms;
applyserverSideEncryptionByDefault.kmsMasterKeyID=kmsAliasKeyID;
AWSS3服务器加密配置*配置=
[AWSS3服务器加密配置新];
configuration.rules=@[规则];
AWSS3PutbucketeEncryptionRequest*请求=
[AWSS3Putbucketencryptionrequest new];
request.bucket=bucketObject.name;
request.serversideencryptionconfiguration=配置;
[客户端PutbacketenCryption:请求];
}
这看起来是可行的,显示我的bucket有默认加密。但是,它并没有指定加密是KMS,它只是显示了一个启用加密的复选标记(查看控制台时)。
当我以编程方式检查加密的状态时,它没有为ssealgorithm指定任何内容:
<awss3服务器加密配置:0x604000008790>。{
规则=(
“<awss3服务器加密规则:0x6040000087f0>\n”
)(二)
}
我希望显示ssealgorithm的输出是2,基于awss3服务器加密在awsssdk中的定义:
awss3服务器加密:
AWSS3服务器加密未知,
AWSS3服务器加密256,
AWSS3服务器加密WSKMS,
当我使用SSE-S3(awss3serversideencryptions256)执行相同代码时比较输出,输出为:
<awss3服务器加密配置:0x6000000009c40>。{
规则=(
“<awss3服务器加密规则:0x6000000009c50>\n
applyserverSideEncryptionByDefault=\“<awss3服务器端加密ByDefault:0x60000022B6A0>\n sseAlgorithm=1;\\n \”“;\n”
)(二)
}
有人能看到我在正确使用KMS作为整个bucket的默认加密的请求中缺少的内容吗?
谢谢。干杯,特隆德
}
这看起来是可行的,显示我的bucket有默认加密。但是,它并没有指定加密是KMS,它只是显示了一个启用加密的复选标记(查看控制台时)。
当我以编程方式检查加密的状态时,它没有为ssealgorithm指定任何内容:
<AWSS3ServerSideEncryptionConfiguration: 0x604000008790> {
rules = (
"<AWSS3ServerSideEncryptionRule: 0x6040000087f0> {\n}"
);
}
我希望显示ssealgorithm的输出为2,基于awss3服务器加密在awsssdk中的定义:
AWSS3ServerSideEncryption:
AWSS3ServerSideEncryptionUnknown,
AWSS3ServerSideEncryptionAES256,
AWSS3ServerSideEncryptionAwsKms,
当我使用SSE-S3(awss3serversideencryptions256)执行相同代码时,比较输出时,输出为:
<AWSS3ServerSideEncryptionConfiguration: 0x600000009c40> {
rules = (
"<AWSS3ServerSideEncryptionRule: 0x600000009c50> {\n
applyServerSideEncryptionByDefault = \"<AWSS3ServerSideEncryptionByDefault: 0x60000022b6a0> {\\n SSEAlgorithm = 1;\\n}\";\n}"
);
}
有人能看到我在正确使用KMS作为整个bucket的默认加密的请求中缺少的内容吗?
谢谢。干杯,特隆德