View a markdown version of this page

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

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

AWSSupport-TroubleshootS3AccessSameAccount

説明

AWSSupport-TroubleshootS3AccessSameAccount ランブックは、Amazon S3 リソースのリクエスタ ( AWS Identity and Access Management IAM) ID (ユーザーまたはロール) に付与されたアクセスレベルを評価することで、バケットまたはオブジェクトオペレーションでの Amazon Simple Storage Service (Amazon S3) アクセス拒否の問題を診断するのに役立ちます。ランブックは、Amazon S3 リソースおよび入力パラメータで指定された IAM ユーザーまたはロールに関連付けられたすべての関連するアクセスポリシー、ユーザーポリシー、およびリソースベースのポリシー (バケットポリシー、バケット ACL、およびオブジェクト ACL) を評価します。

重要

このランブックを使用してアクセス拒否の問題を評価することができるのは、リクエスタが Amazon S3 バケットまたはオブジェクトと同じ AWS アカウントにある場合のみです。

ユーザーまたはこのランブックの実行AutomationAssumeRoleに使用される に、関連するリソースポリシーとバケット/キーメタデータ設定を取得/一覧表示するために必要なアクセス許可があることを確認します。

リソースポリシーに NotPrincipal要素がある場合、ランブックはステップ でエラーをスローしますPolicyModifier

動作の仕組み

ランブックは次の評価を実行します。

  • IAM ユーザーまたはロールの存在を確認し、ARN を分解してその主要なコンポーネントを識別します。

  • Amazon S3 リソース (バケットまたはオブジェクト) が存在するかどうかを確認し、バケットとキー名を返します。

  • ユーザー/ロールとバケット/オブジェクトが同じ AWS アカウントにあることを確認します。

  • 必要に応じて、バケットとオブジェクトの ACL 設定を取得します。

  • ユーザーまたはロールにアタッチされた IAM ポリシーを取得します。

  • バケットポリシーが存在する場合は取得します。

  • 該当する場合、 は暗号化されたオブジェクトの AWS KMS キーポリシーを取得します。

  • 該当する場合、 は VPC エンドポイントポリシーを取得します。

  • 指定されている場合、 AWS Organizations サービスコントロールポリシー (SCPsを取得します。

  • すべてのポリシーをまとめて評価し、指定されたアクションの有効なアクセス許可を決定します。

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

ドキュメントタイプ

オートメーション

[所有者]

Amazon

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

/

必要な IAM アクセス許可

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

  • ec2:DescribeVpcEndpoints (VPC エンドポイントが指定されている場合)

  • iam:GetGroupPolicy

  • iam:GetPolicy

  • iam:GetPolicyVersion

  • iam:GetRole

  • iam:GetRolePolicy

  • iam:GetUser

  • iam:GetUserPolicy

  • iam:ListAttachedRolePolicies

  • iam:ListAttachedUserPolicies

  • iam:ListGroupsForUser

  • iam:ListRolePolicies

  • iam:ListUserPolicies

  • iam:SimulatePrincipalPolicy

  • kms:GetKeyPolicy (KMS 暗号化が使用されている場合)

  • s3:GetBucketAcl

  • s3:GetBucketLocation

  • s3:GetBucketPolicy

  • s3:GetObjectAcl

  • s3:GetObjectVersion

  • s3:ListBucket

IAM ポリシーの例:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVpcEndpoints", "iam:GetGroupPolicy", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:GetRole", "iam:GetRolePolicy", "iam:GetUser", "iam:GetUserPolicy", "iam:ListAttachedRolePolicies", "iam:ListAttachedUserPolicies", "iam:ListGroupsForUser", "iam:ListRolePolicies", "iam:ListUserPolicies", "iam:SimulatePrincipalPolicy", "kms:GetKeyPolicy", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:GetBucketPolicy", "s3:GetObjectAcl", "s3:GetObjectVersion", "s3:ListBucket" ], "Resource": "*" } ] }

指示

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

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

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

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

    • AutomationAssumeRole(オプション):

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

    • S3ResourceArn (必須):

      Amazon S3 リソースの ARN (バケットまたはキー)。PutObject や などのオブジェクトオペレーションの場合はGetObject、オブジェクトの ARN を指定します。例: arn:aws:s3:::bucket_name、、または arn:aws:s3:::bucket_name/key_name

    • S3Action (必須):

      ランブックがアクセスコンテキストを評価する Amazon S3 アクション。特定のアクションに対応する Amazon S3 リソースタイプ (バケットまたはオブジェクト) を指定してください。例: GetObjectPutObjectDeleteObjectGetBucketAclなど。

    • RequesterArn (必須):

      特定の Amazon S3 リソースでアクセスレベルを検索する IAM プリンシパル (ユーザーまたはロール) ARN。例えば、arn:aws:iam::123456789012:user/user_namearn:aws:iam::123456789012:role/example-role などです。

    • RequesterRoleSessionName (オプション):

      IAM ARN がロールであり、特定のセッション名を指定する場合の、引き受けたロールのセッション名。

    • S3ObjectVersionId (オプション):

      オブジェクトに複数のバージョンがある場合、このパラメータを使用すると、アクセスコンテキストを評価するオブジェクトの特定のバージョンを指定できます。

    • KmsKeyArn (オプション):

      キー AWS KMS ARN がアクションに関連している場合 (例: CompleteMultipartUploadCopyObjectCreateMultipartUpload、、 PutObjectなど)。注: ランブックは、別の AWS アカウントの AWS KMS キーの指定をサポートしていません。

    • VpcEndpointId (オプション):

      アクセス評価に関連する Virtual Private Cloud (VPC) エンドポイント ID。Amazon S3 バケットポリシーは、特定の VPC エンドポイントからのバケットへのアクセスを制御できます。

    • ContextKeyList (オプション):

      条件キーは、ポリシー評価に関連する および対応する値を一覧表示します。例: [{"ContextKeyName":"aws:PrincipalArn","ContextKeyValues":["arn:aws:iam::123456789012:root"],"ContextKeyType":"string"}]

    • SCPPolicy (オプション):

      ランブックが特定の SCP ポリシーに対して入力を評価する場合の AWS Organizations Service Control Policy (SCP)。これは、組織の管理アカウントからこのランブックを実行するときに必要ではなく、無視されます。

  4. [実行] を選択します。

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

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

    • IAMCheckTypeset:

      IAM ユーザーまたはロールの存在をチェックし、ARN を分解してその主要なコンポーネントを識別します。

    • ResourceTypeCheck:

      Amazon S3 リソース (バケットまたはオブジェクト) が存在するかどうかを確認し、バケットとキー名を返します。

    • UaBoOoAccountCheck:

      ユーザー/ロールとバケット/オブジェクトが同じ AWS アカウントにあることを確認します。

    • KeyDetailsChecker:

      リソースがオブジェクトの場合、Amazon S3 オブジェクトに関する詳細を取得します。

    • ACLBucketCheck:

      バケット ACL 設定を取得します。

    • ConditionSetter:

      ポリシー評価の条件キーを設定します。

    • FetchIAMPolicy:

      ユーザーまたはロールにアタッチされた IAM ポリシーを取得します。

    • branchOnACLCheck:

      オブジェクト ACL をチェックする必要があるかどうかを決定します。

    • FetchBucketPolicy:

      バケットポリシーが存在する場合は取得します。

    • branchOnKMSCheck:

      AWS KMS キーポリシーを評価する必要があるかどうかを決定します。

    • FetchKMSPolicy:

      該当する場合は、 AWS KMS キーポリシーを取得します。

    • branchOnVPCeCheck:

      VPC エンドポイントポリシーを評価する必要があるかどうかを決定します。

    • FetchVPCePolicy:

      該当する場合、VPC エンドポイントポリシーを取得します。

    • FetchSCPPolicy:

      指定した場合、 AWS Organizations SCP を取得します。

    • PolicyModifier:

      評価のすべてのポリシーを変更して準備します。

    • EvaluatePolicy:

      すべてのポリシーをまとめて評価し、指定されたアクションの有効なアクセス許可を決定します。

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

リファレンス

Systems Manager Automation