add dynamodb database access#18843
Conversation
021f223 to
36f9e07
Compare
|
@smallinsky this is ready I just need to finish the writeup before I mark it ready for review by others, but since you are already familiar with what this PR accomplishes you can take a look if you want |
72c80f4 to
9539b09
Compare
|
@GavinFrazar - this PR will require admin approval to merge due to its size. Consider breaking it up into a series smaller changes. |
f4aeffb to
0dc5ffe
Compare
There was a problem hiding this comment.
Looks good to me. Also tested it out today and worked great!
One note I believe dax support we have here today is only for for dax APIs.
I doubt if there are any customer needs dax endpoints access from Teleport (as we can access dynamodb directly). If so, we may consider doing dax endpoints support separately where use AWS API for discovery and dax client for engine. I can create a ticket for this.
* add more comments * revert changes that were not necessary * copy http requests like we do elsewhere * delete unused file * fix typos * misc code cleanup
Co-authored-by: rosstimothy <39066650+rosstimothy@users.noreply.github.com>
Co-authored-by: rosstimothy <39066650+rosstimothy@users.noreply.github.com>
cf5a353 to
3b51733
Compare
|
Due to PR size this requires admin approval to merge - who can do that? @r0mant @smallinsky |
* partial backport of (#18843)
* partial backport of (#18843)
* partial backport of (#18843)
* partial backport of (#18843)
This PR adds DynamoDB support to database access #17842
DAX, dynamodb, and dynamodb streams are all supported.
Why
We want to bring DynamoDB into database access for consistency and to enable some things not possible via app access.
This change will enable the use of NoSQLWorkbench GUI client for DynamoDB.
How
Configure one Teleport database for each AWS region you want in your cluster.
Example Configuration
RBAC
--db-nameis not supported.--db-usershould be an AWS role, either "role/SomeRole" or "SomeRole" is fine. The full ARN is constructed using configured AWS account ID and the AWS partition (determined by region).tsh
tsh db connectprints a user message telling them to usetsh proxy db --tunnelinstead.tsh db ls -vis insteadtsh proxy db --tunnelas well.--tunnelflag. I may add non-tunnel later, but it will only work with the aws cli, not NoSQLWorkbench, since NoSQLWorkbench does not have a way to configure trusted CA bundle.Example usage:
$ tsh proxy db --tunnel --port 8000 --db-user=GavinDynamoDBRole home-dynamodb$ aws dynamodb list-tables --endpoint-url=http://localhost:8000This PR is stacked against the app access PR #19387 for merge.
TODO: update webapps repo to recognize the DynamoDB db access request event codes.