AWS Backupのボールト名「Default」の自動作成条件を確認し、SCPによる自動作成防止設定をしてみた

AWS Backupのボールト名「Default」の自動作成条件を確認し、SCPによる自動作成防止設定をしてみた

Clock Icon2024.10.09

はじめに

AWS Backup のボールトページに遷移すると、「Default」という名前のボールトが表示されることがあります。
cm-hirai-screenshot 2024-10-08 15.06.34

これは、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点については詳細が不明確だったため、本記事で解説します。

  1. デフォルトボールトが自動作成される具体的な条件
  2. デフォルトボールトの自動作成を防ぐ方法

作成条件

結論を先に述べると、デフォルトボールトが作成される条件は以下の2つです。

  • ボールトを作成していない状況で、AWS マネジメントコンソールの AWS Backup ページに遷移すること
  • ユーザーが backup:CreateBackupVault の権限を持っていること

これら両方の条件が満たされた場合に、「Default」という名前のボールトが自動的に作成されます。

実際に試してみます。

以下のコマンドで、デフォルトボールトが存在しない状態から検証を行いました。

$ aws backup list-backup-vaults --region us-east-1
{
    "BackupVaultList": []
}

まず、ReadOnlyAccess 権限を持つユーザーで AWS Backup ページに遷移しました。この場合、デフォルトボールトは作成されませんでした。

cm-hirai-screenshot 2024-10-08 15.11.22
AWS Backupページ
cm-hirai-screenshot 2024-10-08 15.15.06
次に、AdministratorAccess 権限を持つユーザーで AWS Backup ページに遷移しました。この場合、デフォルトボールトが作成されていることが確認できました。さらに、ボールトの作成日時がページ遷移のタイミングと一致していることも確認しました。

cm-hirai-screenshot 2024-10-08 15.11.34

また、CloudTrail のログを確認すると、イベント名 CreateBackupVault が記録されており、Defaultボールトの作成を確認することができます。
cm-hirai-screenshot 2024-10-08 15.24.32

Defaultを削除するには

Defaultボールトを削除しようとする場合、AWS マネジメントコンソール上では削除ボタンが表示されないため、コンソールからの削除はできません。

cm-hirai-screenshot 2024-10-08 15.01.10
削除ボタンあり
cm-hirai-screenshot 2024-10-08 15.01.28
削除ボタンなし

さらに、AWS CLI を使用してデフォルトボールトを削除しても、backup:CreateBackupVault の権限を持っているユーザーが、AWS Backup のボールトページに遷移すると、再作成されてしまいます。

$ aws backup delete-backup-vault --backup-vault-name  Default --region us-east-1

デフォルトボールトを削除する一つの方法として、以下の手順があります。

  1. 同じリージョンに別のボールトを作成する
  2. 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ボールトは削除されました。
cm-hirai-screenshot 2024-10-08 15.04.36
ただし、注意点として、作成した別のボールトを削除した後に、backup:CreateBackupVault の権限を持っているユーザーがAWS Backup ページに再度遷移すると、デフォルトボールトが再び自動作成されてしまいます。

$ aws backup create-backup-vault --backup-vault-name test --region us-east-1

cm-hirai-screenshot 2024-10-08 15.06.34
デフォルトボールトが作成される

SCPで制限

空のバックアップボールト自体には料金は発生しませんが、デフォルトボールトが不要と考える利用者も多いでしょう。
そこで、AWS Organizationsを利用中の場合、Service Control Policy (SCP) を使用して、管理アカウントやメンバーアカウントでデフォルトボールトが自動作成されないようにする方法を紹介します。以下のポリシーを組織内のRootOUに適用することで、この制限を実現できます。

deny-create-Default-vault
{
  "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

参考

https://docs.aws.amazon.com/ja_jp/aws-backup/latest/devguide/create-a-vault.html

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.