0

以下のように、AssumeRoleCredentials を使用して S3 オブジェクトにアクセスするための署名付き URL を作成しました。

client = Aws::AssumeRoleCredentials.new(role_arn: ENV['AWS_ROLE_ARN'],
                                                    role_session_name: "S3_Access",
                                                    duration_seconds: 3600)
aws_creds = client.credentials
post = Aws::S3::PresignedPost.new(aws_creds, S3_REGION, S3_BUCKET, {
        key: Rails.env + '/' + file_name,
        metadata: {
          'original-filename' => file_names
        }
      })

しかし、再署名した URL を使用してファイルをアップロードしようとすると、以下のエラーがスローされます。

<Code>InvalidAccessKeyId
</Code>
<Message>
The AWS Access Key Id you provided does not exist in our records.
</Message>
<AWSAccessKeyId>A************S</AWSAccessKeyId>
<RequestId>***********</RequestId>
<HostId>**********************</HostId>
</Error>

私も AssumeRoleWebIdentityCredentials を試してみましたが、違いはありませんでした。一時的な資格情報を使用して、他の S3 アクションを実行できました。ただし、署名付き URL を介して s3 オブジェクトにアクセスしても機能しません。

4

0 に答える 0