View a markdown version of this page

주석 테이블 활성화 또는 비활성화 - Amazon Simple Storage Service

주석 테이블 활성화 또는 비활성화

기본적으로 메타데이터 테이블 구성에는 버킷의 객체에 대해 발생하는 이벤트를 기록하는 저널 테이블이 포함되어 있습니다. 저널 테이블은 각 메타데이터 테이블 구성에 필요합니다.

선택적으로 메타데이터 테이블 구성에 주석 테이블을 추가할 수 있습니다. 주석 테이블은 버킷의 객체에 대한 모든 주석을 추적하므로 주석 데이터를 대규모로 쿼리할 수 있습니다.

주석 테이블에는 버킷의 모든 객체에 대한 최신 주석이 포함되어 있습니다. 이 테이블을 사용하여 주석을 기반으로 객체를 식별하여 비즈니스 워크플로와 빅 데이터 작업을 간소화하고 속도를 높일 수 있습니다. 예를 들어 주석 테이블을 쿼리하여 다음을 수행할 수 있습니다.

  • 특정 주석 키 또는 값이 있는 모든 객체를 찾습니다.

  • 버킷의 객체 간에 주석 키 배포를 생성합니다.

  • 특정 보안 주체가 주석을 적용한 모든 객체를 찾습니다.

메타데이터 테이블 구성에 주석 테이블을 활성화하도록 선택한 경우 테이블은 채우기라는 프로세스를 거치며, 이 과정에서 Amazon S3는 범용 버킷을 스캔하여 버킷에 있는 모든 객체의 주석을 검색하여 채웁니다. 버킷의 객체 수에 따라 이 프로세스는 몇 분에서 몇 시간이 걸릴 수 있습니다. 채우기 프로세스가 완료되면 주석 테이블의 상태가 채우기에서 활성으로 변경됩니다. 채우기가 완료되면 객체에 대한 업데이트는 일반적으로 1시간 이내에 주석 테이블에 반영됩니다.

참고
  • 주석 테이블 채우기에 대한 요금이 부과됩니다. 자세한 내용은 Amazon S3 요금을 참조하세요.

  • 주석 테이블에 대한 업데이트를 일시 중지한 다음 재개할 수 없습니다. 그러나 주석 테이블 구성을 비활성화할 수는 있습니다. 주석 테이블을 비활성화해도 삭제되지는 않습니다. 주석 테이블은 삭제하기로 결정할 때까지 레코드에 유지됩니다.

    주석 테이블을 비활성화한 후 나중에 다시 활성화하려면 먼저 AWS 관리형 테이블 버킷에서 이전 인벤토리 테이블을 삭제해야 합니다. 주석 테이블 구성을 다시 활성화하면 Amazon S3가 새 주석 테이블을 만들고 새 주석 테이블을 채우는 데 따른 요금이 다시 청구됩니다.

Amazon S3 콘솔, AWS Command Line Interface(AWS CLI), AWS SDK 또는 Amazon S3 REST API를 사용하여 주석 테이블을 활성화 또는 비활성화할 수 있습니다.

사전 조건

주석 테이블을 비활성화한 후 다시 활성화하려면 먼저 AWS 관리형 테이블 버킷에서 이전 주석 테이블을 수동으로 삭제해야 합니다. 그러지 않으면 주석 테이블이 테이블 버킷에 이미 존재하기 때문에 주석 테이블을 다시 활성화하지 못합니다. 주석 테이블을 삭제하려면 메타데이터 테이블 삭제 섹션을 참조하세요.

주석 테이블 구성을 다시 활성화하면 Amazon S3가 새 주석 테이블을 만들고 새 주석 테이블을 채우는 데 따른 요금이 다시 청구됩니다.

주석 테이블 IAM 역할

주석 테이블에는 버킷에서 주석을 읽을 수 있는 Amazon S3 Metadata 권한을 부여하는 IAM 역할이 필요합니다. 이 역할을 생성할 때는 다음 신뢰 및 권한 정책을 사용합니다.

신뢰 정책

다음 신뢰 정책은 Amazon S3 Metadata를 해당 역할을 맡을 수 있는 서비스 보안 주체로 지정합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "metadata.s3.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-bucket" } } } ] }
권한 정책

다음 권한 정책은 주석을 읽는 데 필요한 최소 권한을 IAM 역할에 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PermissionForGetAnnotation", "Effect": "Allow", "Action": [ "s3:GetObjectAnnotation", "s3:GetObjectVersionAnnotation" ], "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/*"] }, { "Sid": "PermissionsForListBucket", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:ListBucketVersions" ], "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"] }, { "Sid": "PermissionsForDecryptAnnotation", "Effect": "Allow", "Action": ["kms:Decrypt"], "Resource": ["*"] } ] }

객체가 SSE-KMS 암호화를 사용하는 경우 kms:Decrypt 권한은 객체를 암호화하는 데 사용되는 AWS KMS 키의 복호화를 포함합니다. 또한 주석 테이블 구성에 역할을 할당할 수 있는 iam:PassRole 권한이 필요합니다.

주석 테이블 활성화 또는 비활성화

주석 테이블을 활성화 또는 비활성화하려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 S3 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 범용 버킷을 선택합니다.

  3. 주석 테이블을 활성화하거나 비활성화하려는 메타데이터 테이블 구성이 있는 범용 버킷을 선택합니다.

  4. 버킷의 세부 정보 페이지에서 메타데이터 탭을 선택합니다.

  5. 메타데이터 탭에서 편집을 선택한 다음 주석 테이블 구성 편집을 선택합니다.

  6. 주석 테이블 구성 편집 페이지의 주석 테이블에서 활성화됨 또는 비활성화됨을 선택합니다.

    참고

    활성화됨을 선택하기 전에 사전 조건을 검토하고 충족했는지 확인합니다.

    • 활성화됨을 선택한 경우 IAM 역할에서 다음 IAM 역할 선택 방법 중 하나를 선택합니다.

      • 새 IAM 역할 생성 - Amazon S3는 주석 테이블에 필요한 권한을 가진 새 IAM 역할을 생성합니다.

      • 기존 IAM 역할 선택IAM 역할 드롭다운에서 기존 IAM 역할을 선택합니다. 해당 역할에는 버킷에서 주석을 읽는 데 필요한 권한이 있어야 합니다.

      • IAM 역할 ARN 입력 - 필요한 권한이 있는 기존 IAM 역할의 ARN을 입력합니다.

      주석 테이블 IAM 역할에 필요한 권한에 대한 자세한 내용은 주석 테이블 IAM 역할을 참조하세요.

      AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS)로 테이블을 암호화할지 여부를 선택할 수 있습니다. 기본적으로 주석 테이블은 Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3)를 사용하여 암호화됩니다.

      SSE-KMS를 사용하기로 선택한 경우 범용 버킷과 동일한 리전에 고객 관리형 KMS 키를 제공해야 합니다.

      중요

      테이블을 만드는 중에만 메타데이터 테이블에 대한 암호화 유형을 설정할 수 있습니다. AWS 관리형 테이블이 만들어진 후에는 암호화 설정을 변경할 수 없습니다.

      • SSE-S3(기본값)로 주석 테이블을 암호화하려면 암호화 유형을 지정하지 않음을 선택합니다.

      • SSE-KMS로 주석 테이블을 암호화하려면 암호화 유형 지정을 선택합니다. 암호화 유형에서 AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS)를 선택합니다. AWS KMS 키에서 기존 KMS 키 중에 선택하거나 KMS 키 ARN을 입력합니다. 아직 KMS 키가 없는 경우 KMS 키 ARN 입력을 선택한 다음 KMS 키 생성을 선택합니다.

    • 비활성화됨을 선택한 경우 주석 테이블이 비활성화된 후 테이블이 더 이상 업데이트되지 않고 업데이트를 재개할 수 없음에서 확인란을 선택합니다.

  7. 변경 사항 저장을 선택합니다.

다음 명령을 실행하려면 AWS CLI를 설치하고 구성해야 합니다. AWS CLI를 설치하지 않은 경우 AWS Command Line Interface 사용 설명서Install or update to the latest version of the AWS CLI를 참조하세요.

또는 AWS CloudShell을 사용하여 콘솔에서 AWS CLI 명령을 실행할 수 있습니다. AWS CloudShell은 브라우저 기반의 사전 인증된 쉘로, AWS Management Console에서 직접 시작할 수 있습니다. 자세한 내용은 AWS CloudShell 사용 설명서에서 CloudShell이란 무엇인가요?AWS CloudShell 시작하기를 참조하세요.

AWS CLI를 사용하여 주석 테이블을 활성화 또는 비활성화하려면

다음 예제 명령을 사용하려면 user input placeholders를 사용자의 정보로 대체하세요.

참고

주석 구성을 활성화하기 전에 사전 조건을 검토하고 충족했는지 확인합니다.

  1. 주석 테이블 구성이 포함된 JSON 파일을 만들고 저장합니다(예: annotation-config.json). 다음은 새 주석 테이블을 활성화하기 위한 샘플 구성입니다.

    주석 테이블을 활성화하는 경우 선택적으로 암호화 구성을 지정할 수 있습니다. 기본적으로 메타데이터 테이블은 SseAlgorithmAES256으로 설정하여 지정할 수 있는 Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3)로 암호화됩니다.

    AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS)로 주석 테이블을 암호화하려면 SseAlgorithmaws:kms로 설정합니다. 또한 범용 버킷이 위치한 동일한 리전에서 고객 관리형 KMS 키의 ARN으로 KmsKeyArn을 설정해야 합니다.

    { "ConfigurationState": "ENABLED", "Role": "arn:aws:iam::account-id:role/annotation-table-role", "EncryptionConfiguration": { "SseAlgorithm": "aws:kms", "KmsKeyArn": "arn:aws:kms:us-east-2:account-id:key/key-id" } }

    Role 필드는 주석 테이블을 처음 활성화하거나 IAM 역할을 변경할 때 필요합니다. 역할은 버킷에서 주석을 읽을 수 있는 권한을 Amazon S3 Metadata에 부여해야 합니다. 자세한 내용은 주석 테이블 IAM 역할을 참조하세요.

    기존 주석 테이블을 비활성화하려면 다음 구성을 사용합니다.

    { "ConfigurationState": "DISABLED" }
  2. 다음 명령을 사용하여 주석 테이블 구성을 범용 버킷에 업데이트합니다(예: amzn-s3-demo-bucket).

    aws s3api update-bucket-metadata-annotation-table-configuration \ --bucket amzn-s3-demo-bucket \ --annotation-table-configuration file://./annotation-config.json \ --region us-east-2

REST 요청을 전송하여 주석 테이블을 활성화하거나 비활성화할 수 있습니다. 자세한 내용은 UpdateBucketMetadataAnnotationTableConfiguration 단원을 참조하세요.

AWS SDK를 사용하여 Amazon S3에서 주석 테이블을 활성화하거나 비활성화할 수 있습니다. 자세한 내용은 지원되는 SDK 목록을 참조하세요.