AWS Backup ジョブが失敗したときに通知するメール通知を設定したいと考えています。
解決策
AWS Backup 通知を送信するための SNS トピックを作成する
Amazon Simple Notification Service (Amazon SNS) コンソールを使用して SNS トピックを作成します。[アクセスポリシー] セクションを展開します。JSON エディタで、ポリシーに次のアクセス許可を追加します。
{ "Sid": "My-statement-id",
"Effect": "Allow",
"Principal": {
"Service": "backup.amazonaws.com"
},
"Action": "SNS:Publish",
"Resource": "arn:aws:sns:eu-west-1:111111111111:exampletopic"
}
注: [リソース] の値をトピックの Amazon リソースネーム (ARN) に置き換えます。
SNS トピックを暗号化しないものとして設定することも、保存時に暗号化を使用することもできます。暗号化にデフォルトの AWS Key Management Service (AWS KMS) を使用する場合、AWS Backup は SNS トピックにメッセージを発行できません。AWS がデフォルトの AWS KMS キーを管理しているため、ポリシーを編集することはできません。代わりに、カスタマーマネージドキーを使用する必要があります。カスタマーマネージドキーは、backup.amazonaws.com に複合化と GenerateDataKey のアクセス許可を付与する必要があります。
更新されたアクセスポリシーの例:
{ "Version": "2008-10-17",
"Id": "__default_policy_ID",
"Statement": [{
"Sid": "__default_statement_ID",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": ["SNS:Publish", "SNS:RemovePermission", "SNS:SetTopicAttributes", "SNS:DeleteTopic", "SNS:ListSubscriptionsByTopic", "SNS:GetTopicAttributes", "SNS:Receive", "SNS:AddPermission", "SNS:Subscribe"],
"Resource": "arn:aws:sns:eu-west-1:111111111111:exampletopic",
"Condition": {
"StringEquals": {
"AWS:SourceOwner": "111111111111"
}
}
}, {
"Sid": "My-statement-id",
"Effect": "Allow",
"Principal": {
"Service": "backup.amazonaws.com"
},
"Action": "SNS:Publish",
"Resource": "arn:aws:sns:eu-west-1:111111111111:exampletopic"
}]
}
失敗したバックアップジョブの通知を受け取る SNS サブスクリプションを作成する
次の手順を実行します。
-
Amazon SNS コンソールを開きます。
-
ナビゲーションペインで [サブスクリプション] を選択します。
-
[サブスクリプションを作成] を選択します。
-
[トピック ARN] で、SNS トピックの ARN を選択します。
-
[プロトコル] で、[JSON 形式のメール] を選択します。
-
[エンドポイント] で、通知を受け取るメールアドレスを入力します。
-
[サブスクリプションフィルターポリシー] を展開します。
-
[JSON エディタ] で、[メッセージ属性] を選択し、次の情報を入力します。
{
"State": [
{
"anything-but": "COMPLETED"
}
]
}
-
[サブスクリプションを作成] を選択します。
エンドポイント用に入力したメールアドレスに、サブスクリプションの確認メールが届きます。
SNS トピックに通知を送信するようにバックアップボールトを設定する
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI のエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
バックアップボールトの通知を有効にするには、put-backup-vault-notifications AWS CLI コマンドを実行します。
aws backup put-backup-vault-notifications --backup-vault-name examplevault --sns-topic-arn arn:aws:sns:eu-west-1:111111111111:exampletopic --backup-vault-events "BACKUP_JOB_COMPLETED"
注: backup-vault-name を実際のバックアップボールトの名前に置き換え、例の ARN をトピックの ARN に置き換えてください。
通知がオンになっていることを確認するには、get-backup-vault-notifications コマンドを実行します。
aws backup get-backup-vault-notifications --backup-vault-name examplevault
注: backup-vault-name を実際のバックアップボールトの名前に置き換えてください。
出力例:
{ "BackupVaultName": "examplevault",
"BackupVaultArn": "arn:aws:backup:eu-west-1:111111111111:backup-vault:examplevault",
"SNSTopicArn": "arn:aws:sns:eu-west-1:111111111111:exampletopic",
"BackupVaultEvents": ["BACKUP_JOB_COMPLETED"]
}
通知メールをモニタリングする
ボールトのバックアップジョブが失敗すると、次のようなメール通知が届きます。
"An AWS Backup job was stopped.Resource ARN : arn:aws:ec2:eu-west-1:111111111111:volume/vol-example56d7w92d4b.BackupJob ID : example4-3dd5-5678-b52d-90bd749355a5"
通知をテストするには、2 つのオンデマンドバックアップを作成します。次に、バックアップの 1 つを停止します。停止したバックアップのみに関するメール通知が届きます。
関連情報
失敗した AWS Backup ジョブの Amazon EventBridge 通知はどのように設定すればいいですか?
Amazon SNS and AWS Backup events (Amazon SNS と AWS Backup イベント)
Troubleshooting AWS Backup (AWS Backup のトラブルシューティング)
Amazon SNS example filter policies (Amazon SNS サンプルフィルターポリシー)