バックアップポリシーの構文と例 - AWS Organizations

バックアップポリシーの構文と例

このページでは、バックアップポリシーの構文について説明し、例を示します。

バックアップポリシーの構文

バックアップポリシーは、JSON のルールに従って構造化されたプレーンテキストファイルです。バックアップポリシーの構文は、すべての管理ポリシータイプの構文に従います。この構文の詳細については、「ポリシー構文と管理ポリシータイプの継承」を参照してください。このトピックでは、一般的な構文をバックアップポリシータイプの特定の要件に適用することを重点的に扱っています。

バックアップポリシーの大部分は、バックアッププランとそのルールで構成されます。AWS Organizations バックアップポリシー内のバックアッププランの構文は、AWS Backup で使用される構文と構造的には同じですが、キー名は異なります。以下のポリシーキー名の説明には、それぞれ同等の AWS Backup プランキー名が含まれています。AWS Backup プランについて詳しくは、AWS Backup デベロッパーガイドCreateBackupPlan を参照してください。

注記

JSON を使用すると、重複するキー名は拒否されます。1 つのポリシーに複数の計画、ルール、または選択を含める場合は、各キーの名前が一意であることを確認します。

完全であり、かつ機能するには、有効なバックアップポリシーに、スケジュールとルールを備えたバックアッププラン以上のものを含める必要があります。ポリシーでは、バックアップする AWS リージョン とリソース、および AWS Backup でバックアップの実行に使用できる AWS Identity and Access Management (IAM) ロールも特定する必要があります。

次の機能的に完全なポリシーは、基本的なバックアップポリシーの構文を示します。このサンプルがアカウントに直接アタッチされている場合、AWS Backup は、us-east-1 および eu-north-1 リージョン内にあり、かつ、値が PII または RED のタグ dataType を持つそのアカウントのすべてのリソースをバックアップします。これらのリソースを毎日午前 5:00 に My_Backup_Vault にバックアップし、My_Secondary_Vault にコピーを保存します。これらのボールトは両方ともリソースと同じアカウントにあります。また、明示的に指定された別の My_Tertiary_Vault にバックアップのコピーを保存します。ボールトは、有効なポリシーを受け取る各 AWS アカウント について、指定した両方の AWS リージョン にあらかじめ存在している必要があります。バックアップされたリソースに EC2 インスタンスが含まれている場合、それらのインスタンスのバックアップに対し、Microsoft ボリュームシャドウコピーサービス (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 アカウント に自動的に置き換えられます。

    重要

    $account 変数は、Amazon リソースネーム (ARN) を含めることができるポリシー要素でのみ使用できます。例えば、バックアップを格納するバックアップボールトを指定したり、バックアップを実行するアクセス許可を持つ IAM ロールを指定したりできるポリシー要素です。

    例えば、以下の例では、ポリシーが適用される各 AWS アカウント に My_Vault という名前のボールトが存在する必要があります。

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

    組織内の各メンバーアカウントのバックアップボールトと IAM ロールを自動的に作成および設定するには、AWS CloudFormation StackSets、およびその Organizations との統合を使用することをお勧めします。詳細については、AWS CloudFormation ユーザーガイドセルフマネージド型のアクセス許可を持つスタックセットの作成を参照してください。

  • 継承演算子 - バックアップポリシーでは、継承値設定演算子および子制御演算子の両方を使用できます。

  • plans

    ポリシーの最上位レベルにあるキーは plans キーです。バックアップポリシーは、常にポリシーファイルの先頭にこの固定キー名のある状態で開始する必要があります。このキーの下に、1 つ以上のバックアッププランを配置できます。

  • plans 最上位キーの下にある各プランには、ユーザーが割り当てたバックアッププラン名で構成されるキー名があります。前の例では、バックアッププラン名は PII_Backup_Plan です。1 つのポリシーには複数のプランを含めることができ、それぞれに独自の rulesregionsselectionstags を設定できます。

    バックアップポリシーにあるこのバックアッププランキー名は、AWS Backup プランにある BackupPlanName キーの値にマップされます。

    各プランには次の要素を含めることができます。

    • rules - このキーには、ルールのコレクションが格納されます。各ルールは、開始時刻とウィンドウがスケジュールされたタスクに変換され、そのスケジュールに基づき、有効なバックアップポリシーの selections 要素と regions 要素によって識別されるリソースをバックアップします。

    • regions - このキーには、このポリシーでリソースをバックアップできる AWS リージョン の配列リストが格納されます。

    • selections - このキーには、指定した rules によってバックアップされる (指定した regions 内にある) リソースのコレクションが 1 つ以上格納されます。

    • advanced_backup_settings - このキーには、特定のリソースで実行されるバックアップに固有の設定が格納されます。

    • backup_plan_tags - これは、バックアッププラン自体にアタッチされるタグを指定します。

  • rules

    rules ポリシーキーは、AWS Backup プラン内の Rules キーにマッピングされます。rules キーの下に 1 つ以上のルールを設定できます。各ルールは、選択したリソースのバックアップを実行するスケジュールされたタスクになります。

    各ルールにはキーがあり、そのキー名がルールの名前です。前の例では、ルール名は「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 ? * * *) は、1 週間毎日、毎正時にバックアップを開始します。

    • target_backup_vault_name - このポリシーキーは、AWS Backup プランの TargetBackupVaultName キーにマッピングされます。

      バックアップを保存するバックアップボールトの名前を指定します。AWS Backup を使用して値を作成します。このキーには、@@assign 継承値演算子とボールト名を持つ文字列値が格納されます。

      重要

      バックアッププランを最初に起動するときには、ボールトがすでに存在している必要があります。組織内の各メンバーアカウントのバックアップボールトと IAM ロールを自動的に作成および設定するには、AWS CloudFormation StackSets、およびその Organizations との統合を使用することをお勧めします。詳細については、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) が可能な連続バックアップを作成します。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 Snapshots Archive 階層の詳細については、「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 がバックアップを 1 つ以上の追加の場所にコピーするように指定します。各バックアップコピーの場所は次のように記述されます。

      • そのコピーアクションを一意に識別する名前を持つキー。現時点で、キー名はバックアップボールトの Amazon リソースネーム (ARN) である必要があります。このキーには、2 つのエントリが含まれます。

        • target_backup_vault_arn - このポリシーキーは、AWS Backup プランの DestinationBackupVaultArn キーにマッピングされます。

          (オプション) AWS Backup がバックアップの追加のコピーを保存するボールトを指定します。このキーの値には、@@assign 継承値演算子と、ボールトの ARN が格納されます。

          • バックアップポリシーが実行されている AWS アカウント のボールトを参照するには、アカウント ID 番号の代わりに $account 変数を ARN に追加します。バックアッププランが AWS Backup によって実行されると、変数は、ポリシーが実行されている AWS アカウント の実際のアカウント ID 番号に自動的に置き換えられます。これにより、バックアップポリシーが組織内の複数のアカウントに適用される場合でも、バックアップが正常に実行されます。

          • 同じ組織内の異なる AWS アカウント のボールトを参照するには、実際のアカウント ID 番号を ARN に使用します。

          重要
          • このキーがない場合、親キーの名前をすべて小文字で表記したものが ARN に使用されます。ARN では大文字と小文字が区別されるため、この文字列がボールトの実際の ARN と一致せず、プランが失敗する可能性があります。このため、このキーと値は常に指定することをお勧めします。

          • バックアップのコピー先にするバックアップボールトは、最初にバックアッププランを起動する時点ですでに存在している必要があります。組織内の各メンバーアカウントのバックアップボールトと IAM ロールを自動的に作成および設定するには、AWS CloudFormation StackSets、およびその Organizations との統合を使用することをお勧めします。詳細については、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 がアタッチするタグを指定します。このキーの値には、以下の要素が 1 つ以上含まれます。

      • このキー名と値のペアの識別子。recovery_point_tags の下の各要素のこの名前は、tag_key で大文字と小文字の取り扱いが異なる場合でも、すべて小文字のタグキー名です。この識別子では、大文字と小文字は区別されません。前の例では、このキーペアは名前 Owner で識別されました。各キーペアには、以下の要素が含まれます。

        • tag_key - バックアッププランにアタッチするタグキー名を指定します。このキーには、@@assign 継承値演算子および文字列値が格納されます。 値では、大文字と小文字が区別されます。

        • tag_value - バックアッププランに適用され、tag_key に関連付けられている値を指定します。このキーには、継承値演算子、有効なポリシーの置換、追加、または削除する 1 つ以上の値が格納されます。これらの値は大文字と小文字が区別されます。

  • regions

    regions ポリシーキーでは、AWS Backup が selections キー内の条件に一致するリソースを検索する AWS リージョン リージョンを指定します。このキーには、継承値演算子と、AWS リージョン コードの文字列値 (例: ["us-east-1", "eu-north-1"]) が 1 つ以上含まれます。

  • selections

    selections ポリシーキーは、このポリシーのプランルールによってバックアップされるリソースを指定します。このキーは、AWS Backup の BackupSelection オブジェクトにほぼ対応します。リソースは、タグキー名と値をマッチングするためのクエリによって指定されます。selections キーの下には、tags という 1 つのキーが含まれています。

    • tags - リソースを識別するタグと、リソースに対してクエリおよびバックアップを実行するアクセス許可を持つ IAM ロールを指定します。このキーの値には、以下の要素が 1 つ以上含まれます。

      • このタグ要素の識別子。tags の下にあるこの識別子は、クエリするタグの大文字と小文字の取り扱いが異なる場合でも、すべて小文字のタグキー名です。この識別子では、大文字と小文字は区別されません。前の例では、1 つの要素が名前 My_Backup_Assignment で識別されました。tags の下の各識別子には、以下の要素が含まれています。

        • iam_role_arn - regions キーで指定された AWS リージョン で、タグクエリによって識別されるリソースへのアクセス許可を持つ IAM ロールを指定します。この値には、@@assign 継承値演算子と、ロールの ARN を含む文字列値が含まれます。AWS Backup は、このロールを使用して、リソースのクエリと検出、およびバックアップを実行します。

          アカウント ID 番号の代わりに、ARN の $account 変数を使用できます。バックアッププランが AWS Backup によって実行されると、変数は、ポリシーが実行されている AWS アカウント の実際の アカウント ID 番号に自動的に置き換えられます。

          重要

          このロールは、バックアッププランを最初に起動するときにすでに存在している必要があります。組織内の各メンバーアカウントのバックアップボールトと IAM ロールを自動的に作成および設定するには、AWS CloudFormation StackSets、およびその Organizations との統合を使用することをお勧めします。詳細については、AWS CloudFormation ユーザーガイドセルフマネージド型のアクセス許可を持つスタックセットの作成を参照してください。

        • tag_key - 検索するタグキー名を指定します。このキーには、@@assign 継承値演算子および文字列値が格納されます。 値では、大文字と小文字が区別されます。

        • tag_value - tag_key と一致するキー名に関連付ける必要がある値を指定します。tag_keytag_value の両方が一致する場合にのみ、AWS Backup のバックアップにリソースが含められます。このキーには、継承値演算子、有効なポリシーの置換、追加、または削除する 1 つ以上の値が格納されます。これらの値は大文字と小文字が区別されます。

  • advanced_backup_settings - 特定のバックアップシナリオの設定を指定します。このキーには 1 つ以上の設定が含まれます。各設定は、次の要素を持つ JSON オブジェクト文字列です。

    • オブジェクトキー名 - 次の詳細設定が適用されるリソースのタイプを指定する文字列。

    • オブジェクト値 - 関連付けられたリソースタイプに固有のバックアップ設定を 1 つ以上含む JSON オブジェクト文字列。

    現時点でサポートされている高度なバックアップ設定で利用可能なのは、Amazon EC2 インスタンスで実行される Windows または SQL Server の Microsoft ボリュームシャドウコピーサービス (VSS) バックアップだけです。キー名は "ec2" リソースタイプであるる必要があります。この値により、Amazon EC2 インスタンスで実行されるバックアップに対する "windows_vss" サポートを enabled にするか disabled にするかを指定できます。この機能について詳しくは、AWS Backup デベロッパーガイドCreating a VSS-Enabled Windows Backup を参照してください。

    "advanced_backup_settings": { "ec2": { "windows_vss": { "@@assign": "enabled" } } }
  • backup_plan_tags - バックアッププラン自体にアタッチされるタグを指定します。これは、ルールまたは選択で指定されたタグには影響しません。

    (オプション) バックアッププランにタグをアタッチできます。このキーの値は、要素のコレクションです。

    backup_plan_tags の下の各要素のキー名は、クエリするタグの大文字と小文字の取り扱いが異なる場合でも、すべて小文字のタグキー名です。この識別子では、大文字と小文字は区別されません。これらの各エントリの値は、次のキーで構成されます。

    • tag_key - バックアッププランにアタッチするタグキー名を指定します。このキーには、@@assign 継承値演算子および文字列値が格納されます。この値では、大文字と小文字が区別されます。

    • tag_value - バックアッププランに適用され、tag_key に関連付けられている値を指定します。このキーには、@@assign 継承値演算子および文字列値が格納されます。この値では、大文字と小文字が区別されます。

バックアップポリシーの例

次のサンプルバックアップポリシーは、情報提供のみを目的としています。以下の例の一部では、スペースを節約するために JSON の空白書式が圧縮される場合があります。

例 1: 親ノードに割り当てられたポリシー

次の例は、アカウントの親ノードの 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" ] } } } } } } }

最終的に適用される有効なポリシー - アカウントに適用される有効なポリシーには、2 つのプランがあり、それぞれに独自のルールのセットとルールを適用するリソースのセットがあります。

{ "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: 親ポリシーが、子ポリシーによる 1 つのバックアッププランへの変更を防止する

次の例では、継承された親ポリシーが子制御演算子を使用して単一のプランの設定を強制し、子ポリシーによって変更またはオーバーライドされないようにします。子ポリシーがプランを追加することはできます。

親ポリシー - このポリシーは、組織のルートまたは任意の親 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: 子ポリシーが親ポリシーの設定をオーバーライドする

次の例では、子ポリシーが値設定演算子を使用して、親ポリシーから継承された設定の一部をオーバーライドしています。

親ポリシー - このポリシーは、組織のルートまたは任意の親 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 時間おきに実行されます。

  • 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" ] } } } } } }