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

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

AWSSupport-TroubleshootS3PublicRead

説明

AWSSupport-TroubleshootS3PublicRead ランブックは、S3BucketName パラメータで指定したパブリック Amazon Simple Storage Service (Amazon S3) バケットからのオブジェクトの読み取りに関する問題を診断します。S3 バケット内のオブジェクトについても、設定のサブセットが分析されます。

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

制約事項

  • この自動化では、オブジェクトへのパブリックアクセスを許可するアクセスポイントはチェックされません。

  • この自動化では、S3 バケットポリシーの条件キーは評価されません。

  • を使用している場合 AWS Organizations、この自動化はサービスコントロールポリシーを評価して Amazon S3 へのアクセスが許可されていることを確認します。

ドキュメントタイプ

Automation

[所有者]

Amazon

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

Linux、macOS、Windows

パラメータ

  • AutomationAssumeRole

    型: 文字列

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

  • CloudWatchLogGroupName

    型: 文字列

    説明: (オプション) 自動化出力を送信する Amazon CloudWatch Logs ロググループ。指定した値に一致するロググループが見つからない場合、自動化ではこのパラメータ値を使用してロググループが作成されます。この自動化によって作成されるロググループの保存期間は 14 日間です。

  • CloudWatchLogStreamName

    型: 文字列

    説明: (オプション) 自動化出力を送信する CloudWatch ログストリーム。指定した値に一致するログストリームが見つからない場合、自動化ではこのパラメータ値を使用してログストリームが作成されます。このパラメータに値を指定しない場合、自動化ではログストリームの名前に ExecutionId を使用します。

  • HttpGet

    型: ブール値

    有効な値: true | false

    デフォルト: true

    説明: (オプション) このパラメータを true に設定すると、自動化では指定した S3BucketName のオブジェクトに部分的 HTTP リクエストを行います。Range HTTP ヘッダーを使用して、オブジェクトの最初のバイトのみが返されます。

  • IgnoreBlockPublicAccess

    型: ブール値

    有効な値: true | false

    デフォルト: false

    説明: (オプション) このパラメータを true に設定すると、自動化では S3BucketName パラメータで指定した S3 バケットのパブリックアクセスブロック設定を無視します。このパラメータのデフォルト値を変更することは推奨されません。

  • MaxObjects

    タイプ: 整数

    有効な値: 1~25

    デフォルト: 5

    説明: (オプション) S3BucketName パラメータで指定した S3 バケットで分析するオブジェクト数。

  • S3BucketName

    型: 文字列

    説明: (必須) トラブルシューティングする S3 バケットの名前。

  • S3PrefixName

    型: 文字列

    説明: (オプション) S3 バケットで分析するオブジェクトのキー名プレフィックス。詳細については、Amazon Simple Storage Service ユーザーガイドオブジェクトキーを参照してください。

  • StartAfter

    型: 文字列

    説明: (オプション) 自動化で S3 バケット内のオブジェクトの分析を開始するオブジェクトキーの名前。

  • ResourcePartition

    タイプ: 文字列

    有効な値: aws | aws-us-gov | aws-cn

    デフォルト: aws

    説明: (必須) S3 バケットがあるパーティション。

  • 詳細

    型: ブール値

    有効な値: true | false

    デフォルト: false

    説明: (オプション) 自動化中に詳細情報を返すには、このパラメータを true に設定します。パラメータが false に設定されている場合、警告メッセージとエラーメッセージのみが返されます。

必要な IAM アクセス許可

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

logs:CreateLogGroup 、、および logs:CreateLogStreamlogs:PutLogEventsアクセス許可は、オートメーションでログデータを CloudWatch Logs に送信する場合にのみ必要です。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:SimulateCustomPolicy", "iam:GetContextKeysForCustomPolicy", "s3:ListAllMyBuckets", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:PutRetentionPolicy", "s3:GetAccountPublicAccessBlock" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectTagging" ], "Resource": "arn:aws:s3:::awsexamplebucket1/*", "Effect": "Allow" }, { "Action": [ "s3:ListBucket", "s3:GetBucketLocation", "s3:GetBucketPublicAccessBlock", "s3:GetBucketRequestPayment", "s3:GetBucketPolicyStatus", "s3:GetBucketPolicy", "s3:GetBucketAcl" ], "Resource": "arn:aws:s3:::awsexamplebucket1", "Effect": "Allow" } ] }

ドキュメントステップ

  • aws:assertAwsResourceProperty - S3 バケットが存在し、アクセス可能であることを確認します。

  • aws:executeScript - S3 バケットの場所と正規ユーザー ID を返します。

  • aws:executeScript - アカウントと S3 バケットのパブリックアクセスブロック設定を返します。

  • aws:assertAwsResourceProperty - S3 バケットの支払者が BucketOwner に設定されていることを確認します。Requester Pays が S3 バケットで有効になっている場合、自動化は終了します。

  • aws:executeScript - S3 バケットポリシーのステータスを返し、パブリックと見なされるかどうかを判断します。パブリック S3 バケットの詳細については、Amazon Simple Storage Service ユーザーガイドの「「パブリック」の意味」を参照してください。

  • aws:executeAwsApi - S3 バケットポリシーを返します。

  • aws:executeAwsApi - S3 バケットポリシーで見つかったすべてのコンテキストキーを返します。

  • aws:assertAwsResourceProperty - GetObject API アクションの S3 バケットポリシーに明示的な拒否があるかどうかを確認します。

  • aws:executeAwsApi - S3 バケットのアクセスコントロールリスト (ACL) を返します。

  • aws:executeScript - CloudWatchLogGroupNameパラメータの値を指定すると、 CloudWatch ログロググループとログストリームを作成します。

  • aws:executeScript - ランブックの入力パラメータで指定された値に基づいて、オートメーション実行中に収集された S3 バケット設定のいずれかが、パブリックによるオブジェクトへのアクセスを妨げているのかどうかを評価します。このスクリプトは以下の関数を実行します。

    • パブリックアクセスブロック設定を評価する

    • MaxObjectsS3PrefixName、および StartAfter パラメータで指定した値に基づいて S3 バケットからオブジェクトを返します。

    • S3 バケットから返されたオブジェクトのカスタム IAM ポリシーをシミュレートする S3 バケットポリシーを返します。

    • HttpGet パラメータが true に設定されている場合、返されたオブジェクトに対して部分的 HTTP リクエストを実行します。Range HTTP ヘッダーを使用して、オブジェクトの最初のバイトのみが返されます。

    • 返されたオブジェクトのキー名をチェックして、最後が 1 つか 2 つのピリオドになっているかどうかを確認します。ピリオドで終わるオブジェクトキー名は、Amazon S3 コンソールからダウンロードできません。

    • 返されたオブジェクトの所有者が S3 バケットの所有者と一致するかどうかをチェックします。

    • オブジェクトの ACL が匿名ユーザーに READ または FULL_CONTROL アクセス許可を付与するかどうかをチェックします。

    • オブジェクトに関連付けられたタグを返します。

    • シミュレートされた IAM ポリシーを使用して、GetObject API アクションの S3 バケットポリシーでこのオブジェクトに対する明示的な拒否があるかどうかを確認します。

    • オブジェクトのメタデータを返し、ストレージクラスがサポートされていることを確認します。

    • オブジェクトのサーバー側の暗号化設定をチェックして、オブジェクトが AWS Key Management Service (AWS KMS) カスタマーマネージドキーを使用して暗号化されているかどうかを確認します。

[Outputs] (出力)

AnalyzeObjectsバケット

AnalyzeObjectsオブジェクト