AWS CLI を使用すると Amazon S3 にアクセスできますが、AWS SDK を使用するとアクセス拒否エラーが発生します。その理由は何ですか?

最終更新日 : 2019 年 4 月 3 日

AWS Command Line Interface (AWS CLI) を使用すると、Amazon Simple Storage Service (Amazon S3) リソースにアクセスできます。AWS SDK を使用して Amazon S3 にアクセスしようとすると、アクセス拒否エラーが発生する理由は何ですか?

簡単な説明

AWS CLI を使用して AWS SDK を使用せずに Amazon S3 にアクセスできる場合は、次のトラブルシューティング手順に従ってください。

  1. 使用している AWS CLI と AWS SDK に同じ認証情報が設定されていることを確認してください。
  2. AWS SDK を使用した Amazon S3 へのリクエストが、ファイアウォール、HTTP プロキシ、または Amazon Virtual Private Cloud (Amazon VPC) エンドポイントによって許可されているかどうかを確認してください。

解決方法

使用している AWS CLI と AWS SDK に同じ認証情報が設定されていることを確認する

AWS CLI で設定されている認証情報を取得するには、次のコマンドを実行します。

aws configure list

AWS CLI に関連付けられた AWS Identity and Access Management (IAM) ロールを使用している場合は、このコマンドを実行してロールを取得します。

aws sts get-caller-identity

使用している AWS SDK で設定されている認証情報を取得するには、AWS Security Token Service (STS) クライアントを使用して GetCallerIdentity 呼び出しを実行します。たとえば、AWS SDK for Python (Boto3) を使用している場合は、get_caller_identity を実行します。Boto3 に認証情報を提供する方法の詳細については、「メソッドのパラメータ」を参照してください。

AWS CLI と AWS SDK に異なる認証情報が設定されている場合は、AWS CLI に保存されている認証情報で AWS SDK を使用してみてください。

AWS SDK を使用した Amazon S3 へのリクエストが、ファイアウォール、HTTP プロキシ、または Amazon VPC エンドポイントによって許可されているかどうかを確認する

設定した認証情報が同じ場合は、AWS CLI と AWS SDK を介した Amazon S3 へのリクエストが、同じ Amazon Elastic Compute Cloud (Amazon EC2) インスタンスなど、同じソースによるものであるかどうかを確認してください。

リクエストが異なるソースによるものである場合は、AWS SDK で使用しているソースがファイアウォール、HTTP プロキシ、または Amazon VPC エンドポイントを介してリクエストを送信しているかどうかを確認してください。次に、ファイアウォール、HTTP プロキシ、または VPC エンドポイントで、Amazon S3 に送信しようとしているリクエストが許可されていることを確認してください。

例えば、次の VPC エンドポイントポリシーでは my_secure_bucket にのみアクセスを許可しています。この VPC エンドポイントを使用している場合は、他のバケットへのアクセスが拒否されます。

{
    "Statement": [
        {
            "Sid": "Access-to-specific-bucket-only",
            "Principal": "*",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::awsexamplebucket",
                "arn:aws:s3:::awsexamplebucket/*"
            ]
        }
    ]
  }

このページは役に立ちましたか?

改善できることはありますか?


さらにサポートが必要な場合