AWS Secrets Manager 使用 AWS-SDK Java 更新密钥请求
Posted
技术标签:
【中文标题】AWS Secrets Manager 使用 AWS-SDK Java 更新密钥请求【英文标题】:AWS Secrets Manager Update Secret Request Using AWS-SDK Java 【发布时间】:2019-12-01 12:27:15 【问题描述】:我想使用适用于 Java 的 AWS-SDK 更新 AWS 密钥管理器中现有密钥的密钥字符串。从示例请求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 ?
【问题讨论】:
【参考方案1】:是的,秘密 ID 可以是秘密的 arn 或名称
【讨论】:
【参考方案2】:client.updateSecret(updateSecretRequest);
我想你忘了添加这一行。你已经更新了你的秘密,现在你需要告诉客户更新它。
【讨论】:
【参考方案3】:Secret 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 ());
client.updateSecret(updateSecretRequest);
【讨论】:
以上是关于AWS Secrets Manager 使用 AWS-SDK Java 更新密钥请求的主要内容,如果未能解决你的问题,请参考以下文章
AWS Systems Manager Parameter Store 和 AWS Secrets Manager 之间的区别?
无法使用 Secrets Manager 密钥注册 AWS Batch 作业定义
使用 Terraform 将文件上传到 AWS Secrets Manager