AWS SDK GetParameter 使用 roleArn 而不是

问题描述

我正在尝试使用 AWS 开发工具包 Java 调用 AWS ParameterStore (GetParameter),但无法实现。

我有 roleArn 但没有 accessKey,secretKey 所以我假设我必须使用 askRole 并获得获取参数的访问权限。

我看到此代码使用来自用户主目录的配置属性,但是我如何让它使用我的 roleArn 访问 AWS

 package aws_sdk_java.aws;

import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;




import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.ssm.SsmClient;
import software.amazon.awssdk.services.ssm.model.GetParameterRequest;
import software.amazon.awssdk.services.ssm.model.GetParameterResponse;
import software.amazon.awssdk.services.ssm.model.SsmException;

public class App {

    public static void main(String[] args) {

        final String USAGE = "\n" +
                "Usage:\n" +
                "    GetParameter <paraName>\n\n" +
                "Where:\n" +
                "    paraName - the name of the parameter.\n";

        if (args.length != 1) {
            System.out.println(USAGE);
            System.exit(1);
        }

        String paraName = "Test";
        Region region = Region.US_WEST_2;

        SsmClient ssmClient = SsmClient.builder()
                .region(region)
                .build();

        getParaValue(ssmClient,paraName);
        ssmClient.close();
    }

    public static void getParaValue(SsmClient ssmClient,String paraName) {

        try {
            GetParameterRequest parameterRequest = GetParameterRequest.builder()
                .name(paraName)
                .build();

            GetParameterResponse parameterResponse = ssmClient.getParameter(parameterRequest);
            System.out.println("The parameter value is "+parameterResponse.parameter().value());

        } catch (SsmException e) {
        System.err.println(e.getMessage());
        System.exit(1);
        }
   }
}

所以基本上将上面的代码切换为使用 roleARN 并获取参数。有人可以帮我吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)