View a markdown version of this page

AWSSupport-TroubleshootS3EventNotifications - AWS Systems Manager オートメーションランブックリファレンス

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

AWSSupport-TroubleshootS3EventNotifications

説明

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

動作の仕組み

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

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

  • 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 アカウント。

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

ドキュメントタイプ

オートメーション

[所有者]

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 ポリシーの例

JSON
{ "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:::amzn-s3-demo-bucket" }, { "Sid": "SQSPermission", "Effect": "Allow", "Action": [ "sqs:GetQueueAttributes", "sqs:GetQueueUrl" ], "Resource": "arn:aws:sqs:us-east-1:111122223333:*" }, { "Sid": "SNSPermission", "Effect": "Allow", "Action": [ "sns:GetTopicAttributes" ], "Resource": "arn:aws:sns:us-east-1:111122223333:*" }, { "Sid": "KMSPermission", "Effect": "Allow", "Action": [ "kms:GetKeyPolicy", "kms:DescribeKey", "kms:ListAliases" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id" }, { "Sid": "LambdaPermission", "Effect": "Allow", "Action": [ "lambda:GetPolicy", "lambda:GetFunction" ], "Resource": "arn:aws:lambda:us-east-1:111122223333: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