Неизвестное ключевое сообщение при использовании подписанного URL-адреса Aws Cloudfront с Java

#amazon-web-services #amazon-s3 #amazon-cloudfront #pre-signed-url #aws-sdk-java

#amazon-web-services #amazon-s3 #amazon-облачный фронт #предварительно подписанный URL-адрес #aws-sdk-java

Вопрос:

Я получаю код ошибки в браузере, когда я обращаюсь к объекту корзины S3, используя подписанный URL-адрес Cloudfront. Я думаю, что я следовал тому же подходу для создания SignedUrl.

  • Создал простую корзину S3 с настройками для корзины, оставшимися по умолчанию.
  • Создал дистрибутив CloudFront с настройками, как :
        Origin Domain Name: URL to the S3 bucket (ie. “bucket-name.s3.amazonaws.com”)
       Restrict Bucket Access: “Yes”
       Origin Access Identity: “Create a New Identity”
       Grant Read Permissions on Bucket: “Yes, Update Bucket Policy”
       Restrict Viewer Access: “Yes”
       Trusted Signers: “Self”
     
  • Создал метод JAVA с использованием AWS SDK следующим образом:
       public static void getSignerURL() throws InvalidKeySpecException, IOException {
    
      Protocol protocol = Protocol.http;
      String distributionDomain = "dh6mxa3xww1tk.cloudfront.net";
      File privateKeyFile = new File("C:\Users\ABC\Downloads\pk-APKAJCG2GCNVLNLB7BWA.pem");
      String s3ObjectKey = "movie.mp4";
      String keyPairId = "APKAJCG2GCNVLNLB7BWA";  
      Date dateLessThan = DateUtils.parseISO8601Date("2020-11-30T22:20:00.000Z");
      Date dateGreaterThan = DateUtils.parseISO8601Date("2011-11-14T22:20:00.000Z");
      String ipRange = "192.168.0.1/24";
    
      String url1 = CloudFrontUrlSigner.getSignedURLWithCannedPolicy(
                   protocol, distributionDomain, privateKeyFile,
                   s3ObjectKey, keyPairId, dateLessThan);
    
     System.out.println("URL IS : " url1);
     

    }

Но получение кода ошибки в браузере выглядит следующим образом:

     <Error>
    <Code>InvalidKey</Code>
    <Message>Unknown Key</Message>
    </Error>
 

Закрытый ключ и идентификатор пары ключей получены из раздела CloudFront key pairs раздела «Ваши учетные данные безопасности».
URL генерируется правильно, но он показывает ошибку. Проблема по-прежнему сохраняется, даже если я конвертирую файл pem в формат der и использую его.
Пожалуйста, помогите мне решить эту проблему.

Комментарии:

1. У меня точно такая же проблема … Вы когда-нибудь разбирались в этой проблеме?

2. @jpedro Да, я решил эту проблему, изменив настройку даты. Я дам ссылку на код, если хотите.