Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Accommodate separate set of credentials to access DynamoDB #2287

Closed
MusKaya opened this issue Mar 15, 2024 · 6 comments · Fixed by #3011
Closed

Accommodate separate set of credentials to access DynamoDB #2287

MusKaya opened this issue Mar 15, 2024 · 6 comments · Fixed by #3011
Labels
enhancement New feature or request

Comments

@MusKaya
Copy link

MusKaya commented Mar 15, 2024

Description

When using an S3 compatible storage other than AWS S3, one has a set of access and secret key for the storage and another set for the DynamoDB. In this case, we need an option to provide separate credentials for DynamoDB access.

Use Case
Concurrent writes to an S3 compatible storage that does not share the credentials as DynamoDB.

Related Issue(s)

@MusKaya MusKaya added the enhancement New feature or request label Mar 15, 2024
@tustvold
Copy link

Which S3 compatible store are you using, most of them shouldn't need DynamoDb as they support conditional writes natively

@MusKaya
Copy link
Author

MusKaya commented Mar 18, 2024

Which S3 compatible store are you using, most of them shouldn't need DynamoDb as they support conditional writes natively

Hi @tustvold, I'm using Linode Object Storage (which has strong consistency).

@tustvold
Copy link

So strong consistency is a necessary but insufficient condition here, to not need locking you would need support for conditional writes. I have not been able to ascertain if it supports this.

@MusKaya
Copy link
Author

MusKaya commented Mar 29, 2024

I experimented with AWS_S3_ALLOW_UNSAFE_RENAME='true' and observed that concurrent writes overwrite the json files and the later one wins the race condition.

We need to provide the DynamoDB credentials to enable concurrent writes and the object storage & DynamoDB require separate pairs of secret & access keys.

Can we consider adding optional parameters (under DeltaTable storage_options) to take DynamoDB credentials in case they differ from S3 credentials?

@Dobatymo
Copy link

I need this also. I am using AWS S3 and DynamoDB. Both are are accessed using temporary tokens which I get by assuming a role. However S3 and dynamodb are in different regions and the tokens are scoped to the specific region. So I need to pass a separate set of credentials to both of them. I supply the S3 region with aws_region and the DynamoDB region indirectly with aws_endpoint_url_dynamodb.

Would there be another way to solve this?

@thomas-chauvet
Copy link
Contributor

I've opened a PR that should solve this :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
4 participants