Amazon Simple Storage Service
개발자 안내서 (API 버전 2006-03-01)

AWS SDK, CLI 및 Explorer 사용

Amazon S3로 애플리케이션을 개발할 때 AWS SDK를 사용할 수 있습니다. AWS SDK에서는 기본 REST API를 래핑하여 프로그래밍 작업을 단순화합니다. 또한 AWS를 사용하여 커넥티드 모바일 애플리케이션과 웹 애플리케이션을 빌드하는 데에 AWS Mobile SDK와 AWS Amplify JavaScript 라이브러리를 사용할 수 있습니다.

이 단원에서는 Amazon S3 애플리케이션을 개발하기 위한 AWS SDK 사용 개요를 제공합니다. 또한 이 단원에서는 이 가이드에 제공된 AWS SDK 코드 예제를 테스트할 수 있는 방법을 설명합니다.

AWS SDK에 추가로, Visual Studio 및 Eclipse for Java IDE에서 AWS Explorer를 사용할 수 있습니다. 이 경우 SDK 및 Explorer가 AWS Toolkit으로 함께 번들 제공됩니다.

AWS 명령줄 인터페이스(AWS CLI)를 사용하여 Amazon S3 버킷과 객체를 관리할 수도 있습니다.

AWS Toolkit for Eclipse

AWS Toolkit for Eclipse에는 AWS SDK for Java 및 Eclipse용 AWS Explorer가 모두 포함되어 있습니다. AWS Explorer for Eclipse는 AWS를 사용하여 개발자가 쉽게 Java 애플리케이션을 개발, 디버깅 및 배포할 수 있도록 하는 Eclipse for Java IDE용 오픈 소스 플러그인입니다. 사용이 간편한 GUI를 통해 Amazon S3를 비롯한 AWS 인프라에 대한 액세스 및 관리가 가능합니다. 애플리케이션을 개발하면서 동시에 버킷 및 객체 관리, IAM 정책 설정과 같은 공통적인 작업을 Eclipse for Java IDE의 컨텍스트 내에서 모두 수행할 수 있습니다. 설치 지침은 Set up the Toolkit을 참조하십시오. Explorer 사용 예제는 How to Access AWS Explorer 단원을 참조하십시오.

AWS Toolkit for Visual Studio

AWS Explorer for Visual Studio는 Microsoft Visual Studio용 확장 프로그램입니다. 이를 통해 Amazon Web Services를 사용하여 .NET 애플리케이션을 쉽게 개발하고 디버깅하여 배포할 수 있습니다. 사용이 간편한 GUI를 통해 Amazon S3를 비롯한 AWS 인프라에 대한 액세스 및 관리가 가능합니다. 애플리케이션을 개발하면서 동시에 버킷 및 객체 관리, IAM 정책 설정과 같은 공통적인 작업을 Visual Studio의 컨텍스트 내에서 모두 수행할 수 있습니다. 설정 지침은 AWS Toolkit for Visual Studio 설정을 참조하십시오. Explorer를 사용한 Amazon S3 사용 예제는 AWS Explorer에서 Amazon S3 사용하기를 참조하십시오.

AWS SDK

SDK만 다운로드할 수 있습니다. SDK 라이브러리 다운로드에 대한 정보는 Sample Code & Libraries 단원을 참조하십시오.

AWS CLI

AWS CLI는 Amazon S3를 비롯한 AWS 서비스를 관리하는 통합 도구입니다. AWS CLI 다운로드에 대한 자세한 내용은 AWS Command Line Interface 단원을 참조하십시오.

요청 인증에서 서명 버전 지정

Amazon S3는 대부분의 AWS 리전에서 AWS 서명 버전 4만 지원합니다. 일부 이전 AWS 리전에서는 Amazon S3가 서명 버전 4와 서명 버전 2를 모두 지원합니다. 하지만 서명 버전 2는 사용 중단 과정에 있으며 서명 버전 2에 대한 최종 지원은 2019년 6월 24일에 종료합니다. 서명 버전 2 지원 중단에 대한 자세한 내용은 Amazon S3에서 AWS 서명 버전 2 사용 중단 단원을 참조하십시오.

모든 Amazon S3 리전과 지원되는 서명 버전의 목록은 AWS 일반 참조리전 및 엔드포인트를 참조하십시오.

모든 AWS 리전에서 AWS SDK는 요청 인증에 서명 버전 4를 기본적으로 사용합니다. 2016년 5월 이전에 배포된 AWS SDK를 사용하는 경우에는 다음 표에 있는 서명 버전 4를 요청해야 할 수도 있습니다.

SDK 요청 인증을 위한 서명 버전 4 요청
AWS CLI

기본 프로필의 경우 다음 명령을 실행합니다:

$ aws configure set default.s3.signature_version s3v4

사용자 지정 프로필의 경우 다음 명령을 실행합니다:

$ aws configure set profile.your_profile_name.s3.signature_version s3v4
Java SDK

코드에 다음을 추가합니다:

System.setProperty(SDKGlobalConfiguration.ENABLE_S3_SIGV4_SYSTEM_PROPERTY, "true");

또는, 명령줄에 다음을 지정합니다:

-Dcom.amazonaws.services.s3.enableV4
JavaScript SDK

클라이언트 생성 시에 signatureVersion 파라미터를 v4로 설정합니다:

var s3 = new AWS.S3({signatureVersion: 'v4'});
PHP SDK

Amazon S3 서비스 클라이언트 생성 시 signature 파라미터를 v4로 설정합니다.

<?php $s3 = new S3Client(['signature' => 'v4']);
Python-Boto SDK

기본 config 파일인 boto 파일에 다음을 지정합니다:

[s3] use-sigv4 = True
Ruby SDK

Ruby SDK - 버전 1: 클라이언트 생성 시에 :s3_signature_version 파라미터를 :v4로 설정합니다:

s3 = AWS::S3::Client.new(:s3_signature_version => :v4)

Ruby SDK - 버전 3: 클라이언트 생성 시에 signature_version 파라미터를 v4로 설정합니다:

s3 = Aws::S3::Client.new(signature_version: 'v4')
.NET SDK

Amazon S3 클라이언트를 만들기 전에 다음을 코드에 추가합니다.

AWSConfigsS3.UseSignatureVersion4 = true;

또는, config 파일에 다음을 추가합니다:

<appSettings> <add key="AWS.S3.UseSignatureVersion4" value="true" /> </appSettings>

 

Amazon S3에서 AWS 서명 버전 2 사용 중단

서명 버전 2는 Amazon S3에서 사용 중단 과정에 있으며 서명 버전 2에 대한 최종 지원은 2019년 6월 24일에 종료합니다. 2019년 6월 24일 이후로는 Amazon S3가 서명 버전 4를 사용하여 서명된 API 요청만 수락합니다.

이 단원에서는 서명 버전 2 지원 종료에 대해 자주 묻는 질문에 답변합니다.

서명 버전 2/4란 무엇이며, 요청 서명은 무엇을 의미합니까?

서명 버전 2 또는 서명 버전 4 서명 프로세스는 Amazon S3 API 요청을 인증하는 데 사용됩니다. 요청 서명은 Amazon S3가 요청을 전송하는 사용자를 식별하고 요청을 악의적 사용자로부터 보호할 수 있게 해줍니다.

AWS 요청 서명에 대한 자세한 내용은 AWS General Reference에서 AWS API 요청에 서명을 참조하십시오.

무엇을 업데이트합니까?

AWS는 현재 서명 버전 2 및 서명 버전 4 프로세스를 사용하여 서명된 Amazon S3 API 요청만 지원합니다. 2019년 6월 24일 이후로는 Amazon S3가 서명 버전 4를 사용하여 서명된 요청만 수락합니다.

AWS 요청 서명에 대한 자세한 내용은 AWS General Reference에서 서명 버전 4 변경 사항을 참조하십시오.

업데이트하는 이유는 무엇입니까?

서명 버전 4는 보안 액세스 키 대신 서명 키를 사용하여 개선된 보안을 제공합니다. 서명 버전 4는 현재 모든 AWS 리전에서 지원되는 반면, 서명 버전 2는 2014년 1월 이전에 출범한 리전에서만 지원됩니다. 이 업데이트를 통해 AWS에서는 모든 리전에서 보다 일관된 경험을 제공할 수 있습니다.

서명 버전 4를 사용 중인지 확인하려면 어떻게 해야 하고 무엇을 업데이트해야 합니까?

요청을 서명하는 데 사용되는 서명 버전은 일반적으로 클라이언트 측에서 도구 또는 SDK에 의해 설정됩니다. 기본적으로 최신 버전의 AWS SKD는 서명 버전 4를 사용합니다. 타사 소프트웨어의 경우, 소프트웨어 담당 지원 팀에 연락하여 필요한 버전을 확인하십시오. Amazon S3로 직접 REST 호출을 전송하는 경우, 서명 버전 4 서명 프로세스를 사용하여 애플리케이션을 수정해야 합니다.

서명 버전 4로 전환 시 사용할 AWS SDK 버전에 대한 정보는 서명 버전 2에서 서명 버전 4로 전환 단원을 참조하십시오.

Amazon S3 REST API를 통한 서명 버전 4 사용에 대한 자세한 내용은 Amazon Simple Storage Service API Reference에서 요청 인증(AWS 서명 버전 4)을 참조하십시오.

업데이트하지 않으면 어떻게 됩니까?

2019년 6월 24일 이후 서명 버전 2로 서명하여 작성된 요청은 Amazon S3에서 인증이 실패합니다. 요청자에게 서명 버전 4를 사용하여 요청에 서명해야 한다는 오류가 표시됩니다.

7일 이상 동안 서명하도록 요구하는 미리 서명된 URL을 사용하는 데도 전환이 필요합니까?

7일 이상 동안 서명하도록 요구하는 미리 서명된 URL을 사용하는 경우 현재 아무 조치도 필요하지 않습니다. 계속해서 AWS 서명 버전 2를 사용하여 미리 서명된 URL을 서명 및 인증할 수 있습니다. 추후 미리 서명된 URL 시나리오에서 서명 버전 4로 전환하는 자세한 방법을 안내하도록 하겠습니다.

추가 정보

서명 버전 2에서 서명 버전 4로 전환

현재 Amazon S3 API 요청 인증에 서명 버전 2를 사용 중인 경우 서명 버전 4로 전환해야 합니다. Amazon S3에서 AWS 서명 버전 2 사용 중단에서 설명한 대로 서명 버전 2에 대한 지원이 종료할 예정입니다.

Amazon S3 REST API를 통한 서명 버전 4 사용에 대한 자세한 내용은 Amazon Simple Storage Service API Reference에서 요청 인증(AWS 서명 버전 4)을 참조하십시오.

다음 표에는 필수 최소 버전으로 서명 버전 4(SigV4)를 사용하는 SDK가 나열되어 있습니다. 
AWS Java, JavaScript(Node.js) 또는 Python (Boto/CLI) SDK를 통해 미리 서명된 URL을 사용 중인 경우 올바른 AWS 리전을 설정하고 클라이언트 구성에서 서명 버전 4를 설정해야 합니다. 클라이언트 구성에서 SigV4 설정에 대한 자세한 내용은 요청 인증에서 서명 버전 지정 단원을 참조하십시오.

현재 사용 중인 SDK/제품 업그레이드할 SDK 버전 Sigv4를 사용하려면 클라이언트에서 코드를 변경해야 합니까? SDK 설명서 링크

AWS SDK for Java v1

2018년 Q4에 Java 1.11.x 또는 v2로 업그레이드. 요청 인증에서 서명 버전 지정

AWS SDK for Java v2(프리뷰)

SDK 업그레이드가 필요하지 않음. 아니요 AWS SDK for Java

.NET용 AWS SDK v1

3.1.10 이상으로 업그레이드. .NET용 AWS SDK

.NET용 AWS SDK v2

3.1.10 이상으로 업그레이드. 아니요 .NET용 AWS SDK v2

.NET용 AWS SDK v3

SDK 업그레이드가 필요하지 않음. .NET용 AWS SDK v3

AWS SDK for JavaScript v1

현재 아무 조치도 필요하지 않음. 2019년 Q3에 메이저 버전 V3로 업그레이드. AWS SDK for JavaScript

AWS SDK for JavaScript v2

2.68.0 이상으로 업그레이드. AWS SDK for JavaScript

AWS SDK for JavaScript v3

현재 아무 조치도 필요하지 않음. 2019년 Q3에 메이저 버전 V3로 업그레이드. 아니요 AWS SDK for JavaScript

PHP용 AWS SDK v1

메이저 버전 V3로 업그레이드. PHP용 AWS SDK

PHP용 AWS SDK v2

메이저 버전 V3로 업그레이드. PHP용 AWS SDK

PHP용 AWS SDK v3

SDK 업그레이드가 필요하지 않음. 아니요 PHP용 AWS SDK

Boto2

Boto2 v2.49.0으로 업그레이드. Boto 2 업그레이드

Boto 3

1.5.71(Botocore), 1.4.6(Boto3)으로 업그레이드. Boto 3 - Python용 AWS SDK

AWS CLI

1.11.108로 업그레이드. AWS 명령줄 인터페이스

AWS CLI v2(프리뷰)

SDK 업그레이드가 필요하지 않음. 아니요 AWS 명령줄 인터페이스 버전 2

Ruby용 AWS SDK v1

Ruby V3로 업그레이드. AWS용 Ruby V3

Ruby용 AWS SDK v2

Ruby V3로 업그레이드. AWS용 Ruby V3

Ruby용 AWS SDK v3

SDK 업그레이드가 필요하지 않음. 아니요 AWS용 Ruby V3

Go

SDK 업그레이드가 필요하지 않음. 아니요 Go용 AWS SDK

C++

SDK 업그레이드가 필요하지 않음. 아니요 C++용 AWS SDK

Windows PowerShell용 AWS 도구 또는 AWS Tools for PowerShell Core

3.3.99 이전의 모듈 버전을 사용하는 경우 3.3.99로 업그레이드해야 합니다.

버전 정보를 확인하려면 Get-Module cmdlet을 사용합니다.

Get-Module –Name AWSPowershell Get-Module –Name AWSPowershell.NetCore

3.3.99 버전을 업데이트하려면 Update-Module cmdlet을 사용합니다.

Update-Module –Name AWSPowershell Update-Module –Name AWSPowershell.NetCore

서명 버전 2 트래픽을 전송하는 데 7일간 유효한 미리 서명된 URL을 사용할 수 있습니다.