#!/bin/bash # =============================================================================================================== # aws-oidc-setup.sh - Configura credenciales AWS via OIDC para Bitbucket Pipelines # Descripción: # Exporta las variables necesarias para que AWS CLI y Terraform usen # el token OIDC de Bitbucket y asuman el rol IAM correspondiente. # # Uso: # source scripts/aws-oidc-setup.sh # # Requiere: # - El step de bitbucket-pipelines.yml debe tener "oidc: true" # - AWS CLI moderno que soporte AWS_WEB_IDENTITY_TOKEN_FILE # =============================================================================================================== set -euo pipefail ENV="${1:-dev}" if [[ -z "${BITBUCKET_STEP_OIDC_TOKEN:-}" ]]; then echo "ERROR: BITBUCKET_STEP_OIDC_TOKEN no está definido." echo "Asegúrate de agregar 'oidc: true' al step en bitbucket-pipelines.yml" exit 1 fi export AWS_WEB_IDENTITY_TOKEN_FILE="$(pwd)/web-identity-token" printf '%s' "${BITBUCKET_STEP_OIDC_TOKEN}" > "${AWS_WEB_IDENTITY_TOKEN_FILE}" if [[ "$ENV" == "prod" ]]; then export AWS_ROLE_ARN="arn:aws:iam::523761210517:role/BitbucketProyectosaccCICDRoleProd" else export AWS_ROLE_ARN="arn:aws:iam::668889063715:role/BitbucketProyectosaccCICDRoleDev" fi export AWS_DEFAULT_REGION="mx-central-1" echo "=== AWS OIDC Setup ===" echo "Ambiente : $ENV" echo "Role ARN : $AWS_ROLE_ARN" echo "Region : $AWS_DEFAULT_REGION" echo "Token file: $AWS_WEB_IDENTITY_TOKEN_FILE" echo "======================"