Skip to content

Conversation

@istreeter
Copy link
Contributor

Change Logs

See issue HUDI-7699.

HUDI-6695 (#9260) added a AWS credentials provider to support assuming a role when syncing to Glue.

We use Hudi in a multi-tenant environment, and our customers give us delegated access to their Glue catalog. In this multi-tenant setup it is important to use an external ID to improve security when assuming IAM roles.

Furthermore, the STS session name is currently hard-coded to "hoodie". It is helpful for us to have configurable session names so we have better tracability of what entities are creating STS sessions in the cloud.

Currently, the assumed role is configured with the hoodie.aws.role.arn config property. I would like to add the following extra optional config properties, which will be used by the HoodieConfigAWSAssumedRoleCredentialsProvider:

  • hoodie.aws.role.external.id
  • hoodie.aws.role.session.name

Impact

No impact to any existing way of using Hudi. It only adds more configurability to an existing feature.

Risk level (write none, low medium or high below)

Low

Documentation Update

None. The new configuration options need to be documented, but I believe that is done automatically from the config code (someone please confirm this!)

Contributor's checklist

  • Read through contributor's guide
  • Change Logs and Impact were stated clearly
  • Adequate tests were added if applicable
  • CI passed

…n the AWS StsAssumeRoleCredentialsProvider

[HUDI-6695](https://issues.apache.org/jira/browse/HUDI-6695) added a AWS credentials provider to support assuming a role when syncing to Glue.

We use Hudi in a multi-tenant environment, and our customers give us delegated access to their Glue catalog.  In this multi-tenant setup it is important to use [an external ID](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) to improve security when assuming IAM roles.

Furthermore, the STS session name is currently hard-coded to "hoodie".  It is helpful for us to have configurable session names so we have better tracability of what entities are creating STS sessions in the cloud.

Currently, the assumed role is configured with the `hoodie.aws.role.arn` config property.  I would like to add the following extra optional config properties, which will be used by the `HoodieConfigAWSAssumedRoleCredentialsProvider`:

- `hoodie.aws.role.external.id`
- `hoodie.aws.role.session.name`
@github-actions github-actions bot added the size:S PR with lines of changes in (10, 100] label May 1, 2024
@hudi-bot
Copy link
Collaborator

hudi-bot commented May 1, 2024

CI report:

Bot commands @hudi-bot supports the following commands:
  • @hudi-bot run azure re-run the last Azure build

@istreeter
Copy link
Contributor Author

Thank you @danny0405 for reviewing this!! Is there anything more I need to do before this can get merged? (Just checking I haven't missed something obvious)

@danny0405 danny0405 merged commit 9860e94 into apache:master May 8, 2024
yihua pushed a commit that referenced this pull request May 15, 2024
…n the AWS StsAssumeRoleCredentialsProvider (#11134)

[HUDI-6695](https://issues.apache.org/jira/browse/HUDI-6695) added a AWS credentials provider to support assuming a role when syncing to Glue.

We use Hudi in a multi-tenant environment, and our customers give us delegated access to their Glue catalog.  In this multi-tenant setup it is important to use [an external ID](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) to improve security when assuming IAM roles.

Furthermore, the STS session name is currently hard-coded to "hoodie".  It is helpful for us to have configurable session names so we have better tracability of what entities are creating STS sessions in the cloud.

Currently, the assumed role is configured with the `hoodie.aws.role.arn` config property.  I would like to add the following extra optional config properties, which will be used by the `HoodieConfigAWSAssumedRoleCredentialsProvider`:

- `hoodie.aws.role.external.id`
- `hoodie.aws.role.session.name`
yihua pushed a commit that referenced this pull request May 15, 2024
…n the AWS StsAssumeRoleCredentialsProvider (#11134)

[HUDI-6695](https://issues.apache.org/jira/browse/HUDI-6695) added a AWS credentials provider to support assuming a role when syncing to Glue.

We use Hudi in a multi-tenant environment, and our customers give us delegated access to their Glue catalog.  In this multi-tenant setup it is important to use [an external ID](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) to improve security when assuming IAM roles.

Furthermore, the STS session name is currently hard-coded to "hoodie".  It is helpful for us to have configurable session names so we have better tracability of what entities are creating STS sessions in the cloud.

Currently, the assumed role is configured with the `hoodie.aws.role.arn` config property.  I would like to add the following extra optional config properties, which will be used by the `HoodieConfigAWSAssumedRoleCredentialsProvider`:

- `hoodie.aws.role.external.id`
- `hoodie.aws.role.session.name`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S PR with lines of changes in (10, 100]

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

3 participants