[アップデート] AWS Backupにて、クロスリージョンのAmazon Aurora・Amazon Neptune・Amazon DocumentDBのスナップショットをワンステップで論理エアギャップボールトにコピーできるようになりました
はじめに
おのやんです。
AWS Backupで作成したデータベーススナップショットをクロスリージョンで論理エアギャップボールトに直接コピーできるようになりました。
こちらのアップデートに対応したサービスは、Amazon Aurora(以下、Aurora)、Amazon Neptune、Amazon DocumentDBの3つです。
論理エアギャップボールトについては、AWSドキュメントの他、過去のブログも参考になるかと思います。
今まではデータベースのスナップショットを別リージョンの論理エアギャップボールトにコピーするには、元のリージョンのスナップショットを別のリージョンの標準バックアップボールトにコピーした後に、別リージョンでそのスナップショットを論理エアギャップボールトに別途コピーする必要がありました。
それが今回のアップデートにより、元のリージョンから別リージョンの論理エアギャップボールトへ1回でコピーできるようになっています。
実際にやってみた
それでは、実際にAWS Backupを使用して、Auroraスナップショットをクロスリージョンの論理エアギャップボールトに直接コピーしてみましょう。
今回は、検証用のAuroraクラスターとAuroraクラスター用のVPCとプライベートサブネットを東京リージョンに作成しておきます。このAuroraクラスターに対して、AWS Backupのバックアッププランからスナップショットを作成し、このスナップショットを大阪リージョンの論理エアギャップボールトに保存します。

この際、Auroraクラスターの暗号化にはAWS Key Management Service(以下、KMS)のカスタマー管理キーを使用します。東京リージョンのバックアップボールトに作成したり、大阪リージョンの論理エアギャップボールトにコピーしたりするのが、暗号化したAuroraスナップショットであるため、暗号化・復号を許可したいサービスをキーポリシーで指定する必要があります。AWS管理キーのキーポリシーは変更できないので、今回はカスタマー管理キーを使用しています。

ちなみに今回のキーポリシーはこんな感じです。KMSキー自体を管理できる権限・AWS Backupがスナップショットをコピーする時の暗号化・復号ができる権限・Auroraクラスターがスナップショットを暗号化できる権限の3つを記述しています。
{
"Version": "2012-10-17",
"Id": "key-policy-aurora-backup",
"Statement": [
{
"Sid": "Enable IAM User Permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:root"
},
"Action": "kms:*",
"Resource": "*"
},
{
"Sid": "Allow AWS Backup to use the key",
"Effect": "Allow",
"Principal": {
"Service": "backup.amazonaws.com"
},
"Action": [
"kms:CreateGrant",
"kms:GenerateDataKey",
"kms:Decrypt",
"kms:DescribeKey"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:ViaService": [
"rds.ap-northeast-1.amazonaws.com",
"rds.ap-northeast-3.amazonaws.com"
]
}
}
},
{
"Sid": "Allow RDS to use the key for encryption",
"Effect": "Allow",
"Principal": {
"Service": "rds.amazonaws.com"
},
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey",
"kms:CreateGrant",
"kms:DescribeKey"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:ViaService": "rds.ap-northeast-1.amazonaws.com"
}
}
}
]
}
Auroraクラスター・カスタマー管理キーの作成・設定が終わったら、次にコピー先の論理エアギャップボールトを大阪リージョンに作成します。マネジメントコンソールにて、「論理的にエアギャップのあるボールト」をクリックします。

今回は、論理エアギャップボールトをこんな設定で作成します。

作成後の設定項目はこんな感じです。

次に東京リージョンにて、バックアッププランにクロスリージョンコピールールを追加します。「バックアッププランを作成」をクリックします。

各設定項目は、次の通りです
| 項目 | 値 | 備考 |
|---|---|---|
| バックアッププラン名 | aws-test-plan-backup-cross-region-lag | |
| バックアップルール名 | DailyBackup | |
| 保持期間 | 14日(2週間) | 後述しますが、コピー先の論理エアギャップボールトの保持期間内に設定する必要があります |
| コピー先にコピー - リージョン | 大阪 | |
| コピー先にコピー - 送信先ボールト | aws-test-lag-vault-backup-osaka | 先ほど作成した論理エアギャップボールト |
| リソースの割り当て - 名前 | Aurora | |
| リソースの割り当て - クラスターID | aws-test-db-backup-lag-vault | 先ほど作成したAuroraクラスター |
バックアッププランを保存すると、スケジュールに従ってバックアップが実行されます。今回は、検証作業時にすぐにバックアップが実行されるような時間帯に設定しました。バックアップが開始するまでの時間を1時間、バックアップが終了するまでの時間を2時間に設定していますので、だいたい20分後くらいにバックアップジョブが開始されます。

そこから数十分待機すると、バックアップ(正確にはAuroraスナップショットの復旧ポイント)が作成されます。

バックアップジョブも完了しました。

バックアップジョブが完了すると、自動で大阪リージョンの論理エアギャップボールトへのコピージョブが始まります。

十数分経過後、コピージョブが完了しました。

大阪リージョンの論理エアギャップボールトを見に行くと、復旧ポイントがコピーされているのが確認できました。

ソースとなるデータベースは暗号化必須
参考までに、本アップデートの制約についてもまとめたいと思います。
暗号化されていないクラスターは、論理エアギャップボールトにコピーできません。上記とは別に暗号化されていないAuroraクラスターを作成し、そのクラスターのバックアップを大阪リージョンの論理エアギャップボールトにコピーする設定にしても、コピージョブでエラーになります。
The request to StartCopyJob failed because [{arn:aws:backup:ap-northeast-3:123456789012:backup-vault:aws-test-lag-vault-backup-osaka=Copying unencrypted cluster snapshot to LAG vault is not supported}]. Retry the request.

論理エアギャップボールトの保持期間内に納める必要あり
また、論理エアギャップボールト作成時に最小保持期間と最大保持期間を設定する必要がありますが、この保持期間の範囲外のバックアップはコピーできずにエラーになります。
Copy job failed. The retention specified in the job is not within the range specified for the target Backup Vault.

論理エアギャップボールトがより使いやすく
マルウェア対策としてAWS Backupの論理エアギャップボールトが要件に入ってくるケースもあるかと思います。
今回の設定で論理エアギャップボールトへのコピー設定がよりシンプルにできるようになり、非常にありがたいアップデートではないでしょうか。では!






