0

AWS SDK 1.6.2 for PHP を使用しており、ファイルをバケットにアップロードし、デフォルトでプライベートにして、特定の IAM ユーザーに読み取りアクセスを許可したいと考えています。

IAM ユーザー「blah@test.com」を作成し、次のようにアップロード関数を呼び出しています。

$response = $s3->create_object('my-bucket', 'filename.ext', array(
    'fileUpload' => '/path/to/local/file',
    'headers'    => array('Cache-Control' => 'max-age=0'),
    'acl'        => array(
        array('id' => 'blah@test.com', 'permission' => AmazonS3::GRANT_READ)
    ),
));

これにより、期待どおりにヘッダーが追加されますx-amz-grant-read:emailAddress="blah@test.com"が、これを行うと、応答でエラーが発生します。

Code -> "UnresolvableGrantByEmailAddress"
Message -> "The e-mail address you provided does not match any account on record."

メール以外のユーザー名を持つ IAM ユーザーを使用し、完全な Amazon リソースネーム (aRN などarn:aws:iam::{account_no}:user/{username}) も使用しようとしましたが、この場合、対応する「無効な ID」エラーが発生します。

IAM/SDK ドキュメントで何か誤解したことがありますか? それとも何か間違ったことをしていますか?

4

1 に答える 1

0

ACL ID を渡す場所は、IAM ユーザーの実際のアクセス キー ID である必要があります。

于 2013-11-10T11:08:13.323 に答える