메뉴
Amazon Simple Storage Service
개발자 안내서 (API Version 2006-03-01)

요청 만들기

Amazon S3는 REST 서비스입니다. REST API 또는 프로그래밍 작업을 간소화하기 위해 기본 Amazon S3 REST API를 래핑하는 AWS SDK 래퍼 라이브러리(Sample Code and Libraries 참조)를 사용하여 Amazon S3에 요청을 전송할 수 있습니다.

Amazon S3와의 모든 상호 작용은 인증을 거치거나 익명으로 할 수 있습니다. 인증은 Amazon Web Services(AWS) 제품에 액세스하려는 요청자의 ID를 확인하는 프로세스입니다. 인증된 요청에는 요청 발신자를 인증하는 서명 값이 포함되어 있어야 합니다. 서명 값의 일부는 요청자의 AWS 액세스 키(액세스 키 ID 및 보안 액세스 키)에서 생성됩니다. 액세스 키를 구하는 방법에 대한 자세한 내용은 How Do I Get Security Credentials?을 참조하십시오. 이 내용은 AWS General Reference에 있습니다.

AWS SDK를 사용할 경우 라이브러리에서 제공된 키를 바탕으로 서명을 구합니다. 그러나 애플리케이션에서 바로 REST API를 호출할 경우 서명을 구하는 코드를 작성하여 요청에 추가해야 합니다.

액세스 키 정보

다음 단원에서는 요청 인증에 사용할 수 있는 액세스 키의 유형에 대해 설명합니다.

AWS 계정 액세스 키

계정 액세스 키는 계정에서 소유한 AWS 리소스에 대한 모든 액세스를 제공합니다. 다음은 액세스 키의 예제입니다.

  • 액세스 키 ID(20자, 영숫자 문자열). 예: AKIAIOSFODNN7EXAMPLE

  • 보안 액세스 키(40자 문자열). 예: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

액세스 키 ID는 개별 AWS 계정을 식별합니다. 이 액세스 키를 사용하여 Amazon S3에 인증된 요청을 전송할 수 있습니다.

IAM 사용자 액세스 키

회사를 대표하는 하나의 AWS 계정을 만들 수 있지만 여러 명의 직원이 회사의 AWS 리소스에 액세스해야 할 수 있습니다. 이 경우 AWS 계정 액세스 키를 공유하면 보안에 문제가 될 수 있으며, 각 직원에 대해 별도의 AWS 계정을 만드는 것은 실용적이지 않습니다. 또한 버킷, 객체와 같은 각 계정에서 소유하고 있는 리소스를 쉽게 공유할 수 없으며, 리소스를 공유하기 위해서는 권한을 부여하는 추가 작업이 필요합니다.

이러한 경우 AWS Identity and Access Management(IAM)을 사용하여 AWS 계정에 개별 액세스 키를 갖는 사용자를 만들고, IAM 사용자 정책에 따라 적절한 리소스 액세스 권한을 부여할 수 있습니다. 이러한 사용자를 효과적으로 관리하기 위해 IAM은 사용자 그룹을 만들어 이 그룹의 모든 사용자에게 적용되는 그룹 수준 권한을 부여할 수 있습니다.

이러한 사용자를 IAM 사용자라고 하며, AWS 계정에서 만들고 관리합니다. 상위 계정은 사용자의 AWS 액세스 권한을 제어합니다. IAM 사용자가 만드는 모든 리소스는 상위 AWS 계정에 의해 제어되고 비용이 청구됩니다. 이러한 IAM 사용자는 개별 보안 자격 증명을 사용하여 Amazon S3에 인증된 요청을 전송할 수 있습니다. AWS 계정 내 사용자의 생성 및 관리에 대한 자세한 내용은 AWS Identity and Access Management 제품 세부 정보 페이지를 참조하십시오.

임시 보안 자격 증명

개별 액세스 키를 갖는 IAM 사용자를 만드는 것 외, IAM은 또한 모든 IAM 사용자에게 AWS 서비스와 리소스에 액세스하기 위한 임시 보안 자격 증명(임시 액세스 키 및 보안 토큰)을 부여할 수 있으며, AWS 외부의 시스템에서 사용자를 관리할 수도 있습니다. 이러한 사용자를 연동 사용자라고 하며, AWS 리소스에 액세스하도록 생성한 애플리케이션도 사용자가 될 수 있습니다.

IAM은 임시 보안 자격 증명을 요청하기 위한 AWS Security Token Service API를 제공합니다. AWS STS API 또는 AWS SDK를 사용하여 이러한 자격 증명을 요청할 수 있습니다. API는 임시 보안 자격 증명(액세스 키 ID 및 보안 액세스 키)과 보안 토큰을 반환합니다. 이러한 자격 증명은 요청 시 지정한 기간 동안에만 사용할 수 있습니다. AWS 계정 또는 IAM 사용자 액세스를 사용하여 요청을 전송할 때와 동일한 방식으로 액세스 키 ID 및 보안 키를 사용합니다. 또한 Amazon S3에 전송하는 각 요청에 토큰을 포함해야 합니다.

IAM 사용자는 직접 사용하기 위해 또는 연동 사용자나 애플리케이션에 전달하기 위해 이러한 임시 보안 자격 증명을 요청할 수 있습니다. 연동 사용자를 위해 임시 보안 자격 증명을 요청할 경우 사용자 이름, 그리고 해당 임시 보안 자격 증명에 연결할 권한을 정의한 IAM 정책을 제공해야 합니다. 연동 사용자는 임시 자격 증명을 요청한 상위 IAM 사용자보다 더 많은 권한을 가질 수 없습니다.

Amazon S3에 요청할 때 이 임시 보안 자격 증명을 사용할 수 있습니다. API 라이브러리는 요청 인증 시 이 자격 증명을 사용하여 필요한 서명 값을 계산합니다. 만료된 자격 증명으로 요청을 보내면 Amazon S3는 요청을 거부합니다.

REST API 요청에서 임시 보안 자격 증명을 사용한 요청 서명에 대한 자세한 내용은 REST 요청 서명 및 인증 단원을 참조하십시오. AWS SDK를 사용한 요청 전송에 대한 자세한 내용은 AWS SDK를 사용하여 요청하기 단원을 참조하십시오.

임시 보안 자격 증명에 대한 IAM 지원에 관한 자세한 내용은 IAM 사용 설명서임시 보안 자격 증명 단원을 참조하십시오.

보안을 강화하기 위해 Amazon S3 리소스에 액세스할 때 MFA(멀티 팩터 인증)를 요구하도록 버킷 정책을 구성할 수 있습니다. 자세한 내용은 MFA 인증이 필요한 버킷 정책 추가 단원을 참조하십시오. Amazon S3 리소스에 액세스하려면 MFA를 거치도록 구성할 경우 이러한 리소스에 액세스하려면 항상 MFA 키로 생성된 임시 자격 증명을 제공해야 합니다. 자세한 내용은 AWS Multi-Factor Authentication 세부 정보 페이지 및 IAM 사용 설명서MFA 보호 API 액세스 구성 단원을 참조하십시오.

요청 엔드포인트

사전 정의된 서비스의 엔드포인트로 REST 요청을 전송합니다. AWS 서비스 및 해당 엔드포인트의 전체 목록은 AWS General ReferenceRegions and Endpoints에서 확인할 수 있습니다.