[JAVA] Tester le traitement avec AWS KMS sur un PC local

Un mémo lors du test du traitement à l'aide de KMS sur un PC local.

Les choses nécessaires

Source ici

Procédure d'exécution

1. Préparation de local-kms

Démarrez les local-kms appelés à partir du kit AWS SDK dans le conteneur.

Puisque nous allons tester le cryptage et le décryptage cette fois, définissez la clé utilisée pour le cryptage. Créez un fichier seed.yaml avec le document local-kms tel quel.

Keys:
  - Metadata:
      KeyId: bc436485-5092-42b8-92a3-0aa8b93536dc
    BackingKeys:
      - 5cdaead27fe7da2de47945d73cd6d79e36494e73802f3cd3869f1d2cb0b5d7a9

Aliases:
  - AliasName: alias/testing
    TargetKeyId: bc436485-5092-42b8-92a3-0aa8b93536dc

Après avoir créé yaml, démarrez local-kms.

docker run -p 8080:8080 \
--mount type=bind,source="$(pwd)"/init,target=/init \
nsmithuk/local-kms

2. Préparation du kit AWS SDK

Spécifie d'accéder aux kms locaux à partir de la configuration du point de terminaison lors de la création d'une instance KMSClient. La région peut être n'importe quoi.

    //Spécifier le KMS local pour Endpoint.La région est OK n'importe où
    AwsClientBuilder.EndpointConfiguration endpointConfig =
        new AwsClientBuilder.EndpointConfiguration("http://localhost:8080/", "ap-northeast-1");

    kmsClient = AWSKMSClientBuilder.standard().withEndpointConfiguration(endpointConfig).build();

Après cela, appelez la méthode nécessaire à partir du KMSClient généré. local-kms effectue le chiffrement et le déchiffrement tout comme KMS. Vous pouvez également enregistrer une clé client. C'est facile car vous n'avez pas besoin de déployer sur AWS ou de configurer KMS.

À propos, le journal appelé du côté des kms locaux ressemble à ceci. Le compte et la région semblent appropriés.

Encryption called: arn:aws:kms:eu-west-2:111122223333:key/bc436485-5092-42b8-92a3-0aa8b93536dc

référence

Recommended Posts

Tester le traitement avec AWS KMS sur un PC local
Connectez-vous à AWS RDS depuis l'environnement Docker sur votre PC local
[Ruby on Rails] Afficher le test avec RSpec
[Ruby on Rails] Test du contrôleur avec RSpec
[Ruby on Rails] Test de modèle avec RSpec
Créer un environnement avec Docker sur AWS