ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring] AWS 자격증명 정보를 사용하는 2가지 방법
    legacy/Spring 2024. 4. 19. 16:19

    EC2 IAM에 등록된 자격 증명 사용하기

    패키지 정보 확인하기
    import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;
    import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClientBuilder;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider;
    import software.amazon.awssdk.regions.Region;
    import software.amazon.awssdk.services.s3.S3Client;
    import software.amazon.awssdk.services.s3.presigner.S3Presigner;
    
    @Configuration
    public class AmazonS3Config {
    
        @Value("${aws.region}")
        private String region;
        @Value("${aws.access-key}")
        private String accessKey;
        @Value("${aws.secret-key}")
        private String secretKey;
    
        @Bean
        public S3Client s3Client() {
            return S3Client.builder()
                .credentialsProvider(InstanceProfileCredentialsProvider.create())
                .region(Region.of(region))
                .build();
        }
    
        @Bean
        public S3Presigner presigner() {
            return S3Presigner.builder()
                .credentialsProvider(InstanceProfileCredentialsProvider.create())
                .region(Region.of(region))
                .build();
        }
    
        @Bean
        public AmazonSimpleEmailService amazonSimpleEmailService() {
            return AmazonSimpleEmailServiceClientBuilder.standard()
                .withCredentials(com.amazonaws.auth.InstanceProfileCredentialsProvider.getInstance())
                .withRegion(region)
                .build();
        }
    }

     

    자격 증명 직접 사용하기

    패키지 정보 확인하기
    import com.amazonaws.auth.AWSStaticCredentialsProvider;
    import com.amazonaws.auth.BasicAWSCredentials;
    import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;
    import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClientBuilder;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider;
    import software.amazon.awssdk.regions.Region;
    import software.amazon.awssdk.services.s3.S3Client;
    import software.amazon.awssdk.services.s3.presigner.S3Presigner;
    
    @Configuration
    public class AmazonS3Config {
    
        @Value("${aws.region}")
        private String region;
        @Value("${aws.access-key}")
        private String accessKey;
        @Value("${aws.secret-key}")
        private String secretKey;
    
        @Bean
        public S3Client s3Client() {
            return S3Client.builder()
                .credentialsProvider(InstanceProfileCredentialsProvider.create())
                .region(Region.of(region))
                .build();
        }
    
        @Bean
        public S3Presigner presigner() {
            return S3Presigner.builder()
                .credentialsProvider(InstanceProfileCredentialsProvider.create())
                .region(Region.of(region))
                .build();
        }
    
        @Bean
        public AmazonSimpleEmailService amazonSimpleEmailService() {
            return AmazonSimpleEmailServiceClientBuilder.standard()
                .withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials(accessKey, secretKey)))
                .withRegion(region)
                .build();
        }
    }

     


    전체 코드 : 깃허브

Designed by Tistory.