AWS SDK 및 Explorer를 사용하여 Amazon S3로 개발
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 Command Line Interface(AWS CLI)를 사용하여 Amazon S3 버킷과 객체를 관리할 수도 있습니다.
AWS Toolkit for Eclipse
AWS Toolkit for Eclipse에는 AWS 및 Eclipse용 AWS SDK for Java Explorer가 모두 포함되어 있습니다. AWS Explorer for Eclipse는 AWS를 사용하여 개발자가 쉽게 Java 애플리케이션을 개발, 디버깅 및 배포할 수 있도록 하는 Eclipse for Java IDE용 오픈 소스 플러그인입니다. 사용이 간편한 GUI를 통해 Amazon S3를 비롯한 AWS 인프라에 대한 액세스 및 관리가 가능합니다. 애플리케이션을 개발하면서 동시에 버킷 및 객체 관리, IAM 정책 설정과 같은 공통적인 작업을 Eclipse for Java IDE의 컨텍스트 내에서 모두 수행할 수 있습니다. 설치 지침은 도구 키트 설정 단원을 참조하십시오. Explorer 사용 예제는 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 라이브러리 다운로드에 대한 정보는 샘플 코드 라이브러리
AWS CLI
AWS CLI는 Amazon S3를 비롯한 AWS 서비스를 관리하는 통합 도구입니다. AWS CLI 다운로드에 대한 자세한 내용은 AWS Command Line Interface
AWS SDK와 함께 이 서비스 사용
다양한 프로그래밍 언어에 대해 AWS 소프트웨어 개발 키트(SDK)를 사용할 수 있습니다. 각 SDK는 개발자가 선호하는 언어로 애플리케이션을 쉽게 구축할 수 있도록 하는 API, 코드 예제 및 설명서를 제공합니다.
SDK 설명서 | 코드 예시 |
---|---|
가용성 예
필요한 항목을 찾을 수 없습니까? 이 페이지 하단의 피드백 제공 링크를 사용하여 코드 예제를 요청하세요.
요청 인증에서 서명 버전 지정
대부분의 AWS 리전에서는 Amazon S3가 AWS 서명 버전 4만 지원합니다. 일부 이전 AWS 리전에서는 Amazon S3가 서명 버전 4와 서명 버전 2를 모두 지원합니다. 그러나 서명 버전 2의 사용이 중지되고 있습니다(사용되지 않음). 서명 버전 2 지원 중단에 대한 자세한 내용은 AWSAmazon S3에서 서명 버전 2 사용 중지(사용되지 않음) 단원을 참조하십시오.
모든 Amazon S3 리전과 이 리전에서 지원하는 서명 버전의 목록은 AWS 일반 참조의 리전 및 엔드포인트를 참조하세요.
모든 AWS 리전에서 AWS SDK는 요청 인증에 서명 버전 4를 기본적으로 사용합니다. 2016년 5월 이전에 배포된 AWS SDK를 사용하는 경우에는 다음 표에 있는 서명 버전 4를 요청해야 할 수도 있습니다.
SDK | 요청 인증을 위한 서명 버전 4 요청 |
---|---|
AWS CLI |
기본 프로필의 경우 다음 명령을 실행합니다:
사용자 지정 프로필의 경우 다음 명령을 실행합니다:
|
Java SDK |
코드에 다음을 추가합니다:
또는, 명령줄에 다음을 지정합니다:
|
JavaScript SDK |
클라이언트 생성 시에
|
PHP SDK |
PHP SDK v2에 대한 Amazon S3 서비스 클라이언트 생성 시 다음과 같이
PHP SDK v3를 사용하는 경우 Amazon S3 서비스 클라이언트를 생성하는 동안
|
Python-Boto SDK |
기본 config 파일인 boto 파일에 다음을 지정합니다:
|
Ruby SDK |
Ruby SDK - 버전 1: 클라이언트 생성 시에
Ruby SDK - 버전 3: 클라이언트 생성 시에
|
.NET SDK |
Amazon S3 클라이언트를 만들기 전에 다음을 코드에 추가합니다.
또는, config 파일에 다음을 추가합니다:
|
AWSAmazon S3에서 서명 버전 2 사용 중지(사용되지 않음)
Amazon S3에서 서명 버전 2의 사용이 중지되고 있습니다(사용되지 않음). 그런 다음 Amazon S3는 서명 버전 4를 사용하여 서명된 API 요청만 수락합니다.
이 단원에서는 서명 버전 2 지원 종료에 대해 자주 묻는 질문에 답변합니다.
서명 버전 2/4란 무엇이며, 요청 서명은 무엇을 의미합니까?
서명 버전 2 또는 서명 버전 4 서명 프로세스는 Amazon S3 API 요청을 인증하는 데 사용됩니다. 요청 서명은 Amazon S3가 요청을 전송하는 사용자를 식별하고 악의적 사용자로부터 요청을 보호할 수 있게 해줍니다.
AWS 요청 서명에 대한 자세한 내용은 AWS 일반 참조의 AWS API 요청에 서명을 참조하세요.
무엇을 업데이트합니까?
현재 서명 버전 2와 서명 버전 4 프로세스를 사용하여 서명된 Amazon S3 API 요청을 지원합니다. 그 이후로는 Amazon S3가 서명 버전 4를 사용하여 서명된 요청만 수락합니다.
AWS 요청 서명에 대한 자세한 내용은 AWS 일반 참조에서 서명 버전 4의 변경 사항 섹션을 참조하세요.
업데이트하는 이유는 무엇입니까?
서명 버전 4는 보안 액세스 키 대신 서명 키를 사용하여 개선된 보안을 제공합니다. 서명 버전 4는 현재 모든 AWS 리전에서 지원되는 반면, 서명 버전 2는 2014년 1월 이전에 시작한 리전에서만 지원됩니다. 이번 업데이트를 통해 모든 리전에서 보다 일관된 경험을 제공할 수 있게 되었습니다.
서명 버전 4를 사용 중인지 확인하려면 어떻게 해야 하고 무엇을 업데이트해야 합니까?
요청을 서명하는 데 사용되는 서명 버전은 일반적으로 클라이언트 측에서 도구 또는 SDK에 의해 설정됩니다. 기본적으로 최신 버전의 AWS SDK는 서명 버전 4를 사용합니다. 타사 소프트웨어의 경우, 소프트웨어 담당 지원 팀에 연락하여 필요한 버전을 확인하십시오. Amazon S3로 직접 REST 호출을 전송하는 경우, 서명 버전 4 서명 프로세스를 사용하도록 애플리케이션을 수정해야 합니다.
서명 버전 4로 전환 시 사용할 AWS SDK 버전에 대한 정보는 서명 버전 2에서 서명 버전 4로 전환 섹션을 참조하세요.
Amazon S3 REST API에서 서명 버전 4를 사용하는 방법에 대한 자세한 내용은 Amazon Simple Storage Service API 참조의 요청 인증(AWS 서명 버전 4) 섹션을 참조하세요.
업데이트하지 않으면 어떻게 됩니까?
그 이후 서명 버전 2로 서명하여 작성된 요청은 Amazon S3에서 인증이 실패합니다. 요청자에게 서명 버전 4를 사용하여 요청에 서명해야 한다는 오류가 표시됩니다.
7일 이상 동안 서명하도록 요구하는 미리 서명된 URL을 사용하는 데도 전환이 필요합니까?
7일 이상 동안 서명하도록 요구하는 미리 서명된 URL을 사용하는 경우 현재 아무 조치도 필요하지 않습니다. 계속해서 AWS 서명 버전 2를 사용하여 미리 서명된 URL을 서명 및 인증할 수 있습니다. 추후 미리 서명된 URL 시나리오에서 서명 버전 4로 전환하는 자세한 방법을 안내하도록 하겠습니다.
추가 정보
-
서명 버전 4 사용에 대한 자세한 내용은 AWS API 요청에 서명 섹션을 참조하세요.
-
서명 버전 2와 서명 버전 4 간 변경 사항의 목록은 서명 버전 4의 변경 사항을 참조하십시오.
-
AWS 포럼에서 게시물 Amazon S3 API 요청 서명을 위해 AWS 서명 버전 2를 대체하는 AWS 서명 버전 4
를 읽어 보세요. -
추가 문의 사항은 AWS Support로 문의하세요.
서명 버전 2에서 서명 버전 4로 전환
현재 Amazon S3 API 요청 인증에 서명 버전 2를 사용 중인 경우 서명 버전 4로 전환해야 합니다. AWSAmazon S3에서 서명 버전 2 사용 중지(사용되지 않음)에서 설명한 대로 서명 버전 2에 대한 지원이 종료될 예정입니다.
Amazon S3 REST API에서 서명 버전 4를 사용하는 방법에 대한 자세한 내용은 Amazon Simple Storage Service API 참조의 요청 인증(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 |
Java 1.11.201+ 또는 v2로 업그레이드합니다. | 예 | 요청 인증에서 서명 버전 지정 |
AWS SDK for Java v2 |
SDK 업그레이드가 필요하지 않음. | 아니요 | AWS SDK for Java |
AWS SDK for .NET v1 |
3.1.10 이상으로 업그레이드. | 예 | AWS SDK for .NET |
AWS SDK for .NET v2 |
3.1.10 이상으로 업그레이드. | 아니요 | AWS SDK for .NET v2 |
AWS SDK for .NET v3 |
3.3.0.0 이상으로 업그레이드. | 예 | AWS SDK for .NET v3 |
AWS SDK for JavaScript v1 |
2.68.0 이상으로 업그레이드. | 예 | 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 |
AWS SDK for PHP v1 |
S3 클라이언트 구성에서 서명 파라미터를 v4로 설정하고 PHP의 최신 버전(v2.7.4 이상)으로 업그레이드할 것을 권장합니다. | 예 | AWS SDK for PHP |
AWS SDK for PHP v2 |
S3 클라이언트 구성에서 서명 파라미터를 v4로 설정하고 PHP의 최신 버전(v2.7.4 이상)으로 업그레이드할 것을 권장합니다. | 아니요 | AWS SDK for PHP |
AWS SDK for PHP v3 |
SDK 업그레이드가 필요하지 않음. | 아니요 | AWS SDK for PHP |
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 Command Line Interface |
AWS CLI v2(프리뷰) |
SDK 업그레이드가 필요하지 않음. | 아니요 | AWS Command Line Interface 버전 2 |
AWS SDK for Ruby v1 |
Ruby V3로 업그레이드. | 예 | AWS용 Ruby V3 |
AWS SDK for Ruby v2 |
Ruby V3로 업그레이드. | 예 | AWS용 Ruby V3 |
AWS SDK for Ruby v3 |
SDK 업그레이드가 필요하지 않음. | 아니요 | AWS용 Ruby V3 |
Go |
SDK 업그레이드가 필요하지 않음. | 아니요 | AWS SDK for Go |
C++ |
SDK 업그레이드가 필요하지 않음. | 아니요 | AWS SDK for C++ |
AWS Tools for Windows PowerShell 또는 AWS Tools for PowerShell Core
3.3.0.0 이전의 모듈 버전을 사용하는 경우 3.3.0.0으로 업그레이드해야 합니다.
버전 정보를 확인하려면 Get-Module
cmdlet을 사용합니다.
Get-Module –Name AWSPowershell Get-Module –Name AWSPowershell.NetCore
3.3.0.0 버전을 업데이트하려면 Update-Module
cmdlet을 사용합니다.
Update-Module –Name AWSPowershell Update-Module –Name AWSPowershell.NetCore
서명 버전 2 트래픽을 전송하는 데 7일간 유효한 미리 서명된 URL을 사용할 수 있습니다.