【问题标题】:AWS Cloufront : Returns Access Denied using Signed CookiesAWS Cloudfront:使用签名 Cookie 返回拒绝访问
【发布时间】:2019-01-24 23:43:10
【问题描述】:

我可以使用带有自定义域的云端签名 url 访问我的原始对象。 当我尝试使用云端签名的 cookie 时,问题就出现了,然后我收到了来自云端的 403 Access Denied 响应。

<Error>
   <Code>AccessDenied</Code>
   <Message>Access denied</Message>
</Error>

我用的一模一样:

  • OAI 凭据
  • 密钥对 ID
  • 私钥
  • 政策

以及我用于签名网址的云端和原始配置。

下面是我使用的 nodejs 代码。真不知道怎么回事。

任何帮助将不胜感激!

谢谢!

var moment = require('moment');

var AWS = require('aws-sdk');
var keyPairId = 'APKAIPZ5BRDMEXAMPLE';

var privateKey = '-----BEGIN RSA PRIVATE KEY-----\n' +
   'MIIEowIBAAKCAQEAsL+Tz/soZcDQLXcgJE89h5RHfZY+ddNIVI/3T0OvjOOFVRLp\n' +
   '0gN+06cwXWsvlmeEbnh5XdklA38H4p3wt5mxqip4YmuvbW6i+8UALHxPW0LTmiz0\n' +
   's4J6HB0eXhm3cbFV60i1DNat+W2q5miqlXqxKSdg+UbUGlFA5CbR\n' +
   '-----END RSA PRIVATE KEY-----';

var signer = new AWS.CloudFront.Signer(keyPairId, privateKey);
var expireTime = moment().add(3600, 'sec').unix();

exports.handler = (event, context, callback) => {

   var domain = 'mydomain.com';
   var resource = 'https://cdn.mydomain.com/*';
   var attributes = '; domain=' + domain + '; path=/; secure; httpOnly'

   var options = {policy : '{"Statement":[{"Resource":"' + resource + 
   '","Condition":{"DateLessThan":{"AWS:EpochTime":' + expireTime + 
    '}}}]}'};

    signer.getSignedCookie(options, function(err, data) {

        if (err) {
        //do somehing

        } else {

           context.done(null, {

            'Set-Cookie': 'CloudFront-Policy=' + data["CloudFront-Policy"] + attributes,
            'SEt-Cookie': 'CloudFront-Signature=' + data["CloudFront-Signature"] + attributes,
            'SeT-Cookie': 'CloudFront-Key-Pair-Id=' + data["CloudFront-Key-Pair-Id"] + attributes


       });

    }
});
};

【问题讨论】:

  • 我也有同样的问题。你有没有设法以某种方式解决它?
  • 是的,使用这个脚本来计算你的过期时间:var expireTime = Math.round((new Date()).getTime() / 1000) + 3600;

标签: node.js amazon-cloudfront


【解决方案1】:

而不是使用 moment() 使用 Math() 函数来计算你的过期时间,它会成功!

var expireTime = Math.round((new Date()).getTime() / 1000) + 3600;

【讨论】:

    猜你喜欢
    • 2019-08-30
    • 2021-06-26
    • 2018-01-16
    • 2015-02-13
    • 2017-10-03
    • 2021-09-07
    • 2018-09-18
    • 2015-05-21
    • 2013-01-03
    相关资源
    最近更新 更多