AWS Backupのボールト名「Default」の自動作成条件を確認し、SCPによる自動作成防止設定をしてみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
AWS Backup のボールトページに遷移すると、「Default」という名前のボールトが表示されることがあります。
これは、AWS のドキュメントにも記載されているように、AWS Backup を初めて利用する際に自動的に作成されるものです。
When you first use the Backup Vaults page of the AWS Backup console in an AWS Region, the console automatically creates a default vault for the Region.
However, if you use AWS Backup through the AWS CLI, AWS SDK, or AWS CloudFormation, a default vault is not created. You must create your own vault.
https://docs.aws.amazon.com/ja_jp/aws-backup/latest/devguide/create-a-vault.html
日本語訳)AWS Backup コンソールの Backup Vaults ページを特定の AWS リージョンで初めて使用する場合、コンソールは自動的にそのリージョン用のデフォルトボールトを作成します。
ただし、AWS CLI、AWS SDK、または AWS CloudFormation を使用して AWS Backup を利用する場合は、デフォルトボールトは作成されません。その場合、自分でボールトを作成する必要があります。
しかし、以下の2点については詳細が不明確だったため、本記事で解説します。
- デフォルトボールトが自動作成される具体的な条件
- デフォルトボールトの自動作成を防ぐ方法
作成条件
結論を先に述べると、デフォルトボールトが作成される条件は以下の2つです。
- ボールトを作成していない状況で、AWS マネジメントコンソールの AWS Backup ページに遷移すること
- ユーザーが
backup:CreateBackupVault
の権限を持っていること
これら両方の条件が満たされた場合に、「Default」という名前のボールトが自動的に作成されます。
実際に試してみます。
以下のコマンドで、デフォルトボールトが存在しない状態から検証を行いました。
$ aws backup list-backup-vaults --region us-east-1
{
"BackupVaultList": []
}
まず、ReadOnlyAccess
権限を持つユーザーで AWS Backup ページに遷移しました。この場合、デフォルトボールトは作成されませんでした。
AWS Backupページ
次に、AdministratorAccess
権限を持つユーザーで AWS Backup ページに遷移しました。この場合、デフォルトボールトが作成されていることが確認できました。さらに、ボールトの作成日時がページ遷移のタイミングと一致していることも確認しました。
また、CloudTrail のログを確認すると、イベント名 CreateBackupVault
が記録されており、Defaultボールトの作成を確認することができます。
Defaultを削除するには
Defaultボールトを削除しようとする場合、AWS マネジメントコンソール上では削除ボタンが表示されないため、コンソールからの削除はできません。
削除ボタンあり
削除ボタンなし
さらに、AWS CLI を使用してデフォルトボールトを削除しても、backup:CreateBackupVault
の権限を持っているユーザーが、AWS Backup のボールトページに遷移すると、再作成されてしまいます。
$ aws backup delete-backup-vault --backup-vault-name Default --region us-east-1
デフォルトボールトを削除する一つの方法として、以下の手順があります。
- 同じリージョンに別のボールトを作成する
- AWS CLI を使用してデフォルトボールトを削除する
この方法を用いると、デフォルトボールトは再作成されません。以下の通りコマンドを実行します。
$ aws backup create-backup-vault --backup-vault-name test --region us-east-1
$ aws backup delete-backup-vault --backup-vault-name Default --region us-east-1
Defaultボールトは削除されました。
ただし、注意点として、作成した別のボールトを削除した後に、backup:CreateBackupVault
の権限を持っているユーザーがAWS Backup ページに再度遷移すると、デフォルトボールトが再び自動作成されてしまいます。
$ aws backup create-backup-vault --backup-vault-name test --region us-east-1
デフォルトボールトが作成される
SCPで制限
空のバックアップボールト自体には料金は発生しませんが、デフォルトボールトが不要と考える利用者も多いでしょう。
そこで、AWS Organizationsを利用中の場合、Service Control Policy (SCP) を使用して、管理アカウントやメンバーアカウントでデフォルトボールトが自動作成されないようにする方法を紹介します。以下のポリシーを組織内のRootOUに適用することで、この制限を実現できます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": "backup:CreateBackupVault",
"Resource": "arn:aws:backup:*:*:backup-vault:Default"
}
]
}
このSCPをデフォルトボールトが既に存在するアカウントに適用した後、AWS CloudShell を使用してデフォルトボールトを削除すると、ボールトは再作成されなくなります。具体的には以下のコマンドを使用します。
$ aws backup delete-backup-vault --backup-vault-name Default --region us-east-1
参考