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 ドキュメントで何か誤解したことがありますか? それとも何か間違ったことをしていますか?