Amazon SNS を使用して、AWS Backup イベントを追跡する - AWS Backup

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon SNS を使用して、AWS Backup イベントを追跡する

AWS Backup では、Amazon Simple Notification Service (Amazon SNS) によって提供される堅牢な通知が利用できます。Amazon SNS コンソールからの AWS Backup イベントを通知するように Amazon SNS を設定できます。

一般的なユースケース

  • AWS Premium Support の「失敗した AWS Backup ジョブの通知を表示するには」の手順に従って、失敗したバックアップジョブの通知を設定します。

  • 以下の「イベントの例」一覧表で、完了、失敗、期限切れのバックアップジョブのサンプル Amazon SNS 通知 JSON を確認します。

Amazon SNS の詳細については、Amazon Simple Notification Service 開発者ガイドの「Amazon SNS の開始方法」を参照してください。

注記

Amazon SNS サービスではクロスアカウント通知が可能ですが、AWS Backup現在この機能はサポートされていません。AWS独自のアカウント ID とトピックのリソース ARN を指定する必要があります。

AWS Backup 通知 API

Amazon SNS コンソールまたは AWS Command Line Interface (AWS CLI) を使用してトピックを作成したら、次の API オペレーションを使用してバックアップ通知を管理できます。

AWS Backup では、次のイベントがサポートされています。

ジョブタイプ イベント
バックアップジョブ BACKUP_JOB_STARTED | BACKUP_JOB_COMPLETED
コピージョブ COPY_JOB_STARTED | COPY_JOB_SUCCESSFUL | COPY_JOB_FAILED
復元ジョブ RESTORE_JOB_STARTED | RESTORE_JOB_COMPLETED
復旧ポイント RECOVERY_POINT_MODIFIED

AWS Backupfor S3 は次の 2 つの追加イベントをサポートしています。

  • S3_BACKUP_OBJECT_FAILEDAWS Backupバックアップジョブ中にバックアップに失敗した S3 オブジェクトを通知します。

  • S3_RESTORE_OBJECT_FAILEDAWS Backup復元ジョブ中に復元に失敗した S3 オブジェクトを通知します。

イベントの例

イベント Amazon SNS の通知
Backup ジョブが完了しました
{ "Records": [{ "EventSource": "aws: sns", "EventVersion": "1.0", "EventSubscriptionArn": "arn:aws:sns:...-a3802aa1ed45", "Sns": { "Type": "Notification", "MessageId": "12345678-abcd-123a-def0-abcd1a234567", "TopicArn": "arn:aws:sns:us-west-1:123456789012:backup-2sqs-sns-topic", "Subject": "Notification from AWS Backup", "Message": "An AWS Backup job was completed successfully. Recovery point ARN: arn:aws:ec2:us-west-1:123456789012:volume/vol-012f345df6789012d. Resource ARN : arn:aws:ec2:us-west-1:123456789012:volume/vol-012f345df6789012e. BackupJob ID : 1b2345b2-f22c-4dab-5eb6-bbc7890ed123", "Timestamp": "2019-08-02T18:46:02.788Z", ... "MessageAttributes": { "EventType": {"Type":"String","Value":"BACKUP_JOB"}, "State": {"Type":"String","Value":"COMPLETED"}, "AccountId": {"Type":"String","Value":"123456789012"}, "Id": {"Type":"String","Value":"1b2345b2-f22c-4dab-5eb6-bbc7890ed123"}, "StartTime": {"Type":"String","Value":"2019-09-02T13:48:52.226Z"} } } }] }
Backup ジョブが失敗しました
{ "Records": [{ "EventSource": "aws: sns", "EventVersion": "1.0", "EventSubscriptionArn": "arn:aws:sns:...-a3802aa1ed45", "Sns": { "Type": "Notification", "MessageId": "12345678-abcd-123a-def0-abcd1a234567", "TopicArn": "arn:aws:sns:us-west-1:123456789012:backup-2sqs-sns-topic", "Subject": "Notification from AWS Backup", "Message": "An AWS Backup job failed. Resource ARN : arn:aws:ec2:us-west-1:123456789012:volume/vol-012f345df6789012e. BackupJob ID : 1b2345b2-f22c-4dab-5eb6-bbc7890ed123", "Timestamp": "2019-08-02T18:46:02.788Z", ... "MessageAttributes": { "EventType": {"Type":"String","Value":"BACKUP_JOB"}, "State": {"Type":"String","Value":"FAILED"}, "AccountId": {"Type":"String","Value":"123456789012"}, "Id": {"Type":"String","Value":"1b2345b2-f22c-4dab-5eb6-bbc7890ed123"}, "StartTime": {"Type":"String","Value":"2019-09-02T13:48:52.226Z"} } } }] }
Backup ウィンドウ中にバックアップジョブを完了できませんでした
{ "Records": [{ "EventSource": "aws: sns", "EventVersion": "1.0", "EventSubscriptionArn": "arn:aws:sns:...-a3802aa1ed45", "Sns": { "Type": "Notification", "MessageId": "12345678-abcd-123a-def0-abcd1a234567", "TopicArn": "arn:aws:sns:us-west-1:123456789012:backup-2sqs-sns-topic", "Subject": "Notification from AWS Backup", "Message": "An AWS Backup job failed to complete in time. Resource ARN : arn:aws:ec2:us-west-1:123456789012:volume/vol-012f345df6789012e. BackupJob ID : 1b2345b2-f22c-4dab-5eb6-bbc7890ed123", "Timestamp": "2019-08-02T18:46:02.788Z", ... "MessageAttributes" : { "EventType" : {"Type":"String","Value":"BACKUP_JOB"}, "State" : {"Type":"String","Value":"EXPIRED"}, "AccountId" : {"Type":"String","Value":"123456789012"}, "Id" : {"Type":"String","Value":"1b2345b2-f22c-4dab-5eb6-bbc7890ed123"}, "StartTime" : {"Type":"String","Value":"2019-09-02T13:48:52.226Z"} } } }] }

AWS Backup 通知コマンドの例

AWS CLI コマンドを使用して、AWS Backup イベントの Amazon SNS 通知をサブスクライブ、一覧表示、削除できます。

バックアップボールトのプット通知の例

次のコマンドは、復元ジョブが開始または完了したとき、または復旧ポイントが変更されたときに通知する、指定されたバックアップボールトの Amazon SNS トピックをサブスクライブします。

aws backup put-backup-vault-notifications --backup-vault-name myBackupVault --sns-topic-arn arn:aws:sns:region:account-id:myBackupTopic --backup-vault-events RESTORE_JOB_STARTED RESTORE_JOB_COMPLETED RECOVERY_POINT_MODIFIED

バックアップボールト取得通知の例

次のコマンドは、指定したバックアップボールトの Amazon SNS トピックに現在サブスクライブされているすべてのイベントを一覧表示します。

aws backup get-backup-vault-notifications --backup-vault-name myVault

次に出力例を示します。

{ "SNSTopicArn": "arn:aws:sns:region:account-id:myBackupTopic", "BackupVaultEvents": [ "RESTORE_JOB_STARTED", "RESTORE_JOB_COMPLETED", "RECOVERY_POINT_MODIFIED" ], "BackupVaultName": "myVault", "BackupVaultArn": "arn:aws:backup:region:account-id:backup-vault:myVault" }

バックアップボールトの削除通知の例

次のコマンドは、指定されたバックアップボールトの Amazon SNS トピックからサブスクライブを解除します。

aws backup delete-backup-vault-notifications --backup-vault-name myVault

サービスプリンシパルとしての AWS Backup の指定

注記

AWS Backup がユーザーに代わって SNS トピックを発行できるようにするには、サービスプリンシパルとして AWS Backup を指定する必要があります。

AWS Backup イベントの追跡に使用する Amazon SNS トピックのアクセスポリシーに次の JSON を含めます。トピックのリソースの Amazon リソースネーム (ARN) を指定する必要があります。

{ "Sid": "My-statement-id", "Effect": "Allow", "Principal": { "Service": "backup.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:region:account-id:myTopic" }

Amazon SNS アクセスポリシーでのサービスプリンシパルの指定の詳細については、Amazon Simple Notification Service デベロッパーガイドの「トピックにパブリッシュする AWS リソースのいずれかを許可する」を参照してください。

注記

トピックが暗号化されている場合は、ポリシーに追加のアクセス権限を追加して、AWS Backup がそのトピックに公開することを許可する必要があります。暗号化されたトピックにサービスを発行できるようにする方法については、Amazon Simple Notification Service デベロッパーガイドの「AWS サービスと暗号化されたトピックのイベントソース間の互換性を保つ方法」を参照してください。