SDK for Java 2.x を使用した Secrets Manager の例 - AWS SDK コードサンプル

Doc AWS SDK Examples リポジトリには、他にも SDK の例があります。 AWS GitHub

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SDK for Java 2.x を使用した Secrets Manager の例

次のコード例は、Secrets Manager で AWS SDK for Java 2.x を使用してアクションを実行し、一般的なシナリオを実装する方法を示しています。

アクションはより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、関連するシナリオやサービス間の例ではアクションのコンテキストが確認できます。

「シナリオ」は、同じサービス内で複数の関数を呼び出して、特定のタスクを実行する方法を示すコード例です。

各例には、 へのリンクが含まれています。このリンクには GitHub、コンテキスト内でコードをセットアップして実行する方法の手順が記載されています。

トピック

アクション

次の例で、Secrets Manager シークレットを作成する方法を示します。

SDK for Java 2.x
注記

については、こちらを参照してください GitHub。用例一覧を検索し、AWS コードサンプルリポジトリでの設定と実行の方法を確認してください。

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient; import software.amazon.awssdk.services.secretsmanager.model.CreateSecretRequest; import software.amazon.awssdk.services.secretsmanager.model.CreateSecretResponse; import software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class CreateSecret { public static void main(String[] args) { final String usage = """ Usage: <secretName> <secretValue>\s Where: secretName - The name of the secret (for example, tutorials/MyFirstSecret).\s secretValue - The secret value.\s """; if (args.length != 2) { System.out.println(usage); System.exit(1); } String secretName = args[0]; String secretValue = args[1]; Region region = Region.US_EAST_1; SecretsManagerClient secretsClient = SecretsManagerClient.builder() .region(region) .build(); String secretARN = createNewSecret(secretsClient, secretName, secretValue); System.out.println("The secret ARN is " + secretARN); secretsClient.close(); } public static String createNewSecret(SecretsManagerClient secretsClient, String secretName, String secretValue) { try { CreateSecretRequest secretRequest = CreateSecretRequest.builder() .name(secretName) .description("This secret was created by the AWS Secret Manager Java API") .secretString(secretValue) .build(); CreateSecretResponse secretResponse = secretsClient.createSecret(secretRequest); return secretResponse.arn(); } catch (SecretsManagerException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; } }
  • API の詳細については、「 API リファレンスCreateSecret」の「」を参照してください。 AWS SDK for Java 2.x

次の例で、Secrets Manager シークレットを削除する方法を示します。

SDK for Java 2.x
注記

については、こちらを参照してください GitHub。用例一覧を検索し、AWS コードサンプルリポジトリでの設定と実行の方法を確認してください。

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient; import software.amazon.awssdk.services.secretsmanager.model.DeleteSecretRequest; import software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class DeleteSecret { public static void main(String[] args) { final String usage = """ Usage: <secretName>\s Where: secretName - The name of the secret (for example, tutorials/MyFirstSecret).\s """; 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(); deleteSpecificSecret(secretsClient, secretName); secretsClient.close(); } public static void deleteSpecificSecret(SecretsManagerClient secretsClient, String secretName) { try { DeleteSecretRequest secretRequest = DeleteSecretRequest.builder() .secretId(secretName) .build(); secretsClient.deleteSecret(secretRequest); System.out.println(secretName + " is deleted."); } catch (SecretsManagerException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }
  • API の詳細については、「 API リファレンスDeleteSecret」の「」を参照してください。 AWS SDK for Java 2.x

次の例で、Secrets Manager シークレットを記述する方法を示します。

SDK for Java 2.x
注記

については、こちらを参照してください GitHub。用例一覧を検索し、AWS コードサンプルリポジトリでの設定と実行の方法を確認してください。

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient; import software.amazon.awssdk.services.secretsmanager.model.DescribeSecretRequest; import software.amazon.awssdk.services.secretsmanager.model.DescribeSecretResponse; import software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException; import java.time.Instant; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.time.format.FormatStyle; import java.util.Locale; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class DescribeSecret { public static void main(String[] args) { final String usage = """ Usage: <secretName>\s Where: secretName - The name of the secret (for example, tutorials/MyFirstSecret).\s """; 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(); describeGivenSecret(secretsClient, secretName); secretsClient.close(); } public static void describeGivenSecret(SecretsManagerClient secretsClient, String secretName) { try { DescribeSecretRequest secretRequest = DescribeSecretRequest.builder() .secretId(secretName) .build(); DescribeSecretResponse secretResponse = secretsClient.describeSecret(secretRequest); Instant lastChangedDate = secretResponse.lastChangedDate(); // Convert the Instant to readable date. DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT) .withLocale(Locale.US) .withZone(ZoneId.systemDefault()); formatter.format(lastChangedDate); System.out.println("The date of the last change to " + secretResponse.name() + " is " + lastChangedDate); } catch (SecretsManagerException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }
  • API の詳細については、「 API リファレンスDescribeSecret」の「」を参照してください。 AWS SDK for Java 2.x

次の例で、Secrets Manager シークレットの値を取得する方法を示します。

SDK for Java 2.x
注記

については、こちらを参照してください GitHub。用例一覧を検索し、AWS コードサンプルリポジトリでの設定と実行の方法を確認してください。

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; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html * * We recommend that you cache your secret values by using client-side caching. * * Caching secrets improves speed and reduces your costs. For more information, * see the following documentation topic: * * https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets.html */ public class GetSecretValue { public static void main(String[] args) { final String usage = """ Usage: <secretName>\s Where: secretName - The name of the secret (for example, tutorials/MyFirstSecret).\s """; 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(); } 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); } } }
  • API の詳細については、「 API リファレンスGetSecretValue」の「」を参照してください。 AWS SDK for Java 2.x

次の例で、Secrets Manager シークレットを一覧表示する方法を示します。

SDK for Java 2.x
注記

については、こちらを参照してください GitHub。用例一覧を検索し、AWS コードサンプルリポジトリでの設定と実行の方法を確認してください。

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient; import software.amazon.awssdk.services.secretsmanager.model.ListSecretsResponse; import software.amazon.awssdk.services.secretsmanager.model.SecretListEntry; import software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException; import java.util.List; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class ListSecrets { public static void main(String[] args) { Region region = Region.US_EAST_1; SecretsManagerClient secretsClient = SecretsManagerClient.builder() .region(region) .build(); listAllSecrets(secretsClient); secretsClient.close(); } public static void listAllSecrets(SecretsManagerClient secretsClient) { try { ListSecretsResponse secretsResponse = secretsClient.listSecrets(); List<SecretListEntry> secrets = secretsResponse.secretList(); for (SecretListEntry secret : secrets) { System.out.println("The secret name is " + secret.name()); System.out.println("The secret descreiption is " + secret.description()); } } catch (SecretsManagerException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }
  • API の詳細については、「 API リファレンスListSecrets」の「」を参照してください。 AWS SDK for Java 2.x

次のコード例は、シークレットを変更する方法を示しています。

SDK for Java 2.x
注記

については、こちらを参照してください GitHub。用例一覧を検索し、AWS コードサンプルリポジトリでの設定と実行の方法を確認してください。

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient; import software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException; import software.amazon.awssdk.services.secretsmanager.model.UpdateSecretRequest; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class UpdateSecret { public static void main(String[] args) { final String usage = """ Usage: <secretName> <secretValue> Where: secretName - The name of the secret (for example, tutorials/MyFirstSecret).\s secretValue - The secret value that is updated.\s """; if (args.length < 2) { System.out.println(usage); System.exit(1); } String secretName = args[0]; String secretValue = args[1]; Region region = Region.US_EAST_1; SecretsManagerClient secretsClient = SecretsManagerClient.builder() .region(region) .build(); updateMySecret(secretsClient, secretName, secretValue); secretsClient.close(); } public static void updateMySecret(SecretsManagerClient secretsClient, String secretName, String secretValue) { try { UpdateSecretRequest secretRequest = UpdateSecretRequest.builder() .secretId(secretName) .secretString(secretValue) .build(); secretsClient.updateSecret(secretRequest); } catch (SecretsManagerException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }
  • API の詳細については、「 API リファレンスUpdateSecret」の「」を参照してください。 AWS SDK for Java 2.x

次の例で、Secrets Manager シークレットに値を配置する方法を示します。

SDK for Java 2.x
注記

については、こちらを参照してください GitHub。用例一覧を検索し、AWS コードサンプルリポジトリでの設定と実行の方法を確認してください。

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient; import software.amazon.awssdk.services.secretsmanager.model.PutSecretValueRequest; import software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class PutSecret { public static void main(String[] args) { final String usage = """ Usage: <secretName> <secretValue> Where: secretName - The name of the secret (for example, tutorials/MyFirstSecret).\s secretValue - The text to encrypt and store in the new version of the secret.\s """; if (args.length < 2) { System.out.println(usage); System.exit(1); } String secretName = args[0]; String secretValue = args[1]; Region region = Region.US_EAST_1; SecretsManagerClient secretsClient = SecretsManagerClient.builder() .region(region) .build(); putSecret(secretsClient, secretName, secretValue); secretsClient.close(); } public static void putSecret(SecretsManagerClient secretsClient, String secretName, String secretValue) { try { PutSecretValueRequest secretRequest = PutSecretValueRequest.builder() .secretId(secretName) .secretString(secretValue) .build(); secretsClient.putSecretValue(secretRequest); System.out.println("A new version was created."); } catch (SecretsManagerException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }
  • API の詳細については、「 API リファレンスPutSecretValue」の「」を参照してください。 AWS SDK for Java 2.x