AWS S3がローカルホストと私のライブウェブサイトで動作していますが、開発サーバー(まったく同じ構成です)が次のエラーをスローしています:http://xxx.xx.xxx.xxx/latest/meta-data/iam/security-credentials/resulted in a
404 Not Found`レスポンス:インスタンス・プロファイル・メタデータ・サーバーからの信任状。S3 putObjectが動作していないアクセスが拒否されました
Localhost URL is http://localhost/example
Live URL is http://www.example.com
Development URL is http://dev.example.com
なぜローカルホストで動作しますが、私の開発サーバーでは動作しませんか?ここ
は私のサンプルコードである:ここ
$bucket = 'example'
$s3Client = new S3Client([
'region'=>'us-west-2',
'version'=>'2006-03-01',
'key'=>'xxxxxxxxxxxxxxxxxxxxxxxx',
'secret'=>'xxxxxxxxxxxxxxxxxxxxxxxx',
]);
$uniqueFileName = uniqid().'.txt';
$s3Client->putObject([
'Bucket' => $bucket,
'Key' => 'dev/'.$uniqueFileName,
'Body' => 'this is the body!'
]);
はポリシー:
{
"Version": "2012-10-17",
"Id": "Policyxxxxxxxxx",
"Statement": [
{
"Sid": "Stmtxxxxxxxxx",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::example/*"
}
]
}
編集したxxx.xx.xxx.xxは169.254.169.254ですか? –
はい、それは正しいです – LargeTuna
EC2メタデータ仮想サーバの標準IPアドレスです。アプリケーションまたはAWSライブラリによってインスタンスロールベースの一時的な資格情報が取得されます。ローカルホスト上で動作する理由は、すべてが同一であれば、謎のように見えます。インスタンスロールを使用していますか? 2台のEC2マシンが同じ役割で構成されていますか? –