【问题标题】:Where do I find the "endpoint" parameter to integrate AWS Secrets?在哪里可以找到集成 AWS Secrets 的“端点”参数?
【发布时间】:2021-07-24 01:35:08
【问题描述】:

我是 AWS SDK 领域的新手,我的第一个项目是使用 Spring 应用程序从秘密中收集信息。

我一直在使用这个文档https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/manage-credentials-using-aws-secrets-manager.html 代码都很好,但我无法理解的是“端点”,我在 AWS Web 控制台中的哪里可以找到这些信息?它是公司可以个性化的东西吗?

这将是第一个合作项目...在此先感谢您的帮助。

【问题讨论】:

    标签: java amazon-web-services


    【解决方案1】:

    如果您在 Spring 项目中使用 Secret Manager,请使用 Secret Manager Java API V2。您引用的主题使用旧的 V1 代码,需要更新到 V2。

    您可以在此处的 Java V2 Github 存储库中找到 V2 示例:

    https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javav2/example_code/secretsmanager

    您可以使用亚马逊管理控制台在此处获取您的秘密:

    https://console.aws.amazon.com/secretsmanager/home?region=us-east-1#!/listSecrets

    要收集秘密,您需要查看以下代码:

    package com.example.secrets;
    
    //snippet-start:[secretsmanager.java2.get_secret.import]
    import software.amazon.awssdk.regions.Region;
    import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
    import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueRequest;
    import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueResponse;
    import software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException;
    //snippet-end:[secretsmanager.java2.get_secret.import]
    
    /**
     * To run this AWS code example, ensure that you have setup your development environment, including your AWS credentials.
     *
     * For information, see this documentation topic:
     *
     *https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
     */
    
    public class GetSecretValue {
    
        public static void main(String[] args) {
    
            final String USAGE = "\n" +
                    "Usage:\n" +
                    "    GetSecretValue  <secretName> \n\n" +
                    "Where:\n" +
                    "    secretName - the name of the secret (for example, tutorials/MyFirstSecret). \n";
    
            if (args.length != 1) {
                System.out.println(USAGE);
                System.exit(1);
            }
    
            String secretName = args[0];
            Region region = Region.US_EAST_1;
            SecretsManagerClient secretsClient = SecretsManagerClient.builder()
                    .region(region)
                    .build();
    
            getValue(secretsClient, secretName);
            secretsClient.close();
        }
    
        //snippet-start:[secretsmanager.java2.get_secret.main]
        public static void getValue(SecretsManagerClient secretsClient,String secretName) {
    
            try {
                GetSecretValueRequest valueRequest = GetSecretValueRequest.builder()
                    .secretId(secretName)
                    .build();
    
                GetSecretValueResponse valueResponse = secretsClient.getSecretValue(valueRequest);
                String secret = valueResponse.secretString();
                System.out.println(secret);
    
            } catch (SecretsManagerException e) {
                System.err.println(e.awsErrorDetails().errorMessage());
                System.exit(1);
            }
        }
        //snippet-end:[secretsmanager.java2.get_secret.main]
    } 
    

    【讨论】:

    • 嘿伙计,感谢您对版本的了解。我已经为你推荐的这个改了!
    【解决方案2】:

    这是 AWS Secrets Manager 的 the list of public endpoints。您可以为您正在使用的 AWS 区域选择一个。如果您没有使用 VPC 终端节点,那么您可以将其留空或 null,AWS 开发工具包应该会根据区域自动选择终端节点。

    【讨论】:

      猜你喜欢
      • 2018-05-05
      • 1970-01-01
      • 1970-01-01
      • 2015-06-21
      • 2020-01-30
      • 1970-01-01
      • 2017-02-18
      • 1970-01-01
      • 2017-04-17
      相关资源
      最近更新 更多