AWSSupport-TroubleshootS3EventNotifications - AWS Systems Manager 自動化ランブックリファレンス

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

AWSSupport-TroubleshootS3EventNotifications

説明

AWSSupport-TroubleshootS3EventNotifications AWS Systems Manager オートメーションランブックは、 関数、Amazon Simple Notification Service (Amazon S3Amazon SNS) キューで AWS Lambda 設定された Amazon Simple Storage Service (Amazon S3) バケットイベント通知のトラブルシューティングに役立ちます。 Amazon SQS 送信先イベント通知として Amazon S3 バケットで設定されたさまざまなリソースの設定レポートを提供します。

動作の仕組み

ランブックは次のステップを実行します。

  • Amazon S3 バケットAWSSupport-TroubleshootS3EventNotificationsが が実行されたのと同じアカウントに存在するかどうかを確認します。

  • GetBucketNotificationConfiguration API を使用して、Amazon S3 バケットのイベント通知として設定された送信先リソース (AWS Lambda 関数、Amazon SNS トピック、または Amazon SQS キュー) を取得します。 Amazon S3

  • 送信先リソースが存在することを検証し、送信先リソースのリソースベースのポリシーを確認して、Amazon S3 が送信先への発行を許可されているかどうかを確認します。

  • 送信先を AWS Key Management Service (AWS KMS) キーで暗号化した場合、キーポリシーがチェックされ、Amazon S3 アクセスが許可されているかどうかを確認します。

  • すべての送信先リソースチェックのレポートを生成します。

重要
  • このランブックは、Amazon S3 バケット所有者がオートメーションランブックが実行されている AWS アカウント 所有者と同じである場合にのみ、イベント通知設定を評価できます。

  • さらに、このランブックは、別の でホストされている送信先リソースのポリシーを評価することはできません AWS アカウント。

このオートメーションを実行する (コンソール)

ドキュメントタイプ

Automation

[所有者]

Amazon

[Platforms] (プラットフォーム)

Linux、macOS、Windows

パラメータ

  • AutomationAssumeRole

    タイプ: 文字列

    説明: (オプション) Systems Manager Automation がユーザーに代わってアクションを実行できるようにする AWS Identity and Access Management (IAM) ロールの Amazon リソースネーム (ARN)。ロールを指定しない場合、Systems Manager Automation はこのランブックを開始するユーザーのアクセス許可を使用します。

  • S3BucketName

    型: AWS::S3::Bucket::Name

    説明: (必須) イベント通知で設定された Amazon S3 バケットの名前 (複数可)。

必要な IAM アクセス許可

AutomationAssumeRole パラメータでは、ランブックを正常に使用するために、次のアクションが必要です。

  • s3:GetBucketLocation

  • s3:ListAllMyBuckets

  • s3:GetBucketNotification

  • sqs:GetQueueAttributes

  • sqs:GetQueueUrl

  • sns:GetTopicAttributes

  • kms:GetKeyPolicy

  • kms:DescribeKey

  • kms:ListAliases

  • lambda:GetPolicy

  • lambda:GetFunction

  • iam:GetContextKeysForCustomPolicy

  • iam:SimulateCustomPolicy

  • iam:ListRoles

  • ssm:DescribeAutomationStepExecutions

自動化引き受けロールの IAM ポリシーの例

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3Permission", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Sid": "S3PermissionGetBucketNotification", "Effect": "Allow", "Action": [ "s3:GetBucketNotification" ], "Resource": "arn:aws:s3::::<bucket-name>" }, { "Sid": "SQSPermission", "Effect": "Allow", "Action": [ "sqs:GetQueueAttributes", "sqs:GetQueueUrl" ], "Resource": "arn:aws:sqs:<region>:123456789012:*" }, { "Sid": "SNSPermission", "Effect": "Allow", "Action": [ "sns:GetTopicAttributes" ], "Resource": "arn:aws:sns:<region>:123456789012:*" }, { "Sid": "KMSPermission", "Effect": "Allow", "Action": [ "kms:GetKeyPolicy", "kms:DescribeKey", "kms:ListAliases" ], "Resource": "arn:aws:kms:<region>:123456789012:key/<key-id>" }, { "Sid": "LambdaPermission", "Effect": "Allow", "Action": [ "lambda:GetPolicy", "lambda:GetFunction" ], "Resource": "arn:aws:lambda:<region>:123456789012:function:*" }, { "Sid": "IAMPermission", "Effect": "Allow", "Action": [ "iam:GetContextKeysForCustomPolicy", "iam:SimulateCustomPolicy", "iam:ListRoles" ], "Resource": "*" }, { "Sid": "SSMPermission", "Effect": "Allow", "Action": [ "ssm:DescribeAutomationStepExecutions" ], "Resource": "*" } ] }

指示

次の手順に従って自動化を設定します。

  1. ドキュメントの下の Systems Manager AWSSupport-TroubleshootS3EventNotificationsの に移動します。

  2. [Execute automation] (オートメーションを実行) を選択します。

  3. 入力パラメータには、次のように入力します。

    • AutomationAssumeRole(オプション):

      Systems Manager Automation がユーザーに代わってアクションを実行できるようにする AWS AWS Identity and Access Management (IAM) ロールの Amazon リソースネーム (ARN)。ロールが指定されていない場合、Systems Manager Automation は、このランブックを開始するユーザーのアクセス許可を使用します。

    • S3BucketName (必須):

      イベント通知で設定された Amazon S3 バケットの名前 (複数可)。

    AWSSupport-TroubleshootS3EventNotification ランブックの実行入力パラメータ。
  4. [実行] を選択します。

  5. 自動化が開始されます。

  6. ドキュメントは以下のステップを実行します。

    • ValidateInputs

      提供された Amazon S3 バケットが、オートメーションが実行されているのと同じアカウントに属していることを検証し、バケットがホストされているリージョンを取得します。

    • GetBucketNotificationConfiguration

      GetBucketNotificationConfiguration API を呼び出して、Amazon S3 バケットで設定されたイベント通知を確認し、出力をフォーマットします。

    • BranchOnSQSResourcePolicy

      イベント通知に Amazon SQS リソースがあるかどうかを分岐させます。

    • ValidateSQSResourcePolicy

      Amazon SQS キュー属性のリソースポリシーに Amazon S3 のsqs:SendMessageアクセス許可があることを検証します。Amazon SQS リソースが暗号化されている場合、 は暗号化がデフォルト AWS KMS キーを使用していないことを確認します。つまり、 aws/sqs は AWS KMS キーポリシーに Amazon S3 のアクセス許可があることを確認します。

    • BranchOnSNSResourcePolicy

      イベント通知に Amazon SNS リソースがあるかどうかを分岐させます。

    • ValidateSNSResourcePolicy

      Amazon SNS トピック属性のリソースポリシーに Amazon S3 のsns:Publishアクセス許可があることを検証します。Amazon SNS リソースが暗号化されている場合、 は暗号化がデフォルト AWS KMS キーを使用していないことを確認します。つまり、 aws/sns は AWS KMS キーポリシーに Amazon S3 のアクセス許可があることを確認します。

    • BranchOnLambdaFunctionResourcePolicy

      イベント通知に AWS Lambda 関数があるかどうかを分岐させます。

    • ValidateLambdaFunctionResourcePolicy

      AWS Lambda 関数に Amazon S3 のlambda:InvokeFunctionアクセス許可があるリソースポリシーを検証します。

    • GenerateReport

      ランブックステップ出力の詳細と、Amazon S3 バケットで設定されたイベント通知の問題を解決するための推奨事項を返します。

  7. 完了したら、出力セクションで実行の詳細な結果を確認します。

    • Amazon SQS イベント通知

      Amazon S3 バケットで設定された Amazon SQS 送信先通知がある場合、Amazon SQS キューのリストがチェックの結果とともに表示されます。レポートには、Amazon SQS リソースチェック、Amazon SQS アクセスポリシーチェック、 AWS KMS キーチェック、 AWS KMS キーステータスチェック、および AWS KMS キーポリシーチェックが含まれます。

    • Amazon SNS イベント通知

      Amazon S3 バケットで設定された Amazon SNS 送信先通知がある場合、Amazon SNS トピックのリストがチェックの結果とともに表示されます。レポートには、Amazon SNS リソースチェック、Amazon SNS アクセスポリシーチェック、 AWS KMS キーチェック、 AWS KMS キーステータスチェック、および AWS KMS キーポリシーチェックが含まれます。

    • AWS Lambda イベント通知

      Amazon S3 バケットで設定された AWS Lambda 送信先通知がある場合、Lambda 関数のリストがチェックの結果とともに表示されます。レポートには、Lambda リソースチェックと Lambda アクセスポリシーチェックが含まれます。

    AWSSupport-TroubleshootS3EventNotification ランブックのサンプル実行出力。

リファレンス

Systems Manager Automation