アマゾン ウェブ サービス - EMR クラスターから AWS Paramstore からパラメータを取得する方法

okwaves2024-01-25  7

EMR を使用しています。 Spark ジョブを送信する前に、AWS Param ストアから設定パラメータを取得し (Java プログラムを作成しました)、ファイルを作成して、それを Spark-submit で使用しようとしています。

aws-java-sdk-ssm API を使用して param ストアからパラメータを取得しています。

マスターノードでこのプログラムを実行しようとすると、パラメータを取得するために aws ssm に接続するためのトークン (.aws/configure/credentials) が必要になります。

認証情報なしで S3 バケットにアクセスできますが、param ストアにはアクセスできません。

コンコース パイプラインから EMR クラスターをスピンアップしています。

以下は、paramstore からパラメータを取得するために作成したメソッドです。

private static List<Parameter> getParametersFromAWSParamStore(String path, String awsRegion){
        List<Parameter> paramList = new ArrayList<>();

        AWSSimpleSystemsManagement client = AWSSimpleSystemsManagementClientBuilder.standard().withRegion(awsRegion).build();
        GetParametersByPathRequest request = new GetParametersByPathRequest();
        request.withRecursive(true);
        request.withPath(path);
        request.setWithDecryption(true);
        GetParametersByPathResult result = null;
        do {
            result = client.getParametersByPath(request);
            paramList.addAll(result.getParameters());
        }while( result.getNextToken() !=null && !result.getNextToken().isEmpty());
        return paramList;
    }

どのようなエラーが発生しますか?

– ヨルダン

2020 年 9 月 4 日 22:47

それはポリシーに関連していると思います。ポリシーをアタッチして試したら、ここで更新します。権限エラーが発生しました。

– サンジーブ

2020 年 9 月 4 日 23:53

@Sanjeev ポリシーを更新した後、この問題を解決できましたか?

– エディ・ベジャウイ

2020 年 9 月 6 日 19:39

はい。うまくいきました。更新が遅れて申し訳ありません。

– サンジーブ

2020 年 9 月 7 日 20:24



------------------------

このプログラムを実行する IAM ロールに ssm: getParametersByPath ポリシーがあることを確認する必要があります。

以前はポリシーが欠落していたため、ポリシーを実行できませんでした。プロパティを取得します。

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。