[アップデート]AWS Backupで組織レベルでバックアップインデックスを作成できるようになりました

[アップデート]AWS Backupで組織レベルでバックアップインデックスを作成できるようになりました

Clock Icon2025.05.29

お疲れさまです。とーちです。

AWS Backup で、バックアップポリシー内でのバックアップインデックスの作成がサポートされるようになったというアップデートがありました。これにより、組織レベルでバックアップインデックスを自動作成できるようになります。実際に試してみたので紹介します。

https://aws.amazon.com/about-aws/whats-new/2025/05/aws-backup-search-backup-indexes-backup-policies/

今回のアップデートはバックアップポリシーとバックアップインデックスの2つの要素を理解する必要があるのでこれらをまず簡単に解説します。

そもそもバックアップポリシーとは?

バックアップポリシーは AWS Organizations で組織内のアカウントのAWS Backupによる バックアッププラン を統一的に作成するためのものです。

バックアップポリシーを特定のOUに対して設定するとそのOUの配下のAWSアカウント全てで同じバックアッププランが作成されます。

バックアップポリシーでは、バックアッププランに関連する以下のような要素をポリシーとして定義し、設定することができます。

  • バックアッププラン
  • バックアップルール
  • リソースの割り当て
  • バックアッププランのタグ
  • アドバンスドバックアップ設定

詳しくは以下の記事もご参照ください。

https://dev.classmethod.jp/articles/aws-organizations-aws-backup-policy/

バックアップインデックスでできること

複数のバックアップを検索して特定のファイルまたはオブジェクトを見つけることができます。ファイル名、作成時間、サイズなどの 1 つまたは複数のフィルターに基づいて検索条件を指定できます。

探している特定のファイルまたはオブジェクトを特定したら、完全バックアップを復元するのではなく、それらの項目だけを Amazon S3 バケット等に復元することを選択できます。これにより、全てのファイル、オブジェクトをリストアしなくて済むので、復旧時間を短縮できるというわけです。

バックアップインデックスの作り方ですが、手動でバックアップを作成する 「オンデマンドバックアップ」実施時に指定するほか、スケジュールでバックアップジョブを作成する 「バックアッププラン」 の設定の中にもインデックス作成のオプションがあります。

以下の記事を見ると具体的な使用のイメージができるかと思います。

https://dev.classmethod.jp/articles/aws-backup-item-level-recovery/

今回のアップデートについて

バックアップポリシーとバックアップインデックスの2つの要素についてざっと理解できたところで、今回のアップデートの説明です。

今回のアップデートでは、バックアップポリシー内でバックアップインデックスの作成がサポートされたというものになります。

これはつまり、バックアップポリシーで記載するバックアッププランの設定でインデックス作成オプションが使用できるようになったということです。

これにより、バックアップポリシーをアタッチすれば、対象のOU内で Amazon S3 バックアップまたは Amazon EBS スナップショットのバックアップインデックスが自動で作成されるようになりました。

実際に試してみる

それではさっそくやってみましょう。

バックアップポリシーを作成する際の流れは以下の記事が大変参考になります。

https://dev.classmethod.jp/articles/aws-organizations-aws-backup-policy/

上記の記事では、管理アカウントも含めて一律のバックアッププランを作成していますが、今回はメンバーアカウント上でインデックス有効設定のバックアッププラン作成が確認できれば良いので、管理アカウント上でのボールトやIAMロールの作成は割愛しています。

作業の流れ

今回の作業の流れは以下の通りです

  1. メンバーアカウントでの事前準備

    • AWS Backup用のIAMロールを作成
  2. 管理アカウントでの設定

    • バックアップポリシー等のAWS Backupのクロスアカウント管理設定を有効化
    • バックアップポリシーの作成・アタッチ
  3. メンバーアカウントでの実行・確認

    • バックアップ対象にタグ付け
    • バックアップインデックスが作成されることを確認

1. メンバーアカウントでIAMロールの設定

AWS Backupでのバックアップ作成に関する権限について詳細は以下を参照ですが、AWSBackupServiceRolePolicy〜で始まるポリシーを付けておけばOKです。

今回は以下の設定でIAMロールを作成しました

IAMロール名: OrganizationBackupManagement-Role

許可ポリシー:

  • AWSBackupServiceRolePolicyForBackup
  • AWSBackupServiceRolePolicyForIndexing
  • AWSBackupServiceRolePolicyForItemRestores
  • AWSBackupServiceRolePolicyForRestores
  • AWSBackupServiceRolePolicyForS3Backup
  • AWSBackupServiceRolePolicyForS3Restore

信頼ポリシー:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "backup.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

2. 管理アカウントでの設定

2-1. バックアップポリシーの有効化

まず管理アカウントで作業します。

バックアップポリシーが有効になっていない場合は Organizations の画面から有効にしましょう。

alt text

alt text

続いて AWS Backup の画面に移動し、設定からクロスアカウントモニタリングを有効にします。(こちらの画面からでもバックアップポリシーを有効化できたことに後から気づきました)

この設定により、メンバーアカウントのバックアップジョブの状況を管理アカウントから一元的に確認できるようになるので、とりあえず有効にしておいたほうが良いと思います。

alt text

2-2. バックアップポリシーの作成

続いて AWS Backup の画面から、バックアップポリシーを作成します。

alt text

バックアップポリシーはビジュアルエディタまたはJSONで作成することができますが、ビジュアルエディタではまだインデックス作成の有無を指定できないようでした。そのためJSONで作成する必要があります。

alt text

JSONでのバックアッププラン構文

JSONでバックアッププランを書く際の構文ですが以下のようになっています。

{
  "plans": {
    "PlanName": {
      "rules": { ... },         // バックアップの実行方法とタイミングを定義
      "regions": { ... },       // 対象リソースが存在するリージョンを定義
      "selections": { ... },    // バックアップ対象のリソースを定義 (タグまたはARNで指定)
      "advanced_backup_settings": { ... }, // 詳細設定 (オプション)
      "backup_plan_tags": { ... }         // プラン自体のタグ (オプション)
    }
  }
}

バックアップポリシーの継承制御

またバックアップポリシーでは、親OUでポリシーを設定すると、その配下の子OUにも自動的にポリシーが引き継がれます。この継承の動作を制御するために @@assign@@append@@none といった演算子が用意されています。

@@assign@@append演算子は各設定項目で使用します。例:"regions": { "@@assign": [ "ap-northeast-1" ] }

@@none については少し使い方が特殊なので、公式ドキュメントの記載例を参考にしたほうが良いと思います。

それぞれの演算子の意味合いは以下のようになっています

演算子 動作 具体例
@@assign 子OUで親の設定を完全に上書き 親:東京リージョン
子:大阪リージョン
→ 結果:大阪リージョンのみ
@@append 子OUで親の設定に値を追加 親:東京リージョン
子:大阪リージョン
→ 結果:東京+大阪リージョン
@@none 子OUでの設定変更を禁止 親:東京リージョン
子:変更不可
→ 結果:東京リージョンのみ

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

今回は以下のような設定にしてみました。毎時でバックアップを取得、バックアップ対象には特定のタグ(dataType:PII or dataType:RED)がついたAWSリソースを指定しています。

また、index_actions の箇所で今回のアップデート内容であるバックアップインデックスの作成を指定しています。

{
    "plans": {
        "PII_Backup_Plan": {
            "regions": {
                "@@assign": [
                    "ap-northeast-1"
                ]
            },
            "rules": {
                "Hourly": {
                    "schedule_expression": {
                        "@@assign": "cron(0 0/1 ? * * *)"
                    },
                    "start_backup_window_minutes": {
                        "@@assign": "60"
                    },
                    "complete_backup_window_minutes": {
                        "@@assign": "120"
                    },
                    "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": "Default"
                    },
                    "index_actions": {
                        "resource_types": {
                            "@@assign": [
                                "EBS",
                                "S3"
                            ]
                        }
                     }
                }
            },
            "selections": {
                "tags": {
                    "datatype": {
                        "iam_role_arn": {
                            "@@assign": "arn:aws:iam::$account:role/OrganizationBackupManagement-Role"
                        },
                        "tag_key": {
                            "@@assign": "dataType"
                        },
                        "tag_value": {
                            "@@assign": [
                                "PII",
                                "RED"
                            ]
                        }
                    }
                }
            }
        }
    }
}

上記のJSONをJSON入力欄に記載し、適当なポリシー名をつけ、バックアップポリシーを作成します。

alt text

2-3. バックアップポリシーのアタッチ

続いてバックアップポリシーを組織のOU等にアタッチします。AWS Backup の画面からもアタッチすることができました。

alt text

アカウント単位でもアタッチできるようなのでLogArchiveにアタッチしてみました。

alt text

LogArchiveアカウントで見てみるとちゃんとバックアップポリシーで指定した通りのバックアッププランが作成されていました。

alt text

ルールを見るとバックアップインデックスもしっかり有効になっています。

alt text

3. メンバーアカウントでの実行・確認

3-1. バックアップ対象のタグ付け

バックアップ対象にタグ付けをします。今回はTerraformのstate管理用S3バケットに対してタグ付けをしました。

alt text

3-2. バックアップジョブの実行確認

しばらく経ってから見てみると、バックアップジョブが正常終了したことが確認できました。(少し時間を置いたので3回ほど実行されてます)

alt text

3-3. バックアップインデックスを使った検索の実行

バックアップインデックスが作成されたので、メンバーアカウントで検索を試してみます。

alt text

復旧ポイントARNとオブジェクトキーを指定して検索しました。

alt text

検索ジョブが完了しました。ちゃんと目的のオブジェクトを検索できてますね。

alt text

まとめ

というわけで、AWS Backup Search でバックアップポリシー内でのバックアップインデックス作成がサポートされた新機能の紹介でした。

組織レベルでバックアッププランを作成できるバックアップポリシーは、災害対策等を目的として設定していたという方もいらっしゃると思います。バックアップインデックスも作成できるようになったことで、特定のファイルのみを素早く復元できるようになりました。これにより、災害復旧時やコンプライアンス対応がより効率的に行えるようになったのではないでしょうか。

以上、とーちでした。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.