From ef9fc6617154b436dcc44ecf1764358fb3be7601 Mon Sep 17 00:00:00 2001 From: Evert Daniel Romero Garrido Date: Thu, 16 Apr 2026 22:03:30 +0000 Subject: [PATCH] fix(terraform): corregir OIDC audience para Bitbucket Cloud Bitbucket Cloud genera tokens JWT con audience fijo: ari:cloud:bitbucket::workspace/465016f8-d6fb-4ecb-ba6f-2248e938942b El archivo oidc-bitbucket.tf solo aceptaba sts.amazonaws.com, lo que causaba InvalidIdentityToken en cada terraform apply. Ahora el OIDC provider y el rol IAM aceptan ambos audiences mediante ForAnyValue:StringEquals. --- terraform/oidc-bitbucket.tf | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/terraform/oidc-bitbucket.tf b/terraform/oidc-bitbucket.tf index 66bc4da..039b968 100644 --- a/terraform/oidc-bitbucket.tf +++ b/terraform/oidc-bitbucket.tf @@ -14,9 +14,6 @@ locals { bitbucket_workspace = "ccsoft1" bitbucket_oidc_url = "https://api.bitbucket.org/2.0/workspaces/${local.bitbucket_workspace}/pipelines-config/identity/oidc" - # UUID del workspace de Bitbucket Cloud para el audience fijo del OIDC. - bitbucket_workspace_uuid = "465016f8-d6fb-4ecb-ba6f-2248e938942b" - # ------------------------------------------------------------------ # REPO_UUID de proyectosacc # ------------------------------------------------------------------ @@ -30,6 +27,9 @@ locals { # reemplázalo por el UUID exacto del repo ccsoft1/proyectosacc. # ------------------------------------------------------------------ bitbucket_repo_uuid = "{3ceb5bec-0805-4bfb-b891-aaf5626ad7a5}" + + # Workspace UUID de Bitbucket Cloud (audience fijo de los tokens JWT) + bitbucket_workspace_uuid = "465016f8-d6fb-4ecb-ba6f-2248e938942b" } # Obtener el thumbprint del certificado TLS del issuer OIDC @@ -43,9 +43,9 @@ data "tls_certificate" "bitbucket_oidc" { resource "aws_iam_openid_connect_provider" "bitbucket" { url = local.bitbucket_oidc_url - # Bitbucket Cloud usa "ari:cloud:bitbucket::workspace/{uuid}" como audience - # fijo en los tokens JWT. Mantenemos "sts.amazonaws.com" por compatibilidad - # con pipelines que aún lo configuren manualmente. + # Bitbucket Cloud usa `ari:cloud:bitbucket::workspace/{uuid}` como audience + # fijo en los tokens JWT. Mantenemos `sts.amazonaws.com` por compatibilidad + # con configuraciones que lo usen explícitamente. client_id_list = [ "sts.amazonaws.com", "ari:cloud:bitbucket::workspace/${local.bitbucket_workspace_uuid}" @@ -121,4 +121,4 @@ resource "aws_iam_role_policy_attachment" "bitbucket_ci_cd_admin" { # role = aws_iam_role.bitbucket_ci_cd.id # # policy = file("${path.module}/../docs/iam-policy-ci-cd-proyectosacc.json") -# } \ No newline at end of file +# }