AWS Secrets Manager
-
Create a dedicated IAM user (e.g.,
external-secret-access-user
). You can uncheck Console Access Required. -
Generate
ACCESS_KEY_ID
andAWS_SECRET_ACCESS_KEY
and keep them handy. -
Note the user’s ARN for later use (format:
arn:aws:iam::<account-id>:user/<user-name>
). -
Create IAM policy (e.g.,
external-secret-access-policy
) with the following JSON:Replace<REGION>
and<ACCOUNT-ID>
with your AWS region and account ID. -
Create IAM role (e.g., external-secret-access-role) with the following trust relationship:
Replace
<IAM-USER-ARN>
with the ARN of the user created in step 1. - Attach the AWS IAM policy created in step 4 to the IAM role.
-
Create secrets in AWS Secrets Manager with your Plane configuration values. For example, store RabbitMQ credentials with a name like
prod/secrets/rabbitmq
.
Follow this pattern to manage all the environment variables in AWS Secrets Manager.Key Value RABBITMQ_DEFAULT_USER plane RABBITMQ_DEFAULT_PASS plane123 -
Create a Kubernetes secret containing AWS credentials in your application namespace:
-
Apply the following YAML to create a ClusterSecretStore resource:
Replace
<ACCOUNT-ID>
and<IAM ROLE>
with your AWS account ID and the role name created in Step 5. -
Create an ExternalSecret resource to fetch secrets from AWS and create a corresponding Kubernetes secret:
HashiCorp Vault
-
Access the Vault UI at
https://<vault-domain>/
. - Set up a KV secrets engine if not already configured.
-
Create a secret with your Plane configuration values (e.g.,
secrets/rabbitmq_secrets
). For this example, we’re setting up RabbitMQ credentials:
Follow this pattern to manage all the other environment variables in the Vault.Key Value RABBITMQ_DEFAULT_USER plane RABBITMQ_DEFAULT_PASS plane123 -
Create a Kubernetes secret containing your Vault token in your application namespace:
-
Apply the following YAML to create a ClusterSecretStore resource:
Replace
<vault-domain>
with your Vault server address. -
Create an ExternalSecret resource to fetch secrets from Vault and create a corresponding Kubernetes secret: