Sleet icon indicating copy to clipboard operation
Sleet copied to clipboard

5.2.5 having s3 auth issues on yandex cloud

Open zznty opened this issue 1 year ago • 4 comments

hello, after upgrading to sleet 5.2.5 i'm unable to auth into a s3 bucket on yandex cloud with error:

[Amazon.S3.AmazonS3Exception] The request signature we calculated does not match the signature you provided. Check your key and signing method.

however forcing it to use 5.1.3 had the issue resolved for now.

sleet config:

- name: Push Nuget Package
  env:
    SLEET_FEED_TYPE: s3
    SLEET_FEED_PATH: https://nuget.storage.yandexcloud.net
    SLEET_FEED_BUCKETNAME: nuget
    SLEET_FEED_SERVICEURL: https://storage.yandexcloud.net
    SLEET_FEED_ACCESSKEYID: ${{ secrets.S3_KEY_ID }}
    SLEET_FEED_SECRETACCESSKEY: ${{ secrets.S3_KEY }}
  run: sleet push .

zznty avatar Jan 16 '24 10:01 zznty

Thanks for reporting this. The functional tests for S3 are passing. In 5.2.5 the AWS S3 SDK has been updated which could be contributing to this.

I'll see if I can get a repro of this.

emgarten avatar Jan 16 '24 16:01 emgarten

@zznty will you let me know if 5.2.6 solves this problem for you?

Digging into the error it looks like the AWS token dependency needed an update along with the S3 SDK.

I wasn't able to fully create a yandex account and get an S3 bucket setup to test this myself so if you could let me know I would appreciate it.

emgarten avatar Jan 21 '24 00:01 emgarten

looks like the issue wasnt fixed. Im still getting the same exception. It could be a bug in either aws sdk or yandex object storage s3 api implementation. I dont have time to dig into it unfortunately.

zznty avatar Jan 21 '24 10:01 zznty

I'll reopen this to track the issue

emgarten avatar Jan 21 '24 18:01 emgarten

@emgarten, can be fixed by updating AWSSDK.S3 to 3.7.307.1 or higher, at least it works with the Selectel cloud. This requires replacing obsolete ECSTaskCredentials with GenericContainerCredentials, but I'm not sure how to properly change the statement above (src/SleetLib/FileSystem/FileSystemFactory.cs:186)

kutep0v avatar Jul 08 '24 08:07 kutep0v

@emgarten, can be fixed by updating AWSSDK.S3 to 3.7.307.1 or higher, at least it works with the Selectel cloud. This requires replacing obsolete ECSTaskCredentials with GenericContainerCredentials, but I'm not sure how to properly change the statement above (src/SleetLib/FileSystem/FileSystemFactory.cs:186)

Thanks for pointing this out. I'll update the AWS packages: https://github.com/emgarten/Sleet/pull/199

emgarten avatar Jul 10 '24 00:07 emgarten

@zznty @kutep0v try the latest version and let me know if this fixes things for you: https://www.nuget.org/packages/Sleet/6.1.0

emgarten avatar Jul 11 '24 07:07 emgarten

@emgarten, works fine with yandex cloud and selectel.

kutep0v avatar Jul 11 '24 09:07 kutep0v