AWS KMSで暗号化されたS3オブジェクトの期限付きURL(PreSignedURL)を、Nodejsで発行する
一般的な書き方
import { S3 } from 'aws-sdk'
const client = new S3()
client.getSignedUrl('getObject', {
Bucket: 'BUCKET_NAME',
Key: 'OBJECT_KEY',
Expires: 60 * 60 * 24 * 2
}, (e, r) => {
console.log(e)
console.log(r)
})
結果
URLは発行されるのですが、暗号化されているオブジェクトは、HTTP403が返ってきます。
対応
クラスを初期化する際にsignatureVersionを渡してやりましょう。
import { S3 } from 'aws-sdk'
const client = new S3({
signatureVersion: 's3v4'
})
client.getSignedUrl('getObject', {
Bucket: 'BUCKET_NAME',
Key: 'OBJECT_KEY',
Expires: 60 * 60 * 24 * 2
}, (e, r) => {
console.log(e)
console.log(r)
})
Author And Source
この問題について(AWS KMSで暗号化されたS3オブジェクトの期限付きURL(PreSignedURL)を、Nodejsで発行する), 我々は、より多くの情報をここで見つけました https://qiita.com/motchi0214/items/b90d0b38b4b4ab0e7331著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .