AWS Secrets Manager使用AWS-SDK Java更新秘密请求

时间:2019-07-23 12:43:57

标签: java amazon-web-services aws-sdk aws-secrets-manager aws-sdk-java-2.0

我想使用适用于Java的AWS-SDK更新AWS Secrets Manager中的现有密钥的秘密字符串。从示例请求https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_UpdateSecret.html#API_UpdateSecret_Examples中,我可以得出结论,我需要在com.amazonaws.services.secretsmanager.model.UpdateSecretRequest中设置SecretId,但由于在创建机密时未提供任何SecretId,我感到困惑。 secretId是否等于SecretName?我可以使用UpdateSecretRequest.setSecretId(“ SecertName”)进行设置吗?还是有其他方法可以获取secretId?

2 个答案:

答案 0 :(得分:0)

是的秘密ID可以是秘密的arn或名称

答案 1 :(得分:0)

秘密ID是指秘密名称。没有什么被称为秘密的特定ID。

SecretId 指定要修改或要向其添加新版本的机密。您可以指定 Amazon资源名称(ARN)或密钥的友好名称

您可以编写如下示例代码来更新现有的秘密字符串:

String secretName = "tutorials/MySecondSecretFromProgram";
String secretDescription = "The Secret description I Updated using the AWS Sdk...";
String region = "us-east-2";

BasicAWSCredentials awsCreds = new BasicAWSCredentials("Your_access_key_id", "your_secret-access_key");
AWSSecretsManager client = AWSSecretsManagerClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(awsCreds)).withRegion (region).build();    
UpdateSecretRequest updateSecretRequest = new UpdateSecretRequest ().withSecretId (secretName);
updateSecretRequest.setDescription (secretDescription);
JSONObject secretValues = new JSONObject ();        
secretValues.put ("my_secret_label", "My_secret_label_Updated");
secretValues.put ("my_secret-value", "My_secret_value_Updated");
updateSecretRequest.setSecretString (secretValues.toString ());