diff --git a/bitbucket-pipelines.yml b/bitbucket-pipelines.yml index 69bb66f..80badc6 100644 --- a/bitbucket-pipelines.yml +++ b/bitbucket-pipelines.yml @@ -1,16 +1,5 @@ definitions: steps: - - step: &aws_auth_script - name: "Authenticate with AWS" - script: - - export AWS_ROLE_ARN=arn:aws:iam::$AWS_ACCOUNT_NO:role/$OIDC_ROLE - - export AWS_WEB_IDENTITY_TOKEN_FILE=$(pwd)/web-identity-token - - echo $BITBUCKET_STEP_OIDC_TOKEN > $(pwd)/web-identity-token - - export STS_OUTPUT=$(aws sts assume-role-with-web-identity --role-arn $AWS_ROLE_ARN --role-session-name BitbucketPipeline --web-identity-token "$BITBUCKET_STEP_OIDC_TOKEN" --duration-seconds 3600) - - export AWS_ACCESS_KEY_ID=$(echo $STS_OUTPUT | jq -r '.Credentials.AccessKeyId') - - export AWS_SECRET_ACCESS_KEY=$(echo $STS_OUTPUT | jq -r '.Credentials.SecretAccessKey') - - export AWS_SESSION_TOKEN=$(echo $STS_OUTPUT | jq -r '.Credentials.SessionToken') - - aws sts get-caller-identity - step: &terraform_plan_apply name: "Plan and Apply Terraform" image: zenika/terraform-aws-cli:latest @@ -60,7 +49,14 @@ definitions: - python -m pip install --upgrade pip - apt-get update && apt-get install -y jq git - pip install awscli - - *aws_auth_script + - export AWS_ROLE_ARN=arn:aws:iam::$AWS_ACCOUNT_NO:role/$OIDC_ROLE + - export AWS_WEB_IDENTITY_TOKEN_FILE=$(pwd)/web-identity-token + - echo $BITBUCKET_STEP_OIDC_TOKEN > $(pwd)/web-identity-token + - export STS_OUTPUT=$(aws sts assume-role-with-web-identity --role-arn $AWS_ROLE_ARN --role-session-name BitbucketPipeline --web-identity-token "$BITBUCKET_STEP_OIDC_TOKEN" --duration-seconds 3600) + - export AWS_ACCESS_KEY_ID=$(echo $STS_OUTPUT | jq -r '.Credentials.AccessKeyId') + - export AWS_SECRET_ACCESS_KEY=$(echo $STS_OUTPUT | jq -r '.Credentials.SecretAccessKey') + - export AWS_SESSION_TOKEN=$(echo $STS_OUTPUT | jq -r '.Credentials.SessionToken') + - aws sts get-caller-identity - aws s3 sync /airflow/dags s3://doczy-dev-infra-mwaa-resources/dags trigger: automatic # uncomment after testing