Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
すべてのリソースが同じ AWS アカウントからのものである場合、Amazon S3 バケットからの 403 アクセス拒否エラーをトラブルシューティングする方法を教えてください。
Amazon Simple Storage Service (Amazon S3) バケットにアクセスしたいと考えています。関連するリソースはすべて同じ AWS アカウントからのものです。しかし、「403 アクセスが拒否されました」というエラーが表示されます。
簡単な説明
Amazon S3 バケットに対して禁止リクエストを実行すると、サービスにより「403 アクセス拒否」エラーが返されます。403 アクセス拒否エラーを手動でトラブルシューティングするには、「Amazon S3 からの 403 アクセス拒否エラーをトラブルシューティングするにはどうすればよいですか?」を参照してください。
また、AWS Systems Manager の AWS Support-Troubleshoots3AccessSameAccount ランブックを使用して、Amazon S3 バケットからのアクセス拒否の問題を診断することもできます。ランブックは、同じ AWS アカウントからのすべての関連するリソースについて、Amazon S3 リソースでリクエスタに付与されたアクセス許可のレベルを評価します。これには、Amazon S3 リソースに関連するアクセスポリシー、ユーザーポリシー、およびリソースベースのポリシーが含まれます。また、入力パラメータで指定された AWS Identity and Access Management (IAM) ユーザーまたはロールも含まれます。
注: AWSSupport-TroubleshootS3AccessSameAccount が、クロスアカウントリソースのアクセス許可を評価することはありません。また、リクエスタは Amazon S3 バケットまたはオブジェクトと同じ AWS アカウントにある必要があります。
解決策
必要な手順
Systems Manager コンソールを使用して AWSSupport-TroubleshootS3AccessSameAccount ランブックを実行するには、次の手順を実行します。
1. Systems Manager コンソールを開きます。
2. ナビゲーションペインで、[オートメーション] を選択します。
3. [オートメーションの実行] を選択します。
4. [ドキュメントの選択] で、[Amazon が所有] タブを選択します。
5. オートメーションドキュメントの検索バーで、ドロップダウンリストから [ドキュメント名のプレフィックス] フィルターを選択します。次に、ドロップダウンリストから [等しい] を選択し、「AWSSupportTroubleshootS3AccessSameAccount」と入力します。その後 Enter キーを押します。
6. [AWSSupport-TroubleshootS3AccessSameAccount] を選択します。
7. [次へ] を選択します。
8. [シンプルな実行] を選択します。
9. [S3ResourceArn] で、トラブルシューティングする S3 バケットまたはオブジェクトの ARN を入力します。例えば、オブジェクトのアップロードまたはダウンロードをテストするには、次のように入力します。
arn:aws:s3:::bucket_name/key_name
10. [S3Action] で、ランブックで評価させたい S3 アクションを選択します。
11. [RequesterARN] で、特定の S3 リソースのアクセスレベルを調べる IAM ユーザーまたはロールの ARN を入力します。
arn:aws:iam::123456789012:user/user_name or arn:aws:iam::123456789012:role/example-rol
12. [実行] を選択します。
[実行] ステータスを使用して、ドキュメントの進行状況を追跡します。ステータスが [成功] になったら、[出力] セクションに表示される結果を確認します。結果には、評価された各オブジェクトのエラーコードが含まれます。
注: 評価における個々の手順の結果を確認するには、[実行したステップ] で関連するステップ ID を選択します。
オプションの手順
次の手順はオプションです。
-
[AutomationAssumeRole] では、バケットへのリクエストの送信時に Systems Manager が引き継ぐ IAM ロールを選択できます。このフィールドを空白のままにすると、Systems Manager はドキュメントの設定に使用している IAM ID を使用します。詳細については、「AutomationAssumeRole に必要な IAM アクセス許可」のセクションを参照してください。
重要: 選択する IAM ロールのトラストポリシーでは、Systems Manager Automation によるロールの引き継ぎが許可される必要があります。また、IAM ロールには AWSSupport-TroubleshootS3AccessSameAccount ランブックを実行するアクセス許可が必要です。 -
IAM ARN がロールであり、特定のセッション名を指定する場合は、[RequesterRoleSessionName] でセッション名を入力します。
-
オブジェクトに複数のバージョンがある場合は、[S3ObjectVersionId] でオブジェクトの [VersionId] を入力します。このパラメータでは、アクセスコンテキストを評価するオブジェクトのバージョンを指定できます。
-
これがアクションに関連する場合は、[KmsKeyArn] で KMS キーの ARN を入力します。例えば、KMS キーで暗号化されたオブジェクトのダウンロードをテストする場合などです。
-
[VpcEndpointID] では、アクセスの評価に関連する Amazon Virtual Private Cloud (Amazon VPC) エンドポイント ID を入力できます。Amazon S3 バケットポリシーは、特定の Amazon VPC エンドポイントからのバケットへのアクセスを制御できます。
-
[ContextKeyList] では、条件コンテキストキーのリストおよびポリシーの評価に関連する対応する値を入力できます。例えば、バケットポリシーで [PutObject] を明示的に拒否したとします。
{"ContextKeyName":"s3:x-amz-server-side-encryption-aws-kms-key-id","ContextKeyValues':["arn:aws:kms:us-east-1:123456789012:key/abc12345-b1e9-45a3-aa90-39ec93dd9b82'],"ContextKeyType":"string'}
-
ランブックで入力内容と特定の AWS Organizations サービスコントロールポリシー (SCP) を比較する場合、[SCPPolicy] でその SCP を入力します。値を入力する際は、改行、タブ、または空白をすべて削除します。組織の管理アカウントからランブックを実行する場合は、前述の手順は必要ありません。
-
[Tags] では、オートメーションにタグを付けて分類しやすくできます。
-
AWS CLI コマンドと共有可能な実行リンクについては、ランブックに Linux、Unix、macOS 用の AWS コマンドラインインターフェイス (AWS CLI) コマンドの例が記載されています。ランブックには共有可能なリンクもあります。
AutomationAssumeRole に必要な IAM アクセス許可
AutomationAssumeRole パラメータでランブックを使用するには、特定のアクションが必要です。
次のポリシーの例には、オートメーションのロールに必要なアクションが含まれています。
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:SimulateCustomPolicy", "iam:GetUser", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListGroupPolicies", "iam:GetGroupPolicy", "iam:ListAttachedGroupPolicies", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "s3:GetObjectAcl", "s3:GetObjectVersionAcl", "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::bucket_name/destination-prefix", "Effect": "Allow" }, { "Action": [ "s3:GetBucketPolicy", "s3:GetBucketAcl", "s3:ListBucket", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": "arn:aws:s3:::bucket_name", "Effect": "Allow" }, { "Action": [ "ec2:DescribeVpcEndpoints" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "kms:GetKeyPolicy" ], "Resource": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Effect": "Allow" }, { "Action": [ "organizations:ListPolicies", "organizations:DescribePolicy" ], "Resource": "arn:aws:organizations::aws:policy/service_control_policy/*", "Effect": "Allow" }, { "Action": [ "ssm:GetAutomationExecution", "ssm:DescribeAutomationExecutions" ], "Resource": "*", "Effect": "Allow" }, { "Action": "ssm:StartAutomationExecution", "Resource": "arn:aws:ssm:*:*:automation-definition/AWSSupport-TroubleshootS3AccessSameAccount:*", "Effect": "Allow", "Sid": "StartAutomationExecution" }, { "Action": "access-analyzer:ValidatePolicy", "Resource": "*", "Effect": "Allow" } ] }

関連するコンテンツ
- 質問済み 4ヶ月前lg...
- 質問済み 1年前lg...
- AWS公式更新しました 1年前