Outposts에서 복제 규칙 생성 - Outposts에서의 Amazon S3

Outposts에서 복제 규칙 생성

Outposts에서의 S3 복제는 동일하거나 서로 다른 AWS Outposts의 버킷 간에 객체가 비동기식으로 자동 복사되는 것을 말합니다. 복제는 새로 생성된 객체 및 객체 업데이트를 소스 Outposts 버킷에서 대상 Outposts 버킷으로 복사합니다. 자세한 내용은 S3 on Outposts에 대한 객체 복제 단원을 참조하십시오.

참고

복제를 설정하기 전에 소스 Outposts 버킷에 있던 객체는 자동으로 복제되지 않습니다. 즉, S3 on Outposts는 소급하여 객체를 복제하지 않습니다. 복제 구성 전에 생성된 객체를 복제하려면 CopyObject API 작업을 사용하여 동일한 버킷에 객체를 복사할 수 있습니다. 객체가 복사된 후에는 버킷에 '새' 객체로 나타나고 복제 구성이 해당 객체에 적용됩니다. 객체 복사에 대한 자세한 내용은 Amazon Simple Storage Service API 참조의 AWS SDK for Java를 사용하여 Amazon S3 on Outposts 버킷의 객체 복사CopyObject 섹션을 참조하세요.

복제를 구성할 때는 소스 Outposts 버킷에 복제 규칙을 추가합니다. 복제 규칙은 복제할 소스 Outposts 버킷 객체와 복제된 객체가 저장될 대상 Outposts 버킷을 정의합니다. 특정 키 이름 접두사, 하나 이상의 객체 태그 또는 이 두 가지를 모두 포함하는 버킷 또는 객체 하위 집합에 있는 모든 객체를 복제하는 규칙을 작성할 수 있습니다. 대상 Outposts 버킷은 소스 Outposts 버킷과 동일한 Outpost에 있거나 다른 Outpost에 존재할 수 있습니다.

S3 on Outposts 복제 규칙의 경우 소스 및 대상 Outposts 버킷 이름 대신 소스 Outposts 버킷의 액세스 포인트 Amazon 리소스 이름(ARN)과 대상 Outposts 버킷의 액세스 포인트 ARN을 모두 제공해야 합니다.

삭제할 객체 버전 ID를 지정하는 경우, S3 on Outposts가 소스 Outposts 버킷에서 해당 객체 버전을 삭제합니다. 하지만 대상 Outposts 버킷에는 삭제를 복제하지 않습니다. 즉, 대상 Outposts 버킷에서 동일한 객체 버전을 삭제하지 않습니다. 이 동작은 악의적 삭제로부터 데이터를 보호합니다.

Outposts 버킷에 복제 규칙을 추가하면 이 규칙이 기본적으로 활성화되므로 이 규칙을 저장하면 그 즉시 적용됩니다.

이 예시에서는 소스 및 대상 Outposts 버킷이 서로 다른 Outposts에 존재하지만 동일한 AWS 계정에서 소유한 상황에서 복제를 설정합니다. Amazon S3 콘솔, AWS Command Line Interface(AWS CLI), AWS SDK for Java 및 AWS SDK for .NET을 사용하는 예제가 제공됩니다. Outposts에서의 크로스 계정 S3 복제 권한에 대한 자세한 내용은 소스 및 대상 Outposts 버킷을 서로 다른 AWS 계정에서 소유할 경우 권한 부여 섹션을 참조하세요.

S3 on Outposts 복제 규칙을 설정하기 위한 사전 요구 사항은 복제 규칙 생성을 위한 사전 조건 섹션을 참조하세요.

대상 Amazon S3 on Outposts 버킷이 소스 Outposts 버킷과 다른 Outpost에 있는 경우 복제 규칙을 구성하려면 다음 단계를 따릅니다.

대상 Outposts 버킷이 소스 Outposts 버킷과 다른 계정에 있는 경우, 소스 Outposts 버킷 계정의 소유자에게 대상 Outposts 버킷의 객체를 복제할 수 있는 권한을 부여하려면 대상 Outposts 버킷에 하나의 버킷 정책을 추가해야 합니다.

복제 규칙을 만드는 방법
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 버킷 목록에서 소스 버킷으로 사용할 버킷의 이름을 선택합니다.

  3. 관리 탭을 선택하고 복제 규칙 섹션까지 아래로 스크롤한 다음 복제 규칙 생성을 선택합니다.

  4. 복제 규칙 이름에 나중에 규칙을 쉽게 식별할 수 있는 규칙 이름을 입력합니다. 이름은 필수 항목이며 버킷 내에서 고유해야 합니다.

  5. 상태 아래의 활성화됨이 기본적으로 선택됩니다. 사용 설정된 규칙은 저장하는 즉시 적용되기 시작합니다. 나중에 규칙을 활성화하고 싶다면 비활성화됨을 선택하세요.

  6. 우선 순위에서는 규칙의 우선 순위 값에 따라 중복되는 규칙이 있는 경우 적용할 규칙이 결정됩니다. 객체가 여러 복제 규칙의 범위에 포함된 경우 S3 on Outposts는 이 우선 순위 값을 사용하여 충돌을 피합니다. 기본적으로 새 규칙은 가장 높은 우선 순위로 복제 구성에 추가됩니다. 숫자가 클수록 우선 순위가 높아집니다.

    규칙의 우선 순위를 변경하려면 규칙을 저장한 후 복제 규칙 목록에서 규칙 이름을 선택하고 작업을 선택한 다음 우선 순위 편집을 선택합니다.

  7. 소스 버킷에는 복제 소스를 설정하기 위한 다음과 같은 옵션이 있습니다.

    • 전체 버킷을 복제하려면 버킷의 모든 객체에 적용을 선택합니다.

    • 복제 소스에 접두사 또는 태그 필터링을 적용하려면 하나 이상의 필터를 사용하여 이 규칙의 범위 제한을 선택합니다. 접두사와 태그를 결합할 수도 있습니다.

      • 동일한 접두사를 가진 모든 객체를 복제하려면 접두사에서 상자에 접두사를 입력합니다. 접두사 필터를 사용하면 이름이 동일한 문자열(예: pictures)로 시작하는 모든 객체로 복제가 제한됩니다.

        폴더의 이름에 해당하는 접두사를 입력할 경우, /(슬래시)를 마지막 문자로 사용해야 합니다(예: pictures/).

      • 하나 이상의 동일한 객체 태그가 있는 모든 객체를 복제하려면 태그 추가를 선택한 다음, 상자에 키 값 페어를 입력합니다. 다른 태그를 추가하려면 이 절차를 반복합니다. 객체 태그에 대한 자세한 내용은 S3 on Outposts 버킷에 대한 태그 추가 섹션을 참조하십시오.

  8. 복제를 위해 S3 on Outposts 소스 버킷에 액세스하려면 소스 액세스 포인트 이름에서 소스 버킷에 연결된 액세스 포인트를 선택합니다.

  9. 대상에서 S3 on Outposts가 객체를 복사하도록 할 Outposts 버킷킷의 액세스 포인트 ARN을 선택합니다. 대상 Outposts 버킷은 소스 Outposts 버킷과 동일하거나 다른 AWS 계정에 있을 수 있습니다.

    대상 버킷이 소스 Outposts 버킷과 다른 계정에 있는 경우, 소스 Outposts 버킷 계정의 소유자에게 대상 Outposts 버킷에 객체를 복제할 수 있는 권한을 부여하려면 대상 Outposts 버킷에 하나의 버킷 정책을 추가해야 합니다. 자세한 내용은 소스 및 대상 Outposts 버킷을 서로 다른 AWS 계정에서 소유할 경우 권한 부여 단원을 참조하십시오.

    참고

    대상 Outposts 버킷에서 버전 관리가 활성화되어 있지 않을 경우, 버전 관리 활성화 버튼이 포함된 경고가 나타납니다. 이 버튼을 선택하면 버킷의 버전 관리가 사용 설정됩니다.

  10. S3 on Outposts가 사용자 대신 객체를 복제하기 위해 수임할 수 있는 AWS Identity and Access Management(IAM) 서비스 역할을 설정합니다.

    IAM 역할을 설정하려면 IAM 역할에서 다음 중 하나를 수행합니다.

    • S3 on Outposts에서 복제 구성을 위한 새 IAM 역할을 생성하도록 하려면 기존 IAM 역할에서 선택을 선택한 다음, 새 역할 생성을 선택합니다. 규칙을 저장하면 선택한 소스 및 대상 Outposts 버킷과 일치하는 IAM 역할에 대해 새 정책이 생성됩니다. 새 역할 생성을 선택하는 것이 좋습니다.

    • 기존 IAM 역할을 사용하는 방법도 있습니다. 이 경우 복제에 필요한 권한을 S3 on Outposts에 부여하는 역할을 선택해야 합니다. 이 역할이 복제 규칙을 따를 수 있는 충분한 권한을 S3 on Outposts에 부여하지 않으면 복제가 실패합니다.

      기존 역할을 선택하려면 기존 IAM 역할에서 선택을 선택한 다음, 드롭다운 메뉴에서 역할을 선택합니다. IAM 역할 ARN 입력을 선택한 다음 IAM 역할의 Amazon 리소스 이름(ARN)을 입력할 수도 있습니다.

    중요

    S3 on Outposts 버킷에 복제 규칙을 추가할 때 S3 on Outposts에 복제 권한을 부여하는 IAM 역할을 만들어 전달할 수 있는 iam:CreateRoleiam:PassRole 권한이 있어야 합니다. 자세한 내용은 IAM 사용 설명서에서 사용자에게 AWS 서비스에 역할을 전달할 권한 부여를 참조하세요.

  11. Outposts 버킷에 있는 모든 객체는 기본적으로 암호화됩니다. S3 on Outposts 암호화에 대한 자세한 내용은 S3 on Outposts의 데이터 암호화 섹션을 참조하세요. Amazon S3 관리형 키(SSE-S3)를 통한 서버 측 암호화를 사용하여 암호화된 객체만 복제할 수 있습니다. AWS Key Management Service(AWS KMS) 키(SSE-KMS)를 통한 서버 측 암호화 또는 고객 제공 암호화 키(SSE-C)를 통한 서버 측 암호화로 암호화된 객체에는 복제가 지원되지 않습니다.

  12. 필요에 따라 복제 규칙 구성을 설정할 때 다음과 같은 추가 옵션을 활성화하세요.

  13. 완료하려면 규칙 생성을 선택합니다.

규칙을 저장하면 규칙을 편집, 활성화, 비활성화하거나 삭제할 수 있습니다. 이렇게 하려면 소스 Outposts 버킷의 관리 탭으로 이동하여 아래로 스크롤하여 복제 규칙 섹션에서 규칙을 선택한 다음 규칙 편집을 선택합니다.

소스 및 대상 Outposts 버킷을 동일한 AWS 계정에서 소유한 경우 AWS CLI를 사용하여 복제를 설정하려면 다음을 수행합니다.

  • 소스 및 대상 Outposts 버킷 생성

  • 두 버킷의 버전 관리를 활성화합니다.

  • S3 on Outposts에 객체 복제 권한을 제공하는 IAM 역할을 생성합니다.

  • 소스 Outposts 버킷에 복제 구성을 추가합니다.

설정을 확인하려면 테스트합니다.

소스 및 대상 Outposts 버킷을 동일한 AWS 계정에서 소유한 경우 복제를 설정하는 방법
  1. AWS CLI의 자격 증명 프로필을 설정합니다. 이 예제에서는 프로필 이름 acctA를 사용합니다. 보안 인증 프로파일 설정에 대한 자세한 내용은 AWS Command Line Interface 사용 설명서의 명명된 프로파일을 참조하세요.

    중요

    이 연습에 사용하는 프로파일에 필요한 권한이 있어야 합니다. 예를 들어 복제 구성에서 S3 on Outposts가 맡을 수 있는 IAM 서비스 역할을 지정합니다. 사용하는 프로필에 iam:CreateRoleiam:PassRole 권한이 있을 경우에만 이 작업을 수행할 수 있습니다. 자세한 내용은 IAM 사용 설명서에서 사용자에게 AWS 서비스에 역할을 전달할 권한 부여를 참조하세요. 관리자 보안 인증 정보를 사용하여 명명된 프로파일을 생성할 경우 명명된 프로파일에 모든 작업을 수행하는 데 필요한 권한이 부여됩니다.

  2. 원본 버킷을 생성하고 버킷에서 버전 관리를 사용 설정합니다. 다음 create-bucket 명령은 미국 동부(버지니아 북부)(us-east-1) 리전에 SOURCE-OUTPOSTS-BUCKET 버킷을 생성합니다. 이 명령을 사용하려면 user input placeholders를 실제 정보로 대체합니다.

    aws s3control create-bucket --bucket SOURCE-OUTPOSTS-BUCKET --outpost-id SOURCE-OUTPOST-ID --profile acctA --region us-east-1

    다음 put-bucket-versioning 명령은 SOURCE-OUTPOSTS-BUCKET 버킷의 버전 관리를 활성화합니다. 이 명령을 사용하려면 user input placeholders를 실제 정보로 대체합니다.

    aws s3control put-bucket-versioning --account-id 123456789012 --bucket arn:aws:s3-outposts:region:123456789012:outpost/SOURCE-OUTPOST-ID/bucket/SOURCE-OUTPOSTS-BUCKET --versioning-configuration Status=Enabled --profile acctA
  3. 대상 버킷을 생성하고 버킷에서 버전 관리를 사용 설정합니다. 다음 create-bucket 명령은 미국 서부(오레곤)(us-west-2) 리전에 DESTINATION-OUTPOSTS-BUCKET 버킷을 생성합니다. 이 명령을 사용하려면 user input placeholders를 실제 정보로 대체합니다.

    참고

    소스 및 대상 Outposts 버킷이 모두 동일한 AWS 계정에 있을 때 복제 구성을 설정하려면 동일한 명명된 프로파일을 사용합니다. 이 예제에서는 acctA를 사용합니다. 두 버킷을 서로 다른 AWS 계정에서 소유한 경우의 복제 구성을 테스트하려면 버킷마다 각각 다른 프로파일을 지정합니다.

    aws s3control create-bucket --bucket DESTINATION-OUTPOSTS-BUCKET --create-bucket-configuration LocationConstraint=us-west-2 --outpost-id DESTINATION-OUTPOST-ID --profile acctA --region us-west-2

    다음 put-bucket-versioning 명령은 DESTINATION-OUTPOSTS-BUCKET 버킷의 버전 관리를 활성화합니다. 이 명령을 사용하려면 user input placeholders를 실제 정보로 대체합니다.

    aws s3control put-bucket-versioning --account-id 123456789012 --bucket arn:aws:s3-outposts:region:123456789012:outpost/DESTINATION-OUTPOST-ID/bucket/DESTINATION-OUTPOSTS-BUCKET --versioning-configuration Status=Enabled --profile acctA
  4. IAM 서비스 역할을 생성합니다. 복제 구성 과정에서 이 서비스 역할을 SOURCE-OUTPOSTS-BUCKET 버킷에 추가하게 됩니다. S3 on Outposts는 사용자를 대신하여 객체를 복제하기 위해 이 역할을 맡습니다. IAM 역할은 다음의 두 단계로 생성합니다.

    1. IAM 역할을 생성합니다.

      1. 다음 신뢰 정책을 복사하여 로컬 컴퓨터의 현재 디렉터리에 s3-on-outposts-role-trust-policy.json이라는 이름의 파일로 저장합니다. 이 정책은 서비스 역할을 맡을 권한을 S3 on Outposts 서비스 보안 주체에 부여합니다.

        { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3-outposts.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
      2. 다음 명령을 실행해 역할을 생성합니다. user input placeholders를 사용자의 정보로 대체합니다.

        aws iam create-role --role-name replicationRole --assume-role-policy-document file://s3-on-outposts-role-trust-policy.json --profile acctA
    2. 서비스 역할에 권한 정책을 연결합니다.

      1. 다음 권한 정책을 복사하여 로컬 컴퓨터의 현재 디렉터리에 s3-on-outposts-role-permissions-policy.json 파일로 저장합니다. 이 정책은 다양한 S3 on Outposts 버킷 및 객체 작업에 대한 권한을 부여합니다. 이 정책을 사용하려면 user input placeholders를 실제 정보로 대체합니다.

        { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3-outposts:GetObjectVersionForReplication", "s3-outposts:GetObjectVersionTagging" ], "Resource":[ "arn:aws:s3-outposts:region:123456789012:outpost/SOURCE-OUTPOST-ID/bucket/SOURCE-OUTPOSTS-BUCKET/object/*", "arn:aws:s3-outposts:region:123456789012:outpost/SOURCE-OUTPOST-ID/accesspoint/SOURCE-OUTPOSTS-BUCKET-ACCESS-POINT/object/*" ] }, { "Effect":"Allow", "Action":[ "s3-outposts:ReplicateObject", "s3-outposts:ReplicateDelete" ], "Resource":[ "arn:aws:s3-outposts:region:123456789012:outpost/DESTINATION-OUTPOST-ID/bucket/DESTINATION-OUTPOSTS-BUCKET/object/*", "arn:aws:s3-outposts:region:123456789012:outpost/DESTINATION-OUTPOST-ID/accesspoint/DESTINATION-OUTPOSTS-BUCKET-ACCESS-POINT/object/*" ] } ] }
      2. 다음 명령을 실행하여 정책을 생성하고 이를 역할에 연결합니다. user input placeholders를 사용자의 정보로 대체합니다.

        aws iam put-role-policy --role-name replicationRole --policy-document file://s3-on-outposts-role-permissions-policy.json --policy-name replicationRolePolicy --profile acctA
  5. SOURCE-OUTPOSTS-BUCKET 버킷에 복제 구성을 추가합니다.

    1. S3 on Outposts API는 XML 형식의 복제 구성을 요구하지만 AWS CLI는 JSON으로 지정된 복제 구성을 요구합니다. 다음 JSON을 로컬 컴퓨터의 현재 디렉터리에 replication.json 파일로 저장합니다. 이 구성을 사용하려면 user input placeholders를 실제 정보로 대체합니다.

      { "Role": "IAM-role-ARN", "Rules": [ { "Status": "Enabled", "Priority": 1, "DeleteMarkerReplication": { "Status": "Disabled" }, "Filter" : { "Prefix": "Tax"}, "Destination": { "Bucket": "arn:aws:s3-outposts:region:123456789012:outpost/DESTINATION-OUTPOST-ID/accesspoint/DESTINATION-OUTPOSTS-BUCKET-ACCESS-POINT" } } ] }
    2. 다음 put-bucket-replication 명령을 실행하여 소스 Outposts 버킷에 복제 구성을 추가합니다. 이 명령을 사용하려면 user input placeholders를 실제 정보로 대체합니다.

      aws s3control put-bucket-replication --account-id 123456789012 --bucket arn:aws:s3-outposts:region:123456789012:outpost/SOURCE-OUTPOST-ID/bucket/SOURCE-OUTPOSTS-BUCKET --replication-configuration file://replication.json --profile acctA
    3. 복제 구성을 검색하려면 get-bucket-replication 명령을 사용합니다. 이 명령을 사용하려면 user input placeholders를 실제 정보로 대체합니다.

      aws s3control get-bucket-replication --account-id 123456789012 --bucket arn:aws:s3-outposts:region:123456789012:outpost/SOURCE-OUTPOST-ID/bucket/SOURCE-OUTPOSTS-BUCKET --profile acctA
  6. Amazon S3 콘솔에서 다음과 같이 설정을 테스트합니다.

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

    2. SOURCE-OUTPOSTS-BUCKET 버킷에서 이름이 Tax인 폴더를 생성합니다.

    3. SOURCE-OUTPOSTS-BUCKET 버킷의 Tax 폴더에 샘플 객체를 추가합니다.

    4. DESTINATION-OUTPOSTS-BUCKET 버킷에서 다음을 확인합니다.

      • S3 on Outposts가 객체를 복제했습니다.

        참고

        S3 on Outposts가 객체를 복제하는 데 걸리는 시간은 객체 크기에 따라 다릅니다. 복제 상태를 확인하는 방법에 대한 자세한 내용은 복제 상태 정보 가져오기 단원을 참조하십시오.

      • 객체의 속성에서 복제 상태복제본으로 설정됩니다(이 객체를 복제본 객체로 식별함).