Amazon S3의 정책 및 권한 - Amazon Simple Storage Service

Amazon S3의 정책 및 권한

이 페이지에서는 Amazon S3의 버킷 및 사용자 정책에 대한 개요를 제공하고 정책의 기본 요소에 대해 설명합니다. 나열된 각 요소는 해당 요소에 대한 자세한 내용과 사용 방법의 예제로 연결됩니다.

Amazon S3 작업, 리소스, 조건의 전체 목록은 서비스 승인 참조에서 Amazon S3에 사용되는 작업, 리소스 및 조건 키를 참조하세요.

가장 기본적인 경우 정책에는 다음 요소가 포함되어 있습니다.

  • 리소스 - 정책이 적용되는 Amazon S3 버킷, 객체, 액세스 포인트 또는 작업입니다. 버킷, 객체, 액세스 포인트 또는 작업의 Amazon 리소스 이름(ARN)을 사용하여 리소스를 식별합니다.

    버킷 수준 작업의 예:

    - "Resource": "arn:aws:s3:::bucket_name".

    객체 수준 작업의 예:

    "Resource": "arn:aws:s3:::bucket_name/*"(버킷에 있는 모든 객체)

    "Resource": "arn:aws:s3:::bucket_name/prefix/*"(버킷에서 특정 접두사를 갖는 객체)

    자세한 내용은 Amazon S3의 정책 리소스 단원을 참조하십시오.

  • 작업 – 각 리소스에 대해 Amazon S3에서는 작업의 집합을 지원합니다. 작업 키워드를 사용하여 허용(또는 거부)할 리소스 작업을 식별합니다.

    예를 들어 s3:ListBucket 권한은 사용자가 Amazon S3 GET Bucket (List Objects) 작업을 사용할 수 있도록 허용합니다. Amazon S3 작업 사용에 대한 자세한 내용은 Amazon S3의 정책 작업 단원을 참조하십시오. Amazon S3 작업의 전체 목록은 작업을 참조하십시오.

  • Effect – 사용자가 특정 작업을 요청하는 경우의 결과입니다. 이는 허용 또는 거부 중에 하나가 될 수 있습니다.

    명시적으로 리소스에 대한 액세스 권한을 부여(허용)하지 않는 경우, 액세스는 암시적으로 거부됩니다. 리소스에 대한 액세스를 명시적으로 거부할 수도 있습니다. 다른 정책에서 액세스 권한을 부여하더라도 사용자가 해당 리소스에 액세스할 수 없도록 하려고 할 때 이러한 작업을 수행할 수 있습니다. 자세한 내용은 IAM JSON 정책 요소: 효과를 참조하십시오.

  • 보안 주체 - 문에서의 작업 및 리소스에 액세스할 수 있는 계정 또는 사용자입니다. 버킷 정책에서 보안 주체는 사용자, 계정, 서비스 또는 이 권한의 수신자인 기타 주체입니다. 자세한 내용은 버킷 정책의 보안 주체 단원을 참조하십시오.

  • 조건 – 정책이 적용되기 위한 조건입니다. AWS 전역 키와 Amazon S3 전용 키를 사용하여 Amazon S3 액세스 정책에서 조건을 지정할 수 있습니다. 자세한 내용은 조건 키를 사용한 버킷 정책 예시 단원을 참조하십시오.

다음 버킷 정책 예제에서는 효과, 보안 주체, 작업 및 리소스 요소를 보여줍니다. 이 정책에서는 Account-ID 계정의 사용자인 Akua에게 s3:GetObject 버킷의 s3:GetBucketLocation, s3:ListBucketawsexamplebucket1 Amazon S3 권한을 허용합니다.

{ "Version": "2012-10-17", "Id": "ExamplePolicy01", "Statement": [ { "Sid": "ExampleStatement01", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Akua" }, "Action": [ "s3:GetObject", "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1/*", "arn:aws:s3:::awsexamplebucket1" ] } ] }

전체 정책 언어 정보는 IAM 사용 설명서의 IAM 정책 및 권한IAM JSON 정책 참조를 참조하세요.

권한 위임

AWS 계정이 리소스를 소유하는 경우 다른 AWS 계정에 해당 권한을 부여할 수 있습니다. 그런 다음 해당 계정은 권한 또는 권한의 하위 세트를 계정에 속한 사용자에게 위임할 수 있습니다. 이를 권한 위임이라고 합니다. 그러나 다른 계정으로부터 권한을 받는 계정은 다른 AWS 계정에 크로스 계정 권한을 위임할 수 없습니다.

Amazon S3 버킷 및 객체 소유권

버킷과 객체는 Amazon S3 리소스입니다. 기본적으로 리소스 소유자만 이러한 리소스에 액세스할 수 있습니다. 리소스 소유자란 리소스를 생성한 AWS 계정을 말합니다. 예:

  • 버킷 생성 및 객체 업로드에 사용하는 AWS 계정은 해당 리소스를 소유합니다.

  • AWS Identity and Access Management(IAM) 사용자 또는 역할 자격 증명을 사용하여 객체를 업로드하는 경우 사용자 또는 역할이 속한 AWS 계정에서 객체를 소유합니다.

  • 버킷 소유자는 다른 AWS 계정(또는 다른 계정의 사용자)에 객체를 업로드할 수 있는 교차 계정 권한을 부여할 수 있습니다. 이 경우, 객체를 업로드하는 AWS 계정이 해당 객체의 소유자입니다. 버킷 소유자는 다른 계정 소유의 객체에 대한 권한이 없습니다. 단, 다음 경우는 예외입니다.

    • 버킷 소유자가 요금을 지불하는 경우. 버킷 소유자는 객체의 소유 여부와 관계 없이 모든 객체에 대한 액세스를 거부하거나 버킷에 있는 객체를 삭제할 수 있습니다.

    • 버킷 소유자는 객체 소유 여부에 관계 없이 모든 객체를 아카이빙하거나 아카이빙된 객체를 복원할 수 있습니다. 아카이빙이란 객체를 저장하는 데 사용하는 스토리지 클래스를 말합니다. 자세한 내용은 스토리지 수명 주기 관리 단원을 참조하십시오.

소유권 및 인증 요청

버킷에 대한 모든 요청은 인증되었거나 인증되지 않았습니다. 인증된 요청에는 요청 발신자를 인증하는 서명 값이 포함되어야 하며 인증되지 않은 요청에는 포함되지 않아야 합니다. 요청 인증에 대한 자세한 내용은 요청 만들기 섹션을 참조하십시오.

버킷 소유자는 인증되지 않은 요청을 허용할 수 있습니다. 예를 들어 인증되지 않은 PUT Object 요청은 버킷에 퍼블릭 버킷 정책이 있거나 버킷 ACL이 All Users 그룹 또는 익명 사용자에게 WRITE 또는 FULL_CONTROL 액세스 권한을 부여한 경우 허용됩니다. 퍼블릭 버킷 정책 및 퍼블릭 ACL(액세스 제어 목록)에 대한 자세한 내용은 "퍼블릭"의 의미 섹션을 참조하십시오.

모든 인증되지 않은 요청은 익명 사용자가 수행합니다. 이 사용자는 ACL에서 특정 정식 사용자 ID 65a011a29cdf8ec533ec3d1ccaae921c로 표시됩니다. 인증되지 않은 요청을 통해 객체가 버킷에 업로드되면 익명 사용자가 객체를 소유합니다. 기본 객체 ACL은 익명 사용자에게 객체 소유자로 FULL_CONTROL을 부여합니다. 따라서 Amazon S3은 인증되지 않은 요청으로 객체를 검색하거나 ACL을 수정할 수 있습니다.

익명 사용자가 객체를 수정하지 못하도록 하려면 익명 사용자가 버킷에 퍼블릭 쓰기를 허용하는 버킷 정책을 구현하지 않거나 익명 사용자가 버킷에 대한 쓰기 액세스를 허용하는 ACL을 사용하는 것이 좋습니다. Amazon S3 퍼블릭 액세스 차단을 사용하여 이 권장 동작을 적용할 수 있습니다.

퍼블릭 액세스 차단에 대한 자세한 내용은 Amazon S3 스토리지에 대한 퍼블릭 액세스 차단 섹션을 참조하십시오. ACL에 대한 자세한 내용은 ACL(액세스 제어 목록) 개요 단원을 참조하십시오.

중요

AWS 계정의 루트 사용자 자격 증명을 사용하여 인증된 요청을 하지 않는 것이 좋습니다. 대신, IAM 역할을 생성하고 해당 역할에 모든 액세스 권한을 부여합니다. 이러한 역할이 부여된 사용자를 관리자 사용자라고 합니다. AWS 계정 루트 사용자 자격 증명 대신, 관리자 역할에 할당된 자격 증명을 사용하여 AWS와 상호 작용하고 버킷 생성, 사용자 생성, 권한 부여 등의 태스크를 수행할 수 있습니다. 자세한 내용은 IAM 사용 설명서의 AWS 자격 증명IAM 사용 설명서의 IAM 보안 모범 사례를 참조하세요.