ssl_key_encrypted:
enabled: __SSL_KEY_ENCRYPTED__
aws_secret_name: __SSL_KEY_AWS_SECRET_NAME__
+ aws_region: __SSL_KEY_AWS_REGION__
ssl_password_file: /etc/nginx/ssl/ssl_key_password.txt
ssl_password_connector_script: /usr/local/sbin/password_secret_connector.sh
#!/bin/bash
while [ true ]; do
- # AWS_SHARED_CREDENTIALS_FILE is set to an non-existant path to avoid awscli
+ # AWS_SHARED_CREDENTIALS_FILE is set to /dev/null to avoid AWS's CLI
# loading invalid credentials on nodes who use ~/.aws/credentials for other
# purposes (e.g.: the dispatcher credentials)
# Access to the secrets manager is given by using an instance profile.
- AWS_SHARED_CREDENTIALS_FILE=~/nonexistant aws secretsmanager get-secret-value --secret-id {{ ssl_key_encrypted.aws_secret_name }} --region us-east-1 | jq -r .SecretString > {{ ssl_key_encrypted.ssl_password_file }}
+ AWS_SHARED_CREDENTIALS_FILE=/dev/null aws secretsmanager get-secret-value --secret-id '{{ ssl_key_encrypted.aws_secret_name }}' --region '{{ ssl_key_encrypted.aws_region }}' | jq -r .SecretString > '{{ ssl_key_encrypted.ssl_password_file }}'
sleep 1
done
# a custom AWS secret name for each node to retrieve the password.
SSL_KEY_ENCRYPTED="no"
SSL_KEY_AWS_SECRET_NAME="${CLUSTER}-arvados-ssl-privkey-password"
+SSL_KEY_AWS_REGION="us-east-1"
# The directory to check for the config files (pillars, states) you want to use.
# There are a few examples under 'config_examples'.
s#__DATABASE_INT_IP__#${DATABASE_INT_IP}#g;
s#__WORKBENCH_SECRET_KEY__#${WORKBENCH_SECRET_KEY}#g;
s#__SSL_KEY_ENCRYPTED__#${SSL_KEY_ENCRYPTED}#g;
+ s#__SSL_KEY_AWS_REGION__#${SSL_KEY_AWS_REGION}#g;
s#__SSL_KEY_AWS_SECRET_NAME__#${SSL_KEY_AWS_SECRET_NAME}#g" \
"${f}" > "${P_DIR}"/$(basename "${f}")
done
s#__WORKBENCH2_EXT_SSL_PORT__#${WORKBENCH2_EXT_SSL_PORT}#g;
s#__WORKBENCH_SECRET_KEY__#${WORKBENCH_SECRET_KEY}#g;
s#__SSL_KEY_ENCRYPTED__#${SSL_KEY_ENCRYPTED}#g;
+ s#__SSL_KEY_AWS_REGION__#${SSL_KEY_AWS_REGION}#g;
s#__SSL_KEY_AWS_SECRET_NAME__#${SSL_KEY_AWS_SECRET_NAME}#g" \
"${f}" > "${F_DIR}/extra/extra"/$(basename "${f}")
done