スキップしてコンテンツを表示

別のリージョンにある Amazon S3 バケットで発生する、「IllegalLocationConstraintException」の解決方法を教えてください。

所要時間1分
0

別の AWS リージョンにある Amazon Simple Storage Service (Amazon S3) バケットにアクセスしようとしたところ、「IllegalLocationConstraintException」エラーが発生しました。

簡単な説明

バケットのリージョンとは異なるリージョンからは、Amazon S3 バケットにアクセスできません。S3 バケットにアクセスするには、API または AWS SDK を更新し、バケットと同じリージョンに配置する必要があります。IllegalLocationConstraintException エラーの詳細については、「エラーコードのリスト」を参照してください。

解決策

次のトラブルシューティング手順を実施してバケットのリージョンを取得し、Amazon S3 エンドポイントを更新して正しいリージョンに配置します。

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

Amazon S3 バケットのリージョンを確認する

Amazon S3 コンソールまたは AWS CLI を使用すると S3 バケットのリージョンを確認できます。

Amazon S3 コンソール

次の手順を実行します。

  1. Amazon S3 コンソールを開き、S3 バケットに移動します。
  2. [プロパティ] タブを選択します。
  3. [バケットの概要] に表示される、バケットの AWS リージョンを書き留めます。

AWS CLI

次の get-bucket-location コマンドを実行します。

aws s3api get-bucket-location --bucket BUCKET_NAME

注: bucket-name は、実際の S3 バケット名に置き換えます。

出力例

{      
"LocationConstraint": "us-west-2"  
}

注: LocationConstraint リクエストパラメータが NULL または空の場合、バケットは us-east-1 リージョンにあります。

API または AWS SDK のリージョン設定を更新する

API または AWS SDK の設定を正しいリージョンに更新するには、次の手順を実行します。

AWS CLI

次の ls コマンドを実行し、--region パラメータを追加します。

aws s3 ls s3://BUCKET_NAME --region YOUR_REGION

注: 実際のものでそれぞれ、BUCKET_NAME を S3 バケット名に、YOUR_REGION をリージョンに置き換えます。

AWS SDK

AWS SDK を使用している場合は、設定を更新して正しいリージョンを指定します。

AWS SDK for Python (Boto3) の設定例

import boto3

   s3 = boto3.client('s3', region_name='YOUR-REGION')
   response = s3.list_objects_v2(Bucket='BUCKET_NAME')
   print(response)

注: 実際のものでそれぞれ、YOUR_REGION をリージョンに、BUCKET_NAME をバケット名に置き換えます。

AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ