我知道我在这里遗漏了一些东西,但是我很难理解AWS KMS中的客户主密钥概念。下面是示例代码。
创建主密钥的代码:
`CreateKeyRequest req = new CreateKeyRequest();
CreateKeyResult result = kmsClient.createKey(req);
String customerMasterKey = result.getKeyMetadata().getKeyId();`
使用客户主密钥创建数据密钥的代码:
`GenerateDataKeyRequest dataKeyRequest = new GenerateDataKeyRequest();
dataKeyRequest.setKeyId(customerMasterKey);
dataKeyRequest.setKeySpec("AES_128");
GenerateDataKeyResult dataKeyResult = kmsClient.generateDataKey(dataKeyRequest);`
现在,根据我的理解,每次我想对某些事物进行加密/解密时,都需要使用主密钥对加密的数据密钥进行解密。这意味着我需要将这两个密钥存储在某个位置。因此,如果其他人可以访问这两个密钥,他们是否可以使用AWS加密SDK解密我的数据?
答案 0 :(得分:1)
您的问题的答案是...如果发生未经授权的个人拥有您的主密钥ID和加密数据密钥的副本的情况,除非他们也有权访问您的AWS,否则他们将无法使用该主密钥。具有使用该主密钥的适当权限的用户凭据。