9. デプロイ済みのスタックインスタンスを確認すれば、デプロイが正常に完了したかを判断できます。
注意:
AWS Backupは、メンバーアカウントにロールが存在するか、またそのロールを引き受け可能かまでは検証しません。バックアップポリシーに追加する各アカウントで、適切なIAMロール(本ケースでは crossaccountbackuprole)が用意されているか必ず確認してください。
ロール用のStackSetは、委任バックアップ管理アカウントのほか、CloudFormationの委任管理者として登録した任意のアカウントからもデプロイできます(本記事では組織管理アカウントを使用しています)。
ステップ5: バックアップボールトの作成
ここでは、AWS Backupで保護したい各アカウントについて、ソースリージョンとデスティネーションリージョンにそれぞれ別個のバックアップボールトを作成します。
- 組織管理アカウント、または委任管理アカウント(CloudFormation用に設定済みの場合)から、以下の AWS CloudFormation StackSet をデプロイします。本記事では組織管理アカウントを使用します(下記テンプレート — BackupVaultStackSet.yaml)。
---
AWSTemplateFormatVersion: "2010-09-09"
Description: >
This template creates the Backup vault in each member account.
Metadata:
'AWS::CloudFormation::Interface':
ParameterGroups:
- Label:
default: AWS Backup Configuration
Parameters:
- crossregionbackupvault
ParameterLabels:
crossregionbackupvault:
default: Backup vault name (Case sensitive. Must contain from 2 to 50 alphanumeric and '-_' characters.)
Parameters:
crossregionbackupvault:
AllowedPattern: ^[a-zA-Z0-9\-\_\.]{1,50}$
ConstraintDescription: Backup vault name is case sensitive. Must contain from 2 to 50 alphanumeric and '-_' characters.
Type: String
Resources:
mycrossregionbackupvault:
Type: AWS::Backup::BackupVault
Properties:
BackupVaultName:
Ref: crossregionbackupvault
Outputs:
mycrossregionbackupvault:
Value:
Ref: crossregionbackupvault
2. サービスマネージドアクセス許可 を選択し、今後対象OUに追加される新規アカウントにもバックアップボールトが自動的にデプロイされるようにします。
3. 上記の BackupVaultStackSet.yaml をアップロードし、「次へ」をクリックします。
4. StackSet名を入力します。AWS Backup Configurationには custombackupvault(または任意の名前)を入力し、「次へ」を選択します。
5. 必要に応じてタグを設定し、「次へ」をクリックします。
6. 組織全体または特定の組織単位(OU)へデプロイします。本記事では組織全体を対象にします。
7. ボールトのデプロイ先リージョンとその他のデプロイオプションを選択し、「次へ」をクリックします。
8. 内容を確認して送信します。
9. スタックインスタンスの詳細ステータスを確認すれば、デプロイが正常に完了したかを判断できます。
注意:
本番・非本番など特定のOUへボールトをデプロイしたい場合は、適切なバックアップボールト名と対象OU IDを指定して、上記の手順を繰り返してください。
バックアップボールト名は大文字・小文字を区別し、AWS Backupは指定したボールトの存在有無を検証しません。保護対象とする各メンバーアカウント・各リージョンに、適切なバックアップボールトが作成されていることを必ず確認してください。
ステップ6: バックアップポリシーの作成
- 委任バックアップ管理アカウントでAWS Backupコンソールにサインインし、「バックアップポリシー」を開いて「バックアップポリシーの作成」を選択します。
2. ポリシー名と説明を入力します。
3. 「バックアッププランの設定」セクションの「バックアッププランの詳細」で、プラン名とデプロイ先リージョン(プランを展開するリージョン)を指定します。
4. バックアップルールを追加 — ルール名、バックアップボールト、バックアップ頻度、ライフサイクルを任意に設定します。
5. クロスリージョンコピーの場合 — コピー先リージョンとデスティネーションボールト名を追加します。「詳細設定」を展開すれば、必要に応じてコールドストレージへの移行も指定できます。他リージョン・他ボールトへの追加コピーも必要に応じて設定可能です。
6. 「リソースの割り当て」セクションで、以下を入力します。
a) 「リソース割り当て名」にわかりやすい名前を入力し、「IAMロール」に crossaccountbackuprole を入力します。
b) 「リソースタグの値」に backup を入力します。
c) 「ポリシーの作成」を選択します。
7. バックアップポリシーをターゲットにアタッチ — バックアップポリシーは個別アカウントにもOUにもアタッチできます。OUに適用すると、配下のすべてのメンバーアカウントのリソースがまとめて保護されます。
AWS Backupコンソールで「バックアップポリシー」を開き、対象ポリシーを選択します。「ターゲット」セクションで「アタッチ」をクリックし、アカウントまたはOUを選んで「アタッチ」を確定します。
8. ターゲットのアカウントまたはOUにバックアッププランがデプロイされていることを確認します。
注 — バックアップポリシーは子アカウントからは変更・削除できません。変更できるのは委任バックアップ管理アカウントのみです。
9. 委任バックアップ管理アカウントでは、AWS Backupコンソールの「クロスアカウントモニタリング」から、複数のAWSアカウントにまたがるバックアップ・コピー・復元ジョブを一元的にモニタリングできます。
10. バックアップが正常に実行され、クロスリージョンコピーが生成されていることを確認します。
11. クロスリージョンコピーが生成されていることを確認します。
注:
別アカウントにあるボールトへバックアップをコピーする場合は、ボールトポリシーを更新し、ソースアカウントにデスティネーションボールトへのアクセス権を付与することを忘れないでください。また、KMSではカスタマーマネージドキーを使用し、必要なアカウントにKMSキーの利用権限を付与することを推奨します。AWSマネージドキーは共有できません。
新しいAWSリージョンへ初めてバックアップをコピーするとき、AWS Backupはバックアップをフルコピーします。一般に、増分バックアップに対応しているサービスであれば、同一AWSリージョン内の以降のコピーは増分コピーになります。AWS Backupはコピー時に、デスティネーションボールトのカスタマーマネージドキーで再暗号化します。
例外はAmazon EBSで、公式ドキュメントには「コピー操作中にスナップショットの暗号化ステータスを変更すると、増分ではなくフルコピーになる」と記載されています。
参考資料:
まとめ
本記事が、委任バックアップ管理者のセットアップを実装し、セキュリティのベストプラクティスに沿って一元化されたバックアップを運用するための一助となれば幸いです。また、AWS Organizationsにおける委任バックアップ管理者構成のわかりにくいポイントを解消するヒントになれば嬉しく思います。検討と実装がうまくいきますように!