The plugin needs to be configured with a secret config in order to connect to AWS Secrets Manager.
- GoCD server version
v19.6.0or above - AWS credentials to access secrets from AWS Secrets Manager
- Copy the file
build/libs/gocd-aws-based-secrets-plugin-VERSION.jarto the GoCD server under${GO_SERVER_DIR}/plugins/externaland restart the server. - The
GO_SERVER_DIRis usually/var/lib/go-serveron Linux andC:\Program Files\Go Serveron Windows.
-
Login to your GoCD server.
-
Navigate to Admin > Secret Management.
-
Click on ADD button.
-
Configure the mandatory fields.
Field Required Description Endpoint true The AWS service endpoint for the plugin to connect. AccessKey false The access key as a part of AWS credentials. See note on credentials below. SecretAccessKey false The secret access key as a part of AWS credentials. See note on credentials below. AssumeRoleArn false ARN of an IAM role to assume (via AWS STS) using the resolved credentials. See note below. Region true Region in which AWS secrets manager is hosted. SecretName true The name of the secret to be utilized. SecretCacheTTL false The secrets cache TTL in milliseconds, defaults to 30 minutes. NOTE:
AccessKeyandSecretAccessKeyare optional. When left blank, the plugin auto-detects credentials from the standard AWS provider chain, in order: environment variables (AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY), Java system properties (aws.accessKeyId/aws.secretAccessKey), and finally an EC2/ECS/EKS instance (or task) profile delivered via the instance metadata service (IMDS). When the GoCD server runs on AWS, granting it an IAM instance/task role and leaving these fields blank is recommended over configuring long-lived static credentials here. Providing anAccessKeyandSecretAccessKeydisables auto-detection and uses those static credentials instead.NOTE: The plugin caches secrets for a duration configured using the SecretCacheTTL. Currently GoCD does not provide a way to invalidate the cache. To invalidate the cache, change the SecretCacheTTL and save the SecretConfig.
NOTE: If
AssumeRoleArnis set, the resolved or supplied credentials are used only tosts:AssumeRolethat role, and the temporary credentials of the assumed role are used for all Secrets Manager API calls - so the required permissions should be granted to the assumed role rather than to the original credentials. When assuming the role, the plugin always supplies an external ID ofgocd:server-id:<server-id>, where<server-id>is the unique ID GoCD generated for this server (theserverIdattribute in Admin > Config XML). The role's trust policy can use aStringEqualscondition onsts:ExternalIdto ensure only this GoCD server can assume the role. -
Configure the
ruleswhere this secrets can be used.<rules>tag defines where this secretConfig is allowed/denied to be referred. For more details about rules and examples refer the GoCD Secret Management documentation -
Save.
- See Define Secret Params for more information