백업 정책 구문 및 예제 - AWS Organizations

백업 정책 구문 및 예제

이 페이지에서는 백업 정책 구문에 대해 설명하고 예제를 제공합니다.

백업 정책 구문

백업 정책은 JSON 규칙에 따라 구성된 일반 텍스트 파일입니다. 백업 정책 구문은 모든 관리 정책 유형에 대한 구문을 따릅니다. 해당 구문에 대한 자세한 내용은 관리 정책 유형에 대한 정책 구문 및 상속을 참조하세요. 이 항목에서는 백업 정책 유형의 특정 요구 사항에 해당 일반 구문을 적용하는 방법을 중점적으로 설명합니다.

백업 정책의 대부분은 백업 계획과 그 규칙입니다. AWS Organizations 백업 정책 내의 백업 계획 구문은 AWS Backup에서 사용하는 구문과 구조적으로 동일하지만 키 이름은 다릅니다. 아래 정책 키 이름에 대한 설명에는 각 이름에 해당하는 AWS Backup 계획 키 이름이 포함되어 있습니다. AWS Backup 계획에 대한 자세한 내용은 AWS Backup 개발자 안내서백업 계획 생성을 참조하세요.

참고

JSON을 사용하면 중복된 키 이름은 거부됩니다. 단일 정책에 여러 계획, 규칙 또는 선택을 포함하려면 각 키의 이름이 고유한지 확인합니다.

완전하고 제대로 작동하는 유효 백업 정책은 일정 및 규칙이 포함된 백업 계획 이상을 포함해야 합니다. 정책은 백업할 AWS 리전 및 리소스와, AWS Backup이 백업을 수행하는 데 사용할 수 있는 AWS Identity and Access Management(IAM) 역할도 식별해야 합니다.

다음의 기능적으로 완전한 정책은 기본 백업 정책 구문을 보여 줍니다. 이 예제를 계정에 직접 연결할 경우 AWS Backup은 us-east-1eu-north-1 리전의 해당 계정에서 태그 dataType의 값이 PII 또는 RED인 리소스를 모두 백업합니다. 이러한 리소스를 매일 오전 5시에 My_Backup_Vault로 백업하고 복제본을 My_Secondary_Vault에 저장합니다. 두 볼트는 모두 리소스와 동일한 계정에 있습니다. 정책은 명시적으로 지정한 다른 계정의 My_Tertiary_Vault에도 백업의 복사본을 저장합니다. 볼트는 유효 정책을 적용 받는 각 AWS 계정의 지정된 AWS 리전 각각에 이미 존재해야 합니다. 백업된 리소스가 EC2 인스턴스인 경우 해당 인스턴스의 백업에 대해 Microsoft Volume Shadow Copy Service(VSS) 지원이 활성화됩니다. 백업은 각 복구 지점에 태그 Owner:Backup을 적용합니다.

{ "plans": { "PII_Backup_Plan": { "rules": { "My_Hourly_Rule": { "schedule_expression": {"@@assign": "cron(0 5 ? * * *)"}, "start_backup_window_minutes": {"@@assign": "60"}, "complete_backup_window_minutes": {"@@assign": "604800"}, "enable_continuous_backup": {"@@assign": false}, "target_backup_vault_name": {"@@assign": "My_Backup_Vault"}, "recovery_point_tags": { "Owner": { "tag_key": {"@@assign": "Owner"}, "tag_value": {"@@assign": "Backup"} } }, "lifecycle": { "move_to_cold_storage_after_days": {"@@assign": "180"}, "delete_after_days": {"@@assign": "270"}, "opt_in_to_archive_for_supported_resources": {"@@assign": false} }, "copy_actions": { "arn:aws:backup:us-west-2:$account:backup-vault:My_Secondary_Vault": { "target_backup_vault_arn": { "@@assign": "arn:aws:backup:us-west-2:$account:backup-vault:My_Secondary_Vault" }, "lifecycle": { "move_to_cold_storage_after_days": {"@@assign": "180"}, "delete_after_days": {"@@assign": "270"}, "opt_in_to_archive_for_supported_resources": {"@@assign": false} } }, "arn:aws:backup:us-east-1:111111111111:backup-vault:My_Tertiary_Vault": { "target_backup_vault_arn": { "@@assign": "arn:aws:backup:us-east-1:111111111111:backup-vault:My_Tertiary_Vault" }, "lifecycle": { "move_to_cold_storage_after_days": {"@@assign": "180"}, "delete_after_days": {"@@assign": "270"}, "opt_in_to_archive_for_supported_resources": {"@@assign": false} } } } } }, "regions": { "@@append": [ "us-east-1", "eu-north-1" ] }, "selections": { "tags": { "My_Backup_Assignment": { "iam_role_arn": {"@@assign": "arn:aws:iam::$account:role/MyIamRole"}, "tag_key": {"@@assign": "dataType"}, "tag_value": { "@@assign": [ "PII", "RED" ] } } } }, "advanced_backup_settings": { "ec2": { "windows_vss": {"@@assign": "enabled"} } }, "backup_plan_tags": { "stage": { "tag_key": {"@@assign": "Stage"}, "tag_value": {"@@assign": "Beta"} } } } } }

백업 정책 구문에는 다음 구성 요소가 포함됩니다.

  • $account 변수 - 정책의 특정 텍스트 문자열에서 $account 변수를 사용하여 현재 AWS 계정을 나타낼 수 있습니다. AWS Backup은 유효 정책의 계획을 실행할 때 자동으로 이 변수를 유효 정책 및 계획이 실행 중인 현재 AWS 계정으로 바꿉니다.

    중요

    Amazon 리소스 이름(ARN)을 포함할 수 있는 정책 요소(예: 백업을 저장할 백업 볼트를 지정하는 요소 또는 백업을 수행할 권한이 있는 IAM 역할)에서만 $account 변수를 사용할 수 있습니다.

    예를 들어, 다음과 같은 경우에는 정책이 적용되는 각 AWS 계정에 My_Vault라는 이름의 볼트가 있어야 합니다.

    arn:aws:backup:us-west-2:$account:vault:My_Vault"

    AWS CloudFormation 스택 세트와 Organizations 간 통합을 사용하여 조직의 각 멤버 계정에 대한 백업 볼트 및 IAM 역할을 자동으로 생성하고 구성하는 것이 좋습니다. 자세한 내용은 AWS CloudFormation 사용 설명서자체 관리 권한으로 스택 세트 만들기를 참조하세요.

  • 상속 연산자 - 백업 정책은 상속 값-설정(value-setting) 연산자하위 제어 연산자를 모두 사용할 수 있습니다.

  • plans

    정책의 최상위 키에는 plans 키가 있습니다. 백업 정책은 항상 정책 파일의 맨 위에 있는 이 고정 키 이름으로 시작해야 합니다. 이 키 아래에 하나 이상의 백업 계획을 둘 수 있습니다.

  • plans 최상위 키 아래의 각 계획은 사용자가 할당한 백업 계획 이름으로 구성된 키 이름을 갖습니다. 위의 예제에서 백업 계획 이름은 PII_Backup_Plan입니다. 한 정책에 각각 고유한 rules, regions, selections, tags를 가진 여러 계획을 둘 수 있습니다.

    백업 정책의 이 백업 계획 키 이름은 AWS Backup 계획의 BackupPlanName 키 값에 매핑됩니다.

    각 객체에는 다음의 요소가 포함될 수 있습니다.

    • rules - 이 키에는 규칙 모음이 들어 있습니다. 각 규칙은 예약된 작업으로 변환되며, 유효 백업 정책의 selectionsregions 요소로 식별된 리소스를 백업할 시작 시간 및 기간이 포함됩니다.

    • regions - 이 키에는 이 정책으로 리소스를 백업할 수 있는 AWS 리전의 배열 목록이 들어 있습니다.

    • selections – 이 키에는 지정된 rules에 의해 백업되는 리소스 모음(지정된 regions에 있음)이 하나 이상 들어 있습니다.

    • advanced_backup_settings- 이 키에는 특정 리소스에서 실행되는 백업에 특정한 설정이 포함되어 있습니다.

    • backup_plan_tags - 백업 계획 자체에 연결되는 태그를 지정합니다.

  • rules

    rules 정책 키는 AWS Backup 계획의 Rules 키에 매핑됩니다. rules 키 아래에 하나 이상의 규칙을 포함할 수 있습니다. 각 규칙은 선택한 리소스에 대한 백업을 수행하는 예약된 작업이 됩니다.

    각 규칙에는 이름이 규칙 이름인 키가 포함됩니다. 위의 예제에서 규칙 이름은 “My_Hourly_Rule”입니다. 규칙 키의 값은 다음과 같은 규칙 요소의 모음입니다.

    • schedule_expression – 이 정책 키는 AWS Backup 계획의 ScheduleExpression 키에 매핑됩니다.

      백업의 시작 시간을 지정합니다. 이 키에는 @@assign 상속 값 연산자와, AWS Backup이 백업 작업을 시작할 시기를 지정하는 CRON 표현식을 가진 문자열 값이 포함됩니다. CRON 문자열의 일반적인 형식은 "cron( )"입니다. 각각은 숫자 또는 와일드카드입니다. 예를 들어 cron(0 5 ? * 1,3,5 *)는 매주 월요일, 수요일 및 금요일 오전 5시에 백업을 시작합니다. cron(0 0/1 ? * * *)는 매일 매시 정각에 백업을 시작합니다.

    • target_backup_vault_name – 이 정책 키는 AWS Backup 계획의 TargetBackupVaultName 키에 매핑됩니다.

      백업을 저장할 백업 볼트의 이름을 지정합니다. 이 값은 AWS Backup을 사용하여 생성합니다. 이 키에는 @@assign 상속 값 연산자와 볼트 이름이 포함된 문자열 값이 들어 있습니다.

      중요

      백업 계획을 처음 시작할 때 볼트가 이미 있어야 합니다. AWS CloudFormation 스택 세트 및 Organizations와의 통합을 사용하여 조직의 각 멤버 계정에 대한 백업 볼트 및 IAM 역할을 자동으로 생성하고 구성하는 것이 좋습니다. 자세한 내용은 AWS CloudFormation 사용 설명서자체 관리 권한으로 스택 세트 만들기를 참조하세요.

    • start_backup_window_minutes – 이 정책 키는 AWS Backup 계획의 StartWindowMinutes 키에 매핑됩니다.

      (선택 사항) 성공적으로 시작되지 않은 작업을 취소하기 전에 대기할 시간(분)을 지정합니다. 이 키에는 @@assign 상속 값 연산자와 정수 값(분)이 들어 있습니다.

    • complete_backup_window_minutes – 이 정책 키는 AWS Backup 계획의 CompletionWindowMinutes 키에 매핑됩니다.

      (선택 사항) 백업 작업이 성공적으로 시작된 후 완료되거나 AWS Backup에 의해 취소되기 전까지 시간(분)을 지정합니다. 이 키에는 @@assign 상속 값 연산자와 정수 값(분)이 들어 있습니다.

    • enable_continuous_backup – 이 정책 키는 AWS Backup 계획의 EnableContinuousBackup 키에 매핑됩니다.

      (선택 사항) AWS Backup이 연속 백업을 생성할지 여부를 지정합니다. True로 설정하면 AWS Backup이 PITR(point-in-time restore)을 지원하는 연속 백업을 생성합니다. False로 설정하면(또는 지정하지 않으면) AWS Backup이 스냅샷 백업을 생성합니다.

      참고

      PITR 지원 백업은 최대 35일 동안 유지할 수 있으므로 만약 다음 옵션 중 하나를 설정했다면 False를 선택하거나 값을 지정하지 않아야 합니다.

      • delete_after_days를 35보다 큰 값으로 설정.

      • move_to_cold_storage_after_days를 임의의 값으로 설정.

      연속 백업에 대한 자세한 내용은 AWS Backup 개발자 안내서특정 시점으로 복구를 참조하세요.

    • lifecycle – 이 정책 키는 AWS Backup 계획의 Lifecycle 키에 매핑됩니다.

      (선택 사항) AWS Backup이 이 백업을 콜드 스토리지로 전환하는 시기와 만료되는 시기를 지정합니다.

      • move_to_cold_storage_after_days – 이 정책 키는 AWS Backup 계획의 MoveToColdStorageAfterDays 키에 매핑됩니다.

        AWS Backup이 백업 후 복구 지점을 콜드 스토리지로 이동할 때까지 경과할 기간(일)을 지정합니다. 이 키에는 @@assign 상속 값 연산자와 정수 값(일)이 들어 있습니다.

      • delete_after_days – 이 정책 키는 AWS Backup 계획의 DeleteAfterDays 키에 매핑됩니다.

        AWS Backup이 백업 후 복구 지점을 삭제할 때까지 경과할 기간(일)을 지정합니다. 이 키에는 @@assign 상속 값 연산자와 정수 값(일)이 들어 있습니다. 이 값은 move_to_cold_storage_after_days에 지정된 일수로부터 최소 90일 이후여야 합니다.

      • opt_in_to_archive_for_supported_resources – 이 정책 키는 AWS Backup 계획의 OptInToArchiveForSupportedResources 키에 매핑됩니다.

        값을 true로 지정하면 설정은 지원되는 리소스를 수명 주기 설정에 따라 아카이브(콜드) 스토리지 계층으로 전환하도록 백업 계획에 지시합니다. Amazon EBS 스냅샷 아카이브 계층에 대한 자세한 내용은 Amazon EBS 사용 설명서Amazon EBS 스냅샷 아카이브를 참조하세요.

        다음 조건이 충족되는 경우에만 이 설정을 활성화할 수 있습니다.

        • 백업 정책 빈도가 1개월 이상입니다.

        • move_to_cold_storage_after_days가 있어야 합니다.

        • delete_after_days 에서 move_to_cold_storage_after_days를 뺀 값이 90일 이상입니다.

        이 키에는 @@assign 상속 값 연산자true 또는 false 값이 포함됩니다.

    • copy_actions – 이 정책 키는 AWS Backup 계획의 CopyActions 키에 매핑됩니다.

      (선택 사항) AWS Backup이 백업을 하나 이상의 추가 위치에 복사하도록 지정합니다. 각 백업 복사본 위치는 아래에 설명되어 있습니다.

      • 이름으로 해당 복사 작업을 고유하게 식별할 수 있는 키입니다. 이때 키 이름은 백업 볼트의 Amazon 리소스 이름(ARN)이어야 합니다. 이 키는 두 항목을 포함합니다.

        • target_backup_vault_arn – 이 정책 키는 AWS Backup 계획의 DestinationBackupVaultArn 키에 매핑됩니다.

          (선택 사항) AWS Backup이 백업의 추가 복사본을 저장할 볼트를 지정합니다. 이 키의 값은 @@assign 상속 값 연산자와 볼트의 ARN을 포함합니다.

          • 백업 정책이 실행 중인 AWS 계정의 볼트를 참조하려면 ARN에 계정 ID 번호 대신 $account 변수를 사용합니다. AWS Backup은 백업 계획을 실행할 때, 이 변수를 정책이 실행되는 AWS 계정의 실제 계정 ID 번호로 자동으로 바꿉니다. 이렇게 하면 백업 정책을 조직의 둘 이상의 계정에 적용할 때 백업이 올바르게 실행됩니다.

          • 동일한 조직에 있는 다른 AWS 계정의 볼트를 참조하려면 ARN에 실제 계정 ID 번호를 사용합니다.

          중요
          • 이 키가 없으면 상위 키 이름에 있는 모든 소문자 버전의 ARN이 사용됩니다. ARN은 대소문자를 구분하므로 이 문자열은 오류의 실제 ARN과 일치하지 않을 수 있으며 계획이 실패합니다. 따라서 항상 이 키 및 값을 제공하는 것이 좋습니다.

          • 백업 계획을 처음 시작할 때 백업을 복사하려는 백업 볼트가 사전에 존재해야 합니다. AWS CloudFormation 스택 세트 및 Organizations와의 통합을 사용하여 조직의 각 멤버 계정에 대한 백업 볼트 및 IAM 역할을 자동으로 생성하고 구성하는 것이 좋습니다. 자세한 내용은 AWS CloudFormation 사용 설명서자체 관리 권한으로 스택 세트 만들기를 참조하세요.

        • lifecycle – 이 정책 키는 AWS Backup 계획의 CopyAction 키 아래에 있는 Lifecycle 키에 매핑됩니다.

          (선택 사항) AWS Backup이 이 백업 복사본을 콜드 스토리지로 전환하는 시기와 만료되는 시기를 지정합니다.

          • move_to_cold_storage_after_days – 이 정책 키는 AWS Backup 계획의 MoveToColdStorageAfterDays 키에 매핑됩니다.

            AWS Backup이 이 백업 후 복구 지점을 콜드 스토리지로 이동할 때까지 경과할 기간(일)을 지정합니다. 이 키에는 @@assign 상속 값 연산자와 정수 값(일)이 들어 있습니다.

          • delete_after_days – 이 정책 키는 AWS Backup 계획의 DeleteAfterDays 키에 매핑됩니다.

            AWS Backup이 백업 후 복구 지점을 삭제할 때까지 경과할 기간(일)을 지정합니다. 이 키에는 @@assign 상속 값 연산자와 정수 값(일)이 들어 있습니다. 백업을 콜드 스토리지로 전환하는 경우 백업을 최소 90일 동안 유지해야 하므로 이 값은 move_to_cold_storage_after_days보다 90일 이상 커야 합니다.

    • recovery_point_tags – 이 정책 키는 AWS Backup 계획의 RecoveryPointTags 키에 매핑됩니다.

      (선택 사항) AWS Backup이 이 계획에서 생성하는 각 백업에 연결되는 태그를 지정합니다. 이 키의 값에는 다음 요소 중 하나 이상이 포함됩니다.

      • 이 키 이름/값 페어의 식별자. tag_key의 대/소문자 처리가 다르더라도 recovery_point_tags 아래의 각 요소에 대한 이 이름은 모두 소문자로 표시된 태그 키 이름입니다. 이 식별자는 대소문자를 구분하지 않습니다. 위의 예제에서 이 키 페어는 이름 Owner로 식별되었습니다. 각 키 페어에는 다음 요소가 들어 있습니다.

        • tag_key – 백업 계획에 연결할 태그 키 이름을 지정합니다. 이 키에는 @@assign 상속 값 연산자와 문자열 값이 들어 있습니다. 값은 대소문자를 구분합니다.

        • tag_value - 백업 계획에 연결되고 tag_key와 연결되는 값을 지정합니다. 이 키에는 상속 값 연산자와 유효 정책에서 대체, 추가 또는 제거할 하나 이상의 값이 들어 있습니다. 이러한 값은 대소문자를 구분합니다.

  • regions

    regions 정책 키는 AWS Backup이 selections 키의 조건과 일치하는 리소스를 찾기 위해 검색할 AWS 리전을 지정합니다. 이 키에는 상속 값 연산자와 AWS 리전 코드에 대한 하나 이상의 문자열 값(예: ["us-east-1", "eu-north-1"])이 들어 있습니다.

  • selections

    selections 정책 키는 이 정책의 계획 규칙에 의해 백업되는 리소스를 지정합니다. 이 키는 대략 AWS Backup의 BackupSelection 개체에 해당합니다. 리소스는 태그 키 이름 및 값을 일치시키는 쿼리에 의해 지정됩니다. selections 키는 그 아래에 하나의 키(tags)를 포함합니다.

    • tags – 리소스를 식별하는 태그와, 리소스를 쿼리해서 백업할 수 있는 권한이 있는 IAM 역할을 지정합니다. 이 키의 값에는 다음 요소 중 하나 이상이 포함됩니다.

      • 이 태그 요소의 식별자. 쿼리할 태그의 대/소문자 처리가 다르더라도 tags 아래의 이 식별자는 모두 소문자로 표시된 태그 키 이름입니다. 이 식별자는 대소문자를 구분하지 않습니다. 위의 예제에서 한 요소가 이름 My_Backup_Assignment로 식별되었습니다. tags의 각 식별자에는 다음 요소가 들어 있습니다.

        • iam_role_arnregions 키로 지정된 AWS 리전에서 태그 쿼리로 식별된 리소스에 액세스할 수 있는 권한이 있는 IAM 역할을 지정합니다. 이 값에는 @@assign 상속 값 연산자와 역할의 ARN이 포함된 문자열 값이 들어 있습니다. AWS Backup은 이 역할을 사용하여 리소스를 쿼리 및 검색하고 백업을 수행합니다.

          계정 ID 번호 대신 ARN의 $account 변수를 사용할 수 있습니다. AWS Backup은 백업 계획을 실행할 때, 이 변수를 정책이 실행되는 AWS 계정의 실제 계정 ID 번호로 자동으로 바꿉니다.

          중요

          백업 계획을 처음 시작할 때 역할이 이미 존재해야 합니다. AWS CloudFormation 스택 세트 및 Organizations와의 통합을 사용하여 조직의 각 멤버 계정에 대한 백업 볼트 및 IAM 역할을 자동으로 생성하고 구성하는 것이 좋습니다. 자세한 내용은 AWS CloudFormation 사용 설명서자체 관리 권한으로 스택 세트 만들기를 참조하세요.

        • tag_key - 검색할 태그 키 이름을 지정합니다. 이 키에는 @@assign 상속 값 연산자와 문자열 값이 들어 있습니다. 값은 대소문자를 구분합니다.

        • tag_valuetag_key와 일치하는 키 이름에 연결되어야 하는 값을 지정합니다. AWS Backup은 tag_keytag_value가 모두 일치하는 경우에만 리소스를 백업에 포함합니다. 이 키에는 상속 값 연산자와 유효 정책에서 대체, 추가 또는 제거할 하나 이상의 값이 들어 있습니다. 이러한 값은 대소문자를 구분합니다.

  • advanced_backup_settings – 특정 백업 시나리오에 대한 설정을 지정합니다. 이 키에는 하나 이상의 설정이 있습니다. 각 설정은 다음 요소를 포함하는 JSON 객체 문자열입니다.

    • 객체 키 이름 - 다음 고급 설정이 적용되는 리소스 유형을 지정하는 문자열입니다.

    • 객체 값 - 연관된 리소스 유형에 특정한 하나 이상의 백업 설정을 포함하는 JSON 객체 문자열입니다.

    현재 지원되는 유일한 고급 백업 설정은 Amazon EC2 인스턴스에서 실행 중인 Windows 또는 SQL Server에 대해 Microsoft Volume Shadow Copy Service(VSS) 백업을 사용하는 것입니다. 키 이름은 "ec2" 리소스 유형이어야 하며, 값은 Amazon EC2 인스턴스에서 실행되는 백업에 대해 "windows_vss" 지원을 enabled, 아니면 disabled 여부를 지정합니다. 이 기능에 대한 자세한 내용은 AWS Backup 개발자 안내서VSS 지원 Windows 백업 생성을 참조하세요.

    "advanced_backup_settings": { "ec2": { "windows_vss": { "@@assign": "enabled" } } }
  • backup_plan_tags – 백업 계획 자체에 연결되는 태그를 지정합니다. 규칙 또는 선택 사항에 지정된 태그에는 영향을 주지 않습니다.

    (선택 사항) 백업 계획에 태그를 연결할 수 있습니다. 이 키의 값은 요소의 모음입니다.

    쿼리할 태그의 대/소문자 처리가 다르더라도 backup_plan_tags 아래의 각 요소에 대한 키 이름은 모두 소문자로 표시된 태그 키 이름입니다. 이 식별자는 대소문자를 구분하지 않습니다. 이러한 각 항목의 값은 다음 키로 구성됩니다.

    • tag_key – 백업 계획에 연결할 태그 키 이름을 지정합니다. 이 키에는 @@assign 상속 값 연산자와 문자열 값이 들어 있습니다. 이 값은 대소문자를 구분합니다.

    • tag_value - 백업 계획에 연결되고 tag_key와 연결되는 값을 지정합니다. 이 키에는 @@assign 상속 값 연산자와 문자열 값이 들어 있습니다. 이 값은 대소문자를 구분합니다.

백업 정책 예제

다음 백업 정책 예제는 정보 제공 용도로만 제공됩니다. 다음 예제 중 일부에서는 공간을 절약하기 위해 JSON 공백 서식이 압축되었을 수 있습니다.

예제 1: 상위 노드에 할당된 정책

다음 예제에서는 계정의 상위 노드 중 하나에 할당된 백업 정책을 보여 줍니다.

상위 정책 – 이 정책은 조직의 루트 또는 모든 의도된 계정의 상위 OU에 연결할 수 있습니다.

{ "plans": { "PII_Backup_Plan": { "regions": { "@@assign": [ "ap-northeast-2", "us-east-1", "eu-north-1" ] }, "rules": { "Hourly": { "schedule_expression": { "@@assign": "cron(0 5/1 ? * * *)" }, "start_backup_window_minutes": { "@@assign": "480" }, "complete_backup_window_minutes": { "@@assign": "10080" }, "lifecycle": { "move_to_cold_storage_after_days": { "@@assign": "180" }, "delete_after_days": { "@@assign": "270" }, "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } }, "target_backup_vault_name": { "@@assign": "FortKnox" }, "copy_actions": { "arn:aws:backup:us-east-1:$account:backup-vault:secondary_vault": { "target_backup_vault_arn": { "@@assign": "arn:aws:backup:us-east-1:$account:backup-vault:secondary_vault" }, "lifecycle": { "move_to_cold_storage_after_days": { "@@assign": "30" }, "delete_after_days": { "@@assign": "120" }, "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } } }, "arn:aws:backup:us-west-1:111111111111:backup-vault:tertiary_vault": { "target_backup_vault_arn": { "@@assign": "arn:aws:backup:us-west-1:111111111111:backup-vault:tertiary_vault" }, "lifecycle": { "move_to_cold_storage_after_days": { "@@assign": "30" }, "delete_after_days": { "@@assign": "120" }, "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } } } } } }, "selections": { "tags": { "datatype": { "iam_role_arn": { "@@assign": "arn:aws:iam::$account:role/MyIamRole" }, "tag_key": { "@@assign": "dataType" }, "tag_value": { "@@assign": [ "PII", "RED" ] } } } }, "advanced_backup_settings": { "ec2": { "windows_vss": { "@@assign": "enabled" } } } } } }

계정에 상속되거나 연결된 다른 정책이 없는 경우 적용 가능한 각 AWS 계정에 렌더링된 유효 정책은 다음 예제와 같습니다. CRON 식은 백업을 한 시간에 한 번 실행합니다. 계정 ID 123456789012는 각 계정의 실제 계정 ID입니다.

{ "plans": { "PII_Backup_Plan": { "regions": [ "us-east-1", "ap-northeast-3", "eu-north-1" ], "rules": { "hourly": { "schedule_expression": "cron(0 0/1 ? * * *)", "start_backup_window_minutes": "60", "target_backup_vault_name": "FortKnox", "lifecycle": { "delete_after_days": "2", "move_to_cold_storage_after_days": "180", "opt_in_to_archive_for_supported_resources": "false" }, "copy_actions": { "arn:aws:backup:us-east-1:$account:vault:secondary_vault": { "target_backup_vault_arn": { "@@assign": "arn:aws:backup:us-east-1:$account:vault:secondary_vault" }, "lifecycle": { "delete_after_days": "28", "move_to_cold_storage_after_days": "180", "opt_in_to_archive_for_supported_resources": "false" } }, "arn:aws:backup:us-west-1:111111111111:vault:tertiary_vault": { "target_backup_vault_arn": { "@@assign": "arn:aws:backup:us-west-1:111111111111:vault:tertiary_vault" }, "lifecycle": { "delete_after_days": "28", "move_to_cold_storage_after_days": "180", "opt_in_to_archive_for_supported_resources": "false" } } } } }, "selections": { "tags": { "datatype": { "iam_role_arn": "arn:aws:iam::123456789012:role/MyIamRole", "tag_key": "dataType", "tag_value": [ "PII", "RED" ] } } }, "advanced_backup_settings": { "ec2": { "windows_vss": "enabled" } } } } }

예제 2: 상위 정책이 하위 정책과 병합

다음 예제에서는 상속된 상위 정책과 AWS 계정에 상속되거나 직접 연결된 하위 정책이 병합되어 유효 정책을 형성합니다.

상위 정책 – 이 정책은 조직의 루트 또는 모든 상위 OU에 연결할 수 있습니다.

{ "plans": { "PII_Backup_Plan": { "regions": { "@@append":[ "us-east-1", "ap-northeast-3", "eu-north-1" ] }, "rules": { "Hourly": { "schedule_expression": { "@@assign": "cron(0 0/1 ? * * *)" }, "start_backup_window_minutes": { "@@assign": "60" }, "target_backup_vault_name": { "@@assign": "FortKnox" }, "lifecycle": { "move_to_cold_storage_after_days": { "@@assign": "28" }, "delete_after_days": { "@@assign": "180" }, "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } }, "copy_actions": { "arn:aws:backup:us-east-1:$account:vault:secondary_vault" : { "target_backup_vault_arn" : { "@@assign" : "arn:aws:backup:us-east-1:$account:vault:secondary_vault" }, "lifecycle": { "move_to_cold_storage_after_days": { "@@assign": "28" }, "delete_after_days": { "@@assign": "180" }, "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } } } } } }, "selections": { "tags": { "datatype": { "iam_role_arn": { "@@assign": "arn:aws:iam::$account:role/MyIamRole" }, "tag_key": { "@@assign": "dataType" }, "tag_value": { "@@assign": [ "PII", "RED" ] } } } } } } }

하위 정책 – 이 정책은 상위 정책이 연결된 수준보다 낮은 수준에서 계정 또는 OU에 직접 연결할 수 있습니다.

{ "plans": { "Monthly_Backup_Plan": { "regions": { "@@append":[ "us-east-1", "eu-central-1" ] }, "rules": { "Monthly": { "schedule_expression": { "@@assign": "cron(0 5 1 * ? *)" }, "start_backup_window_minutes": { "@@assign": "480" }, "target_backup_vault_name": { "@@assign": "Default" }, "lifecycle": { "move_to_cold_storage_after_days": { "@@assign": "30" }, "delete_after_days": { "@@assign": "365" }, "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } }, "copy_actions": { "arn:aws:backup:us-east-1:$account:vault:Default" : { "target_backup_vault_arn" : { "@@assign" : "arn:aws:backup:us-east-1:$account:vault:Default" }, "lifecycle": { "move_to_cold_storage_after_days": { "@@assign": "30" }, "delete_after_days": { "@@assign": "365" }, "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } } } } } }, "selections": { "tags": { "MonthlyDatatype": { "iam_role_arn": { "@@assign": "arn:aws:iam::$account:role/MyMonthlyBackupIamRole" }, "tag_key": { "@@assign": "BackupType" }, "tag_value": { "@@assign": [ "MONTHLY", "RED" ] } } } } } } }

최종 유효 정책 – 계정에 적용되는 유효 정책에는 각각 자체 규칙 집합과 규칙을 적용할 리소스 집합이 있는 두 개의 계획이 포함됩니다.

{ "plans": { "PII_Backup_Plan": { "regions": [ "us-east-1", "ap-northeast-3", "eu-north-1" ], "rules": { "hourly": { "schedule_expression": "cron(0 0/1 ? * * *)", "start_backup_window_minutes": "60", "target_backup_vault_name": "FortKnox", "lifecycle": { "delete_after_days": "2", "move_to_cold_storage_after_days": "180", "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } }, "copy_actions": { "arn:aws:backup:us-east-1:$account:vault:secondary_vault" : { "target_backup_vault_arn" : { "@@assign" : "arn:aws:backup:us-east-1:$account:vault:secondary_vault" }, "lifecycle": { "move_to_cold_storage_after_days": "28", "delete_after_days": "180", "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } } } } } }, "selections": { "tags": { "datatype": { "iam_role_arn": "arn:aws:iam::$account:role/MyIamRole", "tag_key": "dataType", "tag_value": [ "PII", "RED" ] } } } }, "Monthly_Backup_Plan": { "regions": [ "us-east-1", "eu-central-1" ], "rules": { "monthly": { "schedule_expression": "cron(0 5 1 * ? *)", "start_backup_window_minutes": "480", "target_backup_vault_name": "Default", "lifecycle": { "delete_after_days": "365", "move_to_cold_storage_after_days": "30", "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } }, "copy_actions": { "arn:aws:backup:us-east-1:$account:vault:Default" : { "target_backup_vault_arn": { "@@assign" : "arn:aws:backup:us-east-1:$account:vault:Default" }, "lifecycle": { "move_to_cold_storage_after_days": "30", "delete_after_days": "365", "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } } } } } }, "selections": { "tags": { "monthlydatatype": { "iam_role_arn": "arn:aws:iam::&ExampleAWSAccountNo3;:role/MyMonthlyBackupIamRole", "tag_key": "BackupType", "tag_value": [ "MONTHLY", "RED" ] } } } } } }

예제 3: 상위 정책이 하위 정책에 의한 모든 변경을 금지

다음 예제에서 상속된 상위 정책은 하위 제어 연산자를 사용하여 모든 설정을 강제 적용하고 하위 정책이 설정을 변경 또는 재정의하는 것을 금지합니다.

상위 정책 – 이 정책은 조직의 루트 또는 모든 상위 OU에 연결할 수 있습니다. 정책의 모든 노드에 "@@operators_allowed_for_child_policies": ["@@none"]이 존재한다는 것은 하위 정책이 계획을 변경할 수 없음을 의미합니다. 또한 하위 정책은 유효 정책에 추가 계획을 추가할 수 없습니다. 이 정책은 연결된 OU 아래의 모든 OU 및 계정에 대해 유효한 정책이 됩니다.

{ "plans": { "@@operators_allowed_for_child_policies": ["@@none"], "PII_Backup_Plan": { "@@operators_allowed_for_child_policies": ["@@none"], "regions": { "@@operators_allowed_for_child_policies": ["@@none"], "@@append": [ "us-east-1", "ap-northeast-3", "eu-north-1" ] }, "rules": { "@@operators_allowed_for_child_policies": ["@@none"], "Hourly": { "@@operators_allowed_for_child_policies": ["@@none"], "schedule_expression": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "cron(0 0/1 ? * * *)" }, "start_backup_window_minutes": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "60" }, "target_backup_vault_name": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "FortKnox" }, "lifecycle": { "@@operators_allowed_for_child_policies": ["@@none"], "move_to_cold_storage_after_days": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "28" }, "delete_after_days": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "180" }, "opt_in_to_archive_for_supported_resources": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "false" } }, "copy_actions": { "@@operators_allowed_for_child_policies": ["@@none"], "arn:aws:backup:us-east-1:$account:vault:secondary_vault": { "@@operators_allowed_for_child_policies": ["@@none"], "target_backup_vault_arn": { "@@assign": "arn:aws:backup:us-east-1:$account:vault:secondary_vault", "@@operators_allowed_for_child_policies": ["@@none"] }, "lifecycle": { "@@operators_allowed_for_child_policies": ["@@none"], "delete_after_days": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "28" }, "move_to_cold_storage_after_days": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "180" }, "opt_in_to_archive_for_supported_resources": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "false" } } } } } }, "selections": { "@@operators_allowed_for_child_policies": ["@@none"], "tags": { "@@operators_allowed_for_child_policies": ["@@none"], "datatype": { "@@operators_allowed_for_child_policies": ["@@none"], "iam_role_arn": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "arn:aws:iam::$account:role/MyIamRole" }, "tag_key": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "dataType" }, "tag_value": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": [ "PII", "RED" ] } } } }, "advanced_backup_settings": { "@@operators_allowed_for_child_policies": ["@@none"], "ec2": { "@@operators_allowed_for_child_policies": ["@@none"], "windows_vss": { "@@assign": "enabled", "@@operators_allowed_for_child_policies": ["@@none"] } } } } } }

최종 유효 정책 – 하위 백업 정책이 존재하면 해당 정책이 무시되고 상위 정책이 유효 정책이 됩니다.

{ "plans": { "PII_Backup_Plan": { "regions": [ "us-east-1", "ap-northeast-3", "eu-north-1" ], "rules": { "hourly": { "schedule_expression": "cron(0 0/1 ? * * *)", "start_backup_window_minutes": "60", "target_backup_vault_name": "FortKnox", "lifecycle": { "delete_after_days": "2", "move_to_cold_storage_after_days": "180", "opt_in_to_archive_for_supported_resources": "false" }, "copy_actions": { "target_backup_vault_arn": "arn:aws:backup:us-east-1:123456789012:vault:secondary_vault", "lifecycle": { "move_to_cold_storage_after_days": "28", "delete_after_days": "180", "opt_in_to_archive_for_supported_resources": "false" } } } }, "selections": { "tags": { "datatype": { "iam_role_arn": "arn:aws:iam::123456789012:role/MyIamRole", "tag_key": "dataType", "tag_value": [ "PII", "RED" ] } } }, "advanced_backup_settings": { "ec2": {"windows_vss": "enabled"} } } } }

예제 4: 상위 정책이 하위 정책에 의한 한 백업 계획의 변경을 금지

다음 예제에서 상속된 상위 정책은 하위 제어 연산자를 사용하여 단일 계획의 설정을 강제 적용하고 하위 정책이 해당 설정을 변경 또는 재정의하는 것을 금지합니다. 하위 정책은 여전히 추가 계획을 추가할 수 있습니다.

상위 정책 – 이 정책은 조직의 루트 또는 모든 상위 OU에 연결할 수 있습니다. 이 예제는 plans 최상위 수준을 제외하고 모든 하위 상속 연산자가 차단된 이전 예제와 유사합니다. 이 수준에서 @@append 설정을 사용하면 하위 정책이 유효 정책의 모음에 다른 계획을 추가할 수 있습니다. 상속된 계획에 대한 변경 사항은 여전히 모두 차단됩니다.

명확성을 위해 계획 섹션은 잘렸습니다.

{ "plans": { "@@operators_allowed_for_child_policies": ["@@append"], "PII_Backup_Plan": { "@@operators_allowed_for_child_policies": ["@@none"], "regions": { ... }, "rules": { ... }, "selections": { ... } } } }

하위 정책 – 이 정책은 상위 정책이 연결된 수준보다 낮은 수준에서 계정 또는 OU에 직접 연결할 수 있습니다. 이 하위 정책은 새 계획을 정의합니다.

명확성을 위해 계획 섹션은 잘렸습니다.

{ "plans": { "MonthlyBackupPlan": { "regions": { ... }, "rules": { ... }, "selections": { … } } } }

최종 유효 정책 – 유효 정책에는 두 계획이 모두 포함됩니다.

{ "plans": { "PII_Backup_Plan": { "regions": { ... }, "rules": { ... }, "selections": { ... } }, "MonthlyBackupPlan": { "regions": { ... }, "rules": { ... }, "selections": { … } } } }

예제 5: 하위 정책이 상위 정책의 설정을 재정의

다음 예제에서 하위 정책은 값-설정(value-setting) 연산자를 사용하여 상위 정책에서 상속된 설정 일부를 재정의합니다.

상위 정책 – 이 정책은 조직의 루트 또는 모든 상위 OU에 연결할 수 있습니다. 해당 작업을 금지하는 하위 제어 연산자가 없는 경우 기본 동작은 하위 정책에 @@assign, @@append 또는 @@remove를 허용하는 것이므로 하위 정책은 모든 설정을 재정의할 수 있습니다. 상위 정책에는 유효한 백업 계획에 필요한 모든 요소가 포함되어 있으므로 정책이 있는 그대로 상속되면 리소스가 성공적으로 백업됩니다.

{ "plans": { "PII_Backup_Plan": { "regions": { "@@append": [ "us-east-1", "ap-northeast-3", "eu-north-1" ] }, "rules": { "Hourly": { "schedule_expression": {"@@assign": "cron(0 0/1 ? * * *)"}, "start_backup_window_minutes": {"@@assign": "60"}, "target_backup_vault_name": {"@@assign": "FortKnox"}, "lifecycle": { "delete_after_days": {"@@assign": "2"}, "move_to_cold_storage_after_days": {"@@assign": "180"}, "opt_in_to_archive_for_supported_resources": {"@@assign": false} }, "copy_actions": { "arn:aws:backup:us-east-1:$account:vault:t2": { "target_backup_vault_arn": {"@@assign": "arn:aws:backup:us-east-1:$account:vault:t2"}, "lifecycle": { "move_to_cold_storage_after_days": {"@@assign": "28"}, "delete_after_days": {"@@assign": "180"}, "opt_in_to_archive_for_supported_resources": {"@@assign": false} } } } } }, "selections": { "tags": { "datatype": { "iam_role_arn": {"@@assign": "arn:aws:iam::$account:role/MyIamRole"}, "tag_key": {"@@assign": "dataType"}, "tag_value": { "@@assign": [ "PII", "RED" ] } } } } } } }

하위 정책 – 하위 정책에는 상속된 상위 정책과 달라야 하는 설정만 포함됩니다. 유효 정책으로 병합될 때 다른 필수 설정을 제공하는 상속된 상위 정책이 있어야 합니다. 그렇지 않으면 예상대로 리소스를 백업하지 않는 잘못된 백업 계획이 유효 백업 정책에 포함됩니다.

{ "plans": { "PII_Backup_Plan": { "regions": { "@@assign": [ "us-west-2", "eu-central-1" ] }, "rules": { "Hourly": { "schedule_expression": {"@@assign": "cron(0 0/2 ? * * *)"}, "start_backup_window_minutes": {"@@assign": "80"}, "target_backup_vault_name": {"@@assign": "Default"}, "lifecycle": { "move_to_cold_storage_after_days": {"@@assign": "30"}, "delete_after_days": {"@@assign": "365"}, "opt_in_to_archive_for_supported_resources": {"@@assign": false} } } } } } }

최종 유효 정책 – 유효 정책에는 두 정책의 설정이 모두 포함되며 하위 정책이 제공하는 설정은 상위 정책에서 상속된 설정을 재정의합니다. 이 예제에서는 다음과 같이 변경됩니다.

  • 리전 목록이 완전히 다른 목록으로 바뀝니다. 상속된 목록에 리전을 추가하려면 하위 정책에 @@assign 대신 @@append를 사용합니다.

  • AWS Backup은 1시간이 아닌 2시간마다 백업을 수행합니다.

  • AWS Backup은 60분이 아닌 80분 동안 백업을 시작할 수 있습니다.

  • AWS Backup은 FortKnox 대신 Default 볼트를 사용합니다.

  • 백업을 콜드 스토리지로 이전 및 최종 삭제하기 위한 수명 주기가 모두 연장됩니다.

{ "plans": { "PII_Backup_Plan": { "regions": [ "us-west-2", "eu-central-1" ], "rules": { "hourly": { "schedule_expression": "cron(0 0/2 ? * * *)", "start_backup_window_minutes": "80", "target_backup_vault_name": "Default", "lifecycle": { "delete_after_days": "365", "move_to_cold_storage_after_days": "30", "opt_in_to_archive_for_supported_resources": "false" }, "copy_actions": { "arn:aws:backup:us-east-1:$account:vault:secondary_vault": { "target_backup_vault_arn": {"@@assign": "arn:aws:backup:us-east-1:$account:vault:secondary_vault"}, "lifecycle": { "move_to_cold_storage_after_days": "28", "delete_after_days": "180", "opt_in_to_archive_for_supported_resources": "false" } } } } }, "selections": { "tags": { "datatype": { "iam_role_arn": "arn:aws:iam::$account:role/MyIamRole", "tag_key": "dataType", "tag_value": [ "PII", "RED" ] } } } } } }