diff --git a/docs/14-oidc-bitbucket-aws.md b/docs/14-oidc-bitbucket-aws.md index 2de2f17..ee4c683 100644 --- a/docs/14-oidc-bitbucket-aws.md +++ b/docs/14-oidc-bitbucket-aws.md @@ -55,7 +55,24 @@ El proceso es como mostrar una credencial de invitado en la entrada de un edific --- -## 3. Pre-requisitos +## 3. Configuración aplicada (resumen de esta sesión) + +Los siguientes recursos OIDC ya fueron configurados manualmente en la consola AWS durante abril de 2026: + +| Cuenta | OIDC Provider | Rol IAM | Permisos | +|--------|---------------|---------|----------| +| **DEV** (`668889063715`) | `api.bitbucket.org/2.0/workspaces/ccsoft1/pipelines-config/identity/oidc` | `BitbucketProyectosaccCICDRoleDev` | `AdministratorAccess` (temporal) | +| **PROD** (`523761210517`) | `api.bitbucket.org/2.0/workspaces/ccsoft1/pipelines-config/identity/oidc` | `BitbucketProyectosaccCICDRoleProd` | `AdministratorAccess` (temporal) | + +**Audience configurada:** `sts.amazonaws.com` + +**Repository UUID usado en trust policies:** `{3ceb5bec-0805-4bfb-b891-aaf5626ad7a5}` + +> **Nota de seguridad:** `AdministratorAccess` fue adjunta solo como punto de partida para desbloquear el pipeline. En una iteración posterior debe reemplazarse por la política mínima de `docs/iam-policy-ci-cd-proyectosacc.json`. + +--- + +## 4. Pre-requisitos Antes de empezar, asegúrate de tener: @@ -63,9 +80,9 @@ Antes de empezar, asegúrate de tener: - DEV: `668889063715` - PROD: `523761210517` 2. **Permiso para crear** `iam:CreateOpenIDConnectProvider` y `iam:CreateRole`. -3. El **Repository UUID** de `ccsoft1/proyectosacc`. Lo encuentras en: - - Bitbucket > Repository settings > OpenID Connect > **Repository UUID** - - Formato: `{1de489be-ce6a-42a0-a8c8-eadbf1174ac7}` (incluye las llaves `{}`) +3. El **Repository UUID** de `ccsoft1/proyectosacc`: + - `{3ceb5bec-0805-4bfb-b891-aaf5626ad7a5}` (incluye las llaves `{}`) + - Lo encuentras en: Bitbucket > Repository settings > OpenID Connect > **Repository UUID** --- @@ -81,9 +98,9 @@ Antes de empezar, asegúrate de tener: cd proyectosacc/terraform ``` -2. Edita `terraform/oidc-bitbucket.tf` y reemplaza el placeholder: +2. Verifica que `terraform/oidc-bitbucket.tf` tenga el UUID correcto: ```hcl - bitbucket_repo_uuid = "{1de489be-ce6a-42a0-a8c8-eadbf1174ac7}" + bitbucket_repo_uuid = "{3ceb5bec-0805-4bfb-b891-aaf5626ad7a5}" ``` 3. Configura tus credenciales de admin para la cuenta **DEV**: @@ -129,7 +146,7 @@ Repite esto en **DEV** y **PROD**: 5. En **Conditions**, agrega una condición personalizada (avanzado) o edita el trust policy después de crearlo. 6. Nombre del rol: `BitbucketProyectosaccCICDRoleDev` 7. Adjunta la política `AdministratorAccess` (solo como punto de partida). -8. Edita el **Trust Policy** para que quede así: +8. Edita el **Trust Policy** para que quede exactamente así: ```json { @@ -146,7 +163,7 @@ Repite esto en **DEV** y **PROD**: "api.bitbucket.org/2.0/workspaces/ccsoft1/pipelines-config/identity/oidc:aud": "sts.amazonaws.com" }, "StringLike": { - "api.bitbucket.org/2.0/workspaces/ccsoft1/pipelines-config/identity/oidc:sub": "{REPO_UUID}:*" + "api.bitbucket.org/2.0/workspaces/ccsoft1/pipelines-config/identity/oidc:sub": "{3ceb5bec-0805-4bfb-b891-aaf5626ad7a5}:*" } } } @@ -154,8 +171,6 @@ Repite esto en **DEV** y **PROD**: } ``` -Reemplaza `{REPO_UUID}` por el UUID real del repositorio. - #### Paso 3: Crear el Rol IAM para PROD Repite exactamente el paso 2 pero en la cuenta PROD (`523761210517`) y con el nombre: @@ -227,7 +242,7 @@ echo "$BITBUCKET_STEP_OIDC_TOKEN" | cut -d'.' -f2 | base64 -d 2>/dev/null | pyth Deberías ver algo como: ```json { - "sub": "{1de489be-ce6a-42a0-a8c8-eadbf1174ac7}:{759de0c6-eaee-4eaa-b7a6-c507eec759a7}", + "sub": "{3ceb5bec-0805-4bfb-b891-aaf5626ad7a5}:{759de0c6-eaee-4eaa-b7a6-c507eec759a7}", "aud": "sts.amazonaws.com", "iss": "https://api.bitbucket.org/2.0/workspaces/ccsoft1/pipelines-config/identity/oidc", ... @@ -302,7 +317,7 @@ oidc: true "api.bitbucket.org/2.0/workspaces/ccsoft1/pipelines-config/identity/oidc:sub": "{REPO_UUID}:*" } ``` -3. Si aún no conoces el `REPO_UUID`, puedes poner `"*"` temporalmente **solo para pruebas** (menos seguro). +3. El UUID configurado es `{3ceb5bec-0805-4bfb-b891-aaf5626ad7a5}`. Si el pipeline sigue fallando, verifica que el `sub` claim del token real coincida con este UUID. Solo en casos de emergencia puedes poner `"*"` temporalmente **solo para pruebas** (menos seguro). ---