2017-04-04 86 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(); 
    } 
相關問題