From 601e5a79e93870ba6ae3d3259f644f9816354d37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alfredo=20Espa=C3=B1a?= Date: Tue, 7 May 2024 17:28:52 -0600 Subject: [PATCH] AWS Dynamic provider credentials support (#837) * AWS Dynamic provider credentials support --- .../dynamic/DynamicCredentialsService.java | 32 +++++++++++++++---- .../service/workspace/SetupWorkspaceImpl.java | 19 ++++++++++- 2 files changed, 43 insertions(+), 8 deletions(-) diff --git a/api/src/main/java/org/terrakube/api/plugin/token/dynamic/DynamicCredentialsService.java b/api/src/main/java/org/terrakube/api/plugin/token/dynamic/DynamicCredentialsService.java index 7650935fc..bfd0a6604 100644 --- a/api/src/main/java/org/terrakube/api/plugin/token/dynamic/DynamicCredentialsService.java +++ b/api/src/main/java/org/terrakube/api/plugin/token/dynamic/DynamicCredentialsService.java @@ -89,7 +89,21 @@ private String generateJwt(String organizationName, String workspaceName, String @Transactional public HashMap generateDynamicCredentialsAws(Job job, HashMap workspaceEnvVariables) { - log.warn("AWS Dynamic Credentials not implemented yet"); + String awsWebIdentityToken = generateJwt( + job.getOrganization().getName(), + job.getWorkspace().getName(), + workspaceEnvVariables.get("WORKLOAD_IDENTITY_AUDIENCE_AWS"), + job.getOrganization().getId().toString(), + job.getWorkspace().getId().toString(), + job.getId() + ); + + log.info("TERRAKUBE_AWS_CREDENTIALS_FILE: {}", awsWebIdentityToken); + + workspaceEnvVariables.put("TERRAKUBE_AWS_CREDENTIALS_FILE", awsWebIdentityToken); + workspaceEnvVariables.put("AWS_ROLE_ARN", workspaceEnvVariables.get("WORKLOAD_IDENTITY_ROLE_AWS")); + workspaceEnvVariables.put("AWS_WEB_IDENTITY_TOKEN_FILE", getDefaultExecutorPath(job) + "/terrakube_config_dynamic_credentials_aws.txt"); + return workspaceEnvVariables; } @@ -125,12 +139,7 @@ public HashMap generateDynamicCredentialsGcp(Job job, HashMap