Amazon S3 인벤토리 구성 - Amazon Simple Storage Service

Amazon S3 인벤토리 구성

Amazon S3 인벤토리는 객체 및 메타데이터 플랫 파일 목록을 제공하며, Amazon S3 동기식 List API 작업 대신 이 예약된 목록을 사용할 수 있습니다. Amazon S3 인벤토리는 S3 버킷 또는 접두사를 공유하는 객체(이름이 동일한 문자열로 시작하는 객체)에 대해 매일 혹은 매주 객체 및 해당 메타데이터를 나열하는 CSV(쉼표로 구분되는 값) 또는 Apache ORC(Optimized Row Columnar) 또는 Apache Parquet(Parquet) 출력 파일을 제공합니다. 자세한 내용은 Amazon S3 인벤토리 섹션을 참조하세요.

이 섹션에서는 인벤토리 원본 및 대상 버킷에 대한 세부 정보를 비롯하여 인벤토리를 구성하는 방법에 대해 설명합니다.

개요

Amazon S3 인벤토리를 사용하면 정해진 일정에 객체 목록이 S3 버킷에 생성되므로 스토리지를 용이하게 관리할 수 있습니다. 하나의 버킷에 대해 복수의 인벤토리 목록을 구성할 수 있습니다. 인벤토리 목록은 대상 버킷에 있는 CSV, ORC 또는 Parquet 파일에 게시됩니다.

인벤토리를 설정하는 가장 쉬운 방법은 AWS Management Console을 사용하는 것이지만 REST API, AWS CLI 또는 AWS SDK를 사용할 수도 있습니다. 콘솔에서는 대상 버킷에 버킷 정책을 추가하는 절차의 첫 번째 단계를 자동으로 수행합니다.

S3 버킷의 Amazon S3 인벤토리 설정

  1. 대상 버킷의 버킷 정책을 추가합니다.

    객체를 정해진 위치에 있는 버킷에 쓸 수 있는 권한을 Amazon S3에 부여하는 버킷 정책을 대상 버킷 상에 생성해야 합니다. 정책에 대한 예는 Amazon S3 인벤토리 및 Amazon S3 분석에 권한 부여을 참조하세요.

  2. 원본 버킷에 있는 객체를 열거하여 대상 버킷에 목록을 게시하도록 인벤토리를 구성합니다.

    원본 버킷에 대한 인벤토리 목록을 구성할 때 목록을 저장하고자 하는 대상 버킷을 지정하고 목록을 매일 혹은 매주 생성할지 정합니다. 또한 포함시킬 객체 메타데이터와 모든 객체 버전을 목록에 포함시킬지 아니면 최신 버전만을 목록에 포함시킬지 구성할 수 있습니다.

    Amazon S3 관리형 키(SSE-S3) 또는 AWS Key Management Service(AWS KMS) 고객 관리형 키를 사용하여 인벤토리 목록 파일을 암호화하도록 지정할 수 있습니다. SSE-S3 및 SSE-KMS에 대한 자세한 내용은 서버 측 암호화를 사용하여 데이터 보호 섹션을 참조하세요. SSE-KMS 암호화를 사용하려면 3단계를 참조하세요.

    • 콘솔을 사용하여 인벤토리 목록을 구성하는 방법에 대한 자세한 내용은 Amazon S3 인벤토리 구성 섹션을 참조하세요.

    • Amazon S3 API를 사용하여 인벤토리 목록을 구성하려면, PUT 버킷 인벤토리 구성의 REST API 또는 AWS CLI나 AWS SDK의 동일한 기능을 사용하면 됩니다.

  3. SSE-KMS를 사용하여 인벤토리 목록 파일을 암호화하려면 AWS KMS key 사용 권한을 Amazon S3에 부여합니다.

    AWS Management Console, REST API, AWS CLI 또는 AWS SDK를 사용하여 인벤토리 목록 파일에 대한 암호화를 구성할 수 있습니다. 어느 방법을 선택하든 인벤토리 파일을 암호화하려면 Amazon S3에 고객 관리형 키 사용 권한을 부여해야 합니다. 인벤토리 파일을 암호화하는 데 사용할 고객 관리형 키에 대한 키 정책을 수정하여 Amazon S3에 권한을 부여합니다. 자세한 정보는 다음 섹션(Amazon S3에 암호화를 위해 AWS KMS key를 사용할 수 있는 권한 부여)을 참조하세요.

  4. 인벤토리를 구성하려면 S3 콘솔을 사용하여 인벤토리 구성을 참조하세요.

    대상 버킷에서 Amazon S3 인벤토리 구성의 교차 계정 작업에 암호화를 사용할 경우 정규화된 KMS 키 ARN을 사용해야 합니다. 자세한 내용은 교차 계정 작업에 암호화 사용ServerSideEncryptionByDefault를 참조하세요.

대상 버킷 정책 생성

S3 콘솔을 통해 인벤토리 구성을 생성하는 경우 Amazon S3는 대상 버킷에 Amazon S3 쓰기 권한을 부여하는 버킷 정책을 자동으로 생성합니다. AWS CLI, SDK 또는 REST API를 통해 인벤토리 구성을 생성하는 경우에는 대상 버킷에 버킷 정책을 수동으로 추가해야 합니다. 자세한 정보는 Amazon S3 인벤토리 및 Amazon S3 분석에 권한 부여을 참조하십시오. Amazon S3 인벤토리 대상 버킷 정책은 Amazon S3가 인벤토리 보고서에 대한 데이터를 해당 버킷에 쓰도록 허용합니다.

버킷 정책을 생성하는 동안 오류가 발생하는 경우, 해결 지침이 제시됩니다. 예를 들어 다른 AWS 계정의 대상 버킷을 선택하는 바람에 해당 버킷 정책에 대한 읽기 및 쓰기 권한이 없는 경우 오류 메시지가 나타납니다.

이 경우 대상 버킷 소유자는 표시된 버킷 정책을 대상 버킷에 추가해야 합니다. Amazon S3는 대상 버킷에 대한 쓰기 권한이 없기 때문에, 이 정책을 대상 버킷에 추가하지 않으면 인벤토리 보고서를 받을 수 없게 됩니다. 원본 버킷이 현재 사용자가 아닌 다른 계정의 소유물인 경우, 정책에서 원본 버킷의 올바른 계정 ID로 바꿔야 합니다.

Amazon S3에 암호화를 위해 AWS KMS key를 사용할 수 있는 권한 부여

고객 관리형 AWS Key Management Service(AWS KMS) 키를 사용하여 암호화할 수 있는 권한을 Amazon S3에 부여하려면 키 정책을 사용해야 합니다. 고객 관리형 키를 사용할 수 있도록 키 정책을 업데이트하려면 아래 단계를 따릅니다.

KMS 키를 사용한 암호화 권한 부여

  1. 고객 관리형 키를 소유한 AWS 계정을 사용하여 AWS Management Console에 로그인합니다.

  2. AWS KMS 콘솔(https://console.aws.amazon.com/kms)을 엽니다.

  3. AWS 리전을 변경하려면 페이지의 오른쪽 상단 모서리에 있는 리전 선택기를 사용합니다.

  4. 탐색 창에서 고객 관리형 키를 선택합니다.

  5. 고객 관리형 키(Customer managed keys)에서 인벤토리 파일을 암호화하는 데 사용할 고객 관리형 키를 선택합니다.

  6. 키 정책(Key policy)에서 정책 보기로 전환(Switch to policy view)을 선택합니다.

  7. 키 정책을 업데이트하려면 편집(Edit)을 선택합니다.

  8. 키 정책 편집에서 기존 키 정책에 다음 키 정책을 추가합니다.

    { "Sid": "Allow Amazon S3 use of the KMS key", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "kms:GenerateDataKey" ], "Resource": "*", "Condition":{ "StringEquals":{ "aws:SourceAccount":"source-account-id" }, "ArnLike":{ "aws:SourceARN": "arn:aws:s3:::source-bucket-name" } } }
  9. [변경 사항 저장(Save changes)]을 선택합니다.

고객 관리형 키 생성 및 키 정책 사용에 대한 자세한 내용은 AWS Key Management Service 개발자 가이드의 다음 링크를 참조하세요.

S3 콘솔을 사용하여 인벤토리 구성

다음 지침에 따라 S3 콘솔을 사용하여 인벤토리를 구성합니다.

참고

첫 번째 보고서를 전달하는 데 최대 48시간이 걸릴 수 있습니다.

  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 버킷(Buckets) 목록에서 Amazon S3 인벤토리를 구성할 버킷의 이름을 선택합니다.

  3. 관리를 선택합니다.

  4. 인벤토리 구성(Inventory configurations)에서 인벤토리 구성 생성(Create inventory configuration)을 선택합니다.

  5. 인벤토리 구성 이름(Inventory configuration name)에 이름을 입력합니다.

  6. 인벤토리 범위(Inventory scope)를 다음과 같이 설정합니다.

    • 선택적 접두사를 입력합니다.

    • 객체 버전에서 현재 버전만(Current versions only) 또는 모든 버전 포함(Include all versions)을 선택합니다.

  7. [보고서 세부 정보(Report details)]에서 보고서를 저장할 AWS 계정의 위치를 [이 계정(This account)] 또는 [다른 계정(A different account)]으로 선택합니다.

  8. 대상(Destination)에서 보고서를 저장할 버킷을 선택합니다.

    대상 버킷은 인벤토리를 설정할 버킷과 같은 AWS 리전에 있어야 합니다. 대상 버킷은 다른 AWS 계정에 있을 수 있습니다. 대상(Destination) 버킷 필드 아래에 대상 버킷 정책에 추가되어 Amazon S3가 해당 버킷에 데이터를 저장할 수 있도록 허용하는 대상 버킷 권한(Destination bucket permission)이 표시됩니다. 자세한 내용은 대상 버킷 정책 생성 섹션을 참조하세요.

  9. 빈도(Frequency)에서 보고서 생성 빈도를 매일(Daily) 또는 매주(Weekly)를 선택합니다.

  10. 보고서의 출력 형식(Output format)을 다음과 같이 선택합니다.

    • CSV

    • Apache ORC

    • Apache Parquet

  11. 상태(Status)에서 사용(Enable) 또는 사용 중지(Disable)를 선택합니다.

  12. 서버 측 암호화를 사용하려면 서버 측 암호화에서 다음과 같이 하십시오.

    1. [Enable]을 선택합니다.

    2. 암호화 키 유형(Encryption key type)에서 Amazon S3 키(SSE-S3)(Amazon S3 key (SSE-S3)) 또는 AWS Key Management Service 키(SSE-KMS)(AWS Key Management Service key (SSE-KMS))를 선택합니다.

      Amazon S3 서버 측 암호화는 256비트 Advanced Encryption Standard(AES-256)를 사용합니다. 자세한 내용은 Amazon S3가 관리하는 암호화 키(SSE-S3)를 사용하는 서버 측 암호화로 데이터 보호 섹션을 참조하세요. SSE-KMS에 대한 자세한 내용은 AWS Key Management Service(SSE-KMS)를 사용하는 서버 측 암호화로 데이터 보호 단원을 참조하세요.

    3. AWS KMS key를 사용하려면 다음 중 하나를 선택합니다.

      • AWS KMS keys에서 선택한 후 KMS 키를 선택합니다.

      • AWS KMS key ARN을 입력한 후 AWS KMS 키 ARN을 입력합니다.

      참고

      SSE-KMS를 사용하여 인벤토리 목록 파일을 암호화하려면 Amazon S3에 AWS KMS key 사용 권한을 부여해야 합니다. 따라서 고객 관리형 키만 사용할 수 있고 AWS 관리형 키(aws/s3)는 사용할 수 없습니다. 지침은 Amazon S3에 암호화를 위해 AWS KMS key를 사용할 수 있는 권한 부여 단원을 참조하세요.

  13. 추가 필드(Additional fields)에 대해 다음 중 하나 이상을 선택하여 인벤토리 보고서에 추가합니다.

    • 크기 - 객체 크기(바이트).

    • 마지막 수정 날짜(Last modified date) - 객체 생성일 또는 최종 수정일 중 최근 날짜

    • 스토리지 클래스 - 객체 저장에 사용되는 스토리지 클래스.

    • ETag - 엔터티 태그는 객체의 해시입니다. ETag는 객체의 콘텐츠에 대한 변경 사항만 반영하고 메타데이터에 대한 변경을 반영하지 않습니다. ETag는 객체 데이터의 MD5 다이제스트일 수도 아닐 수도 있습니다. 다이제스트인지 여부는 객체 생성 방식 및 암호화 방식에 좌우됩니다.

    • 멀티파트 업로드(Multipart upload) - 객체가 멀티파트 업로드로 업로드되도록 지정합니다. 자세한 내용은 멀티파트 업로드를 사용한 객체 업로드 및 복사 섹션을 참조하세요.

    • 복제 상태(Replication status) - 객체의 복제 상태입니다. 자세한 내용은 S3 콘솔 사용 섹션을 참조하세요.

    • 암호화 상태(Encryption status) - 객체를 암호화하는 데 사용된 서버 측 암호화입니다. 자세한 내용은 서버 측 암호화를 사용하여 데이터 보호 섹션을 참조하세요.

    • S3 객체 잠금 구성(S3 Object Lock configurations) - 다음 설정을 포함한 객체의 객체 잠금 상태입니다.

      • 보관 모드(Retention mode) - 객체에 적용된 보호 수준(거버넌스(Governance) 또는 규정 준수(Compliance))

      • 보관 종료일(Retain until date) - 잠긴 객체를 삭제할 수 없는 기한

      • 법적 보존 상태(Legal hold status) - 잠긴 객체의 법적 보존 상태

      S3 객체 잠금에 대한 자세한 내용은 S3 객체 잠금 작동 방식 단원을 참조하세요.

    • Intelligent-Tiering 액세스 티어 – Intelligent-Tiering으로 저장된 경우 객체의 액세스 티어(Frequent Access 또는 Infrequent Access)를 나타냅니다. 자세한 내용은 변경되는 또는 알 수 없는 액세스 패턴으로 데이터를 자동으로 최적화하는 스토리지 클래스 섹션을 참조하세요.

    • S3 버킷 키 상태 — AWS KMS에 의해 생성된 버킷 레벨 키가 객체에 적용되는지 여부를 나타냅니다. 자세한 정보는 Amazon S3 버킷 키를 사용하여 SSE-KMS 비용 절감을 참조하십시오.

    • 체크섬 알고리즘(Checksum Algorithm) – 객체의 체크섬을 생성하는 데 사용된 알고리즘을 나타냅니다.

    인벤토리 보고서의 내용에 대한 자세한 내용은 Amazon S3 인벤토리 목록 단원을 참조하세요.

  14. Create를 선택합니다.