L'autre jour, j'ai participé à un événement
** "Au fait, j'ai écrit un article pour chiffrer et télécharger dans un compartiment S3, mais j'ai utilisé une clé d'accès pour m'authentifier!" ** (Pas conforme aux meilleures pratiques de sécurité)
J'ai remarqué cela, alors j'ai décidé de le compléter.
** Chiffrement des données téléchargées vers S3 à l'aide du kit AWS SDK pour Java / SSE-KMS ** est une continuation.
· Dans IAM, cliquez sur ** Créer un nouveau rôle **.

-Sélectionnez ** "Amazon EC2" **.

-Cochez ** "Amazon S3 Full Access" ** et cliquez sur ** [Étape suivante] **.

-Entrez ** nom du rôle ** et cliquez sur ** [Créer un rôle] **.

-Sélectionnez la ** clé de cryptage ** utilisée pour le cryptage S3.

-Cliquez sur ** [Ajouter] ** de ** Utilisateur clé **.

-Sélectionnez le ** rôle IAM que vous avez créé ** et cliquez sur ** [Joindre] **.

-Attribuez le rôle IAM créé à ** l'instance EC2 cible **.

-Entrez / sélectionnez le ** nom du rôle IAM ** et cliquez sur ** Appliquer **.

-Si le processus réussit, démarrez (démarrez) l'instance EC2 cible et vérifiez que le rôle IAM est appliqué.

Pour le code Java, indiquez simplement les informations d'identification.
point de changement
public class S3Access {
    private static final String ENDPOINT_URL = "https://s3-ap-northeast-1.amazonaws.com";
    private static final String REGION       = "ap-northeast-1";
//  private static final String ACCESS_KEY   = "【clé d'accès】";
//  private static final String SECRET_KEY   = "[Clef secrète]";
    private static final String KMS_KEY_ID   = "[ID de clé KMS]";
(Omission)
    //--------------------------------------------------
    //Génération de clients
    //--------------------------------------------------
    private AmazonS3 getClient(String bucketName) throws Exception {
//      //Informations d'authentification
//      AWSCredentials credentials = new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY);
        //Paramètres du client
        ClientConfiguration clientConfig = new ClientConfiguration();
        clientConfig.setProtocol(Protocol.HTTPS);  //protocole
        clientConfig.setConnectionTimeout(10000);   //Délai de connection dépassé(ms) 
        //Réglage du point final
        EndpointConfiguration endpointConfiguration = new EndpointConfiguration(ENDPOINT_URL, REGION);
        //Génération de clients
        AmazonS3 client = AmazonS3ClientBuilder.standard()
//                      .withCredentials(new AWSStaticCredentialsProvider(credentials))
                        .withClientConfiguration(clientConfig)
                        .withEndpointConfiguration(endpointConfiguration).build();
(Omission)
** Supprimez la ligne commentée avec "//" au début de la ligne **.
Recommended Posts