2017-04-04 87 views
2

我正尝试从使用java的参数存储中读取AWS参数,我已使用自定义加密密钥创建了参数。我没有在互联网上看到它使用自定义KMS密钥的示例代码,下面是我现在正在使用的代码(这里我们使用默认的KMS密钥)。使用自定义KMS密钥访问AWS参数存储值

AWSSimpleSystemsManagement client= AWSSimpleSystemsManagementClientBuilder.defaultClient(); 
    GetParametersRequest request= new GetParametersRequest(); 
    request.withNames("test.username","test.password") 
      .setWithDecryption(true); 

这将给予默认的KMS密钥结果 有谁知道如何处理这一点,如果我们有关键

+0

能否请你/加全样本进行读取修改AWS参数店在这个 – Jammer

回答

4

对于GetParameters API定制KMS,有使用默认的KMS密钥或自定义的KMS没有区别键。它总是像你的代码一样工作。只要确保凭证的权限包含自定义密钥即可。

只有在PutParameter API的差异使用默认KMS密钥时,您不需要指定它,使用自定义KMS密钥时,您将其KeyId设置为自定义密钥。 keyid的可以是以下的实施例之一:

  • 密钥ARN例ARN:AWS:公里:我们 - 东 - 1:123456789012:键/ 12345678-1234-1234-1234-123456789012
  • 别名ARN实施例 - 阿尔恩:AWS:公里:美国东部-1:123456789012:别名/ MyAliasName
  • 全局唯一密钥ID示例 - 12345678-1234-1234-1234-123456789012
  • 别名示例 - 别名/ MyAliasName
+0

你是对的没有得到任何工作的样品,在使用默认密钥或自定义键没有区别。 –

+0

有趣的BC当前不允许放置一个ARN – Matt

4

为了以防万一,如果有人在寻找这个(使用默认加密密钥)

protected Parameter getParameterFromSSMByName(String parameterKey) 
    { 
    AWSCredentialsProvider credentials = InstanceProfileCredentialsProvider.getInstance(); 
    AWSSimpleSystemsManagement simpleSystemsManagementClient = (AWSSimpleSystemsManagement)((AWSSimpleSystemsManagementClientBuilder)((AWSSimpleSystemsManagementClientBuilder)AWSSimpleSystemsManagementClientBuilder.standard().withCredentials(credentials)).withRegion("us-east-1")).build(); 
    GetParameterRequest parameterRequest = new GetParameterRequest(); 
    parameterRequest.withName(parameterKey).setWithDecryption(Boolean.valueOf(true)); 
    GetParameterResult parameterResult = simpleSystemsManagementClient.getParameter(parameterRequest); 
    return parameterResult.getParameter(); 
    } 
相关问题