Skip to content
v2.277.0

Experimental

@aws-cdk/aws-apprunner-alpha is an experimental (alpha) package: its API may change in any release, without a major version bump.

Secret Class ​

A secret environment variable.

Example ​

ts
import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager';
import * as ssm from 'aws-cdk-lib/aws-ssm';

declare const stack: Stack;

const secret = new secretsmanager.Secret(stack, 'Secret');
const parameter = ssm.StringParameter.fromSecureStringParameterAttributes(stack, 'Parameter', {
  parameterName: '/name',
  version: 1,
});

const service = new apprunner.Service(stack, 'Service', {
  source: apprunner.Source.fromEcrPublic({
    imageConfiguration: {
      port: 8000,
      environmentSecrets: {
        SECRET: apprunner.Secret.fromSecretsManager(secret),
        PARAMETER: apprunner.Secret.fromSsmParameter(parameter),
        SECRET_ID: apprunner.Secret.fromSecretsManagerVersion(secret, { versionId: 'version-id' }),
        SECRET_STAGE: apprunner.Secret.fromSecretsManagerVersion(secret, { versionStage: 'version-stage' }),
      },
    },
    imageIdentifier: 'public.ecr.aws/aws-containers/hello-app-runner:latest',
  })
});

service.addSecret('LATER_SECRET', apprunner.Secret.fromSecretsManager(secret, 'field'));
python
import aws_cdk.aws_secretsmanager as secretsmanager
import aws_cdk.aws_ssm as ssm

# stack: Stack


secret = secretsmanager.Secret(stack, "Secret")
parameter = ssm.StringParameter.from_secure_string_parameter_attributes(stack, "Parameter",
    parameter_name="/name",
    version=1
)

service = apprunner.Service(stack, "Service",
    source=apprunner.Source.from_ecr_public(
        image_configuration=apprunner.ImageConfiguration(
            port=8000,
            environment_secrets={
                "SECRET": apprunner.Secret.from_secrets_manager(secret),
                "PARAMETER": apprunner.Secret.from_ssm_parameter(parameter),
                "SECRET_ID": apprunner.Secret.from_secrets_manager_version(secret, version_id="version-id"),
                "SECRET_STAGE": apprunner.Secret.from_secrets_manager_version(secret, version_stage="version-stage")
            }
        ),
        image_identifier="public.ecr.aws/aws-containers/hello-app-runner:latest"
    )
)

service.add_secret("LATER_SECRET", apprunner.Secret.from_secrets_manager(secret, "field"))
java
import software.amazon.awscdk.services.secretsmanager.*;
import software.amazon.awscdk.services.ssm.*;

Stack stack;


Secret secret = new Secret(stack, "Secret");
IStringParameter parameter = StringParameter.fromSecureStringParameterAttributes(stack, "Parameter", SecureStringParameterAttributes.builder()
        .parameterName("/name")
        .version(1)
        .build());

Service service = Service.Builder.create(stack, "Service")
        .source(Source.fromEcrPublic(EcrPublicProps.builder()
                .imageConfiguration(ImageConfiguration.builder()
                        .port(8000)
                        .environmentSecrets(Map.of(
                                "SECRET", Secret.fromSecretsManager(secret),
                                "PARAMETER", Secret.fromSsmParameter(parameter),
                                "SECRET_ID", Secret.fromSecretsManagerVersion(secret, SecretVersionInfo.builder().versionId("version-id").build()),
                                "SECRET_STAGE", Secret.fromSecretsManagerVersion(secret, SecretVersionInfo.builder().versionStage("version-stage").build())))
                        .build())
                .imageIdentifier("public.ecr.aws/aws-containers/hello-app-runner:latest")
                .build()))
        .build();

service.addSecret("LATER_SECRET", Secret.fromSecretsManager(secret, "field"));
csharp
// Install: dotnet add package Amazon.CDK.AWS.AppRunner.Alpha
using Amazon.CDK.AWS.SecretsManager;
using Amazon.CDK.AWS.SSM;

Stack stack;


var secret = new Secret(stack, "Secret");
var parameter = StringParameter.FromSecureStringParameterAttributes(stack, "Parameter", new SecureStringParameterAttributes {
    ParameterName = "/name",
    Version = 1
});

var service = new Service(stack, "Service", new ServiceProps {
    Source = Source.FromEcrPublic(new EcrPublicProps {
        ImageConfiguration = new ImageConfiguration {
            Port = 8000,
            EnvironmentSecrets = new Dictionary<string, Secret> {
                { "SECRET", Secret.FromSecretsManager(secret) },
                { "PARAMETER", Secret.FromSsmParameter(parameter) },
                { "SECRET_ID", Secret.FromSecretsManagerVersion(secret, new SecretVersionInfo { VersionId = "version-id" }) },
                { "SECRET_STAGE", Secret.FromSecretsManagerVersion(secret, new SecretVersionInfo { VersionStage = "version-stage" }) }
            }
        },
        ImageIdentifier = "public.ecr.aws/aws-containers/hello-app-runner:latest"
    })
});

service.AddSecret("LATER_SECRET", Secret.FromSecretsManager(secret, "field"));
go
// Install: go get github.com/aws/aws-cdk-go/awscdkapprunneralpha/v2
import secretsmanager "github.com/aws/aws-cdk-go/awscdk"
import ssm "github.com/aws/aws-cdk-go/awscdk"

var stack Stack


secret := secretsmanager.NewSecret(stack, jsii.String("Secret"))
parameter := ssm.StringParameter_FromSecureStringParameterAttributes(stack, jsii.String("Parameter"), &SecureStringParameterAttributes{
	ParameterName: jsii.String("/name"),
	Version: jsii.Number(1),
})

service := apprunner.NewService(stack, jsii.String("Service"), &ServiceProps{
	Source: apprunner.Source_FromEcrPublic(&EcrPublicProps{
		ImageConfiguration: &ImageConfiguration{
			Port: jsii.Number(8000),
			EnvironmentSecrets: map[string]Secret{
				"SECRET": apprunner.Secret_fromSecretsManager(secret),
				"PARAMETER": apprunner.Secret_fromSsmParameter(parameter),
				"SECRET_ID": apprunner.Secret_fromSecretsManagerVersion(secret, &SecretVersionInfo{
					"versionId": jsii.String("version-id"),
				}),
				"SECRET_STAGE": apprunner.Secret_fromSecretsManagerVersion(secret, &SecretVersionInfo{
					"versionStage": jsii.String("version-stage"),
				}),
			},
		},
		ImageIdentifier: jsii.String("public.ecr.aws/aws-containers/hello-app-runner:latest"),
	}),
})

service.AddSecret(jsii.String("LATER_SECRET"), apprunner.Secret_FromSecretsManager(secret, jsii.String("field")))

Initializer ​

ts
new Secret()
python
Secret()
java
new Secret()
csharp
new Secret()
go
NewSecret()

Properties ​

arnstringarnstrarnStringArnstringArn*string#
The ARN of the secret.
hasFieldmay be undefinedbooleanhas_fieldmay be undefinedboolhasFieldmay be undefinedBooleanHasFieldmay be undefinedboolHasFieldmay be undefined*bool#
Whether this secret uses a specific JSON field.

Methods ​

fromSecretsManager(secret: ISecret, field?: string): Secret // chainable@staticmethod def from_secrets_manager(secret: ISecret, field: typing.Optional[str] = None) -> Secretpublic static Secret fromSecretsManager(ISecret secret, String field)public static Secret FromSecretsManager(ISecret secret, string? field = null)func FromSecretsManager(Secret ISecret, Field *string) Secretstatic#
Creates a environment variable value from a secret stored in AWS Secrets Manager.
2 parameters

Parameters

  • secretsecretsecretsecretSecret — the secret stored in AWS Secrets Manager.
  • fieldfieldfieldfieldField — the name of the field with the value that you want to set as the environment variable value.
fromSecretsManagerVersion(secret: ISecret, versionInfo: SecretVersionInfo, field?: string): Secret // chainable@staticmethod def from_secrets_manager_version(secret: ISecret, version_info: SecretVersionInfo, field: typing.Optional[str] = None) -> Secretpublic static Secret fromSecretsManagerVersion(ISecret secret, SecretVersionInfo versionInfo, String field)public static Secret FromSecretsManagerVersion(ISecret secret, SecretVersionInfo versionInfo, string? field = null)func FromSecretsManagerVersion(Secret ISecret, VersionInfo SecretVersionInfo, Field *string) Secretstatic#
Creates a environment variable value from a secret stored in AWS Secrets Manager.
3 parameters

Parameters

  • secretsecretsecretsecretSecret — the secret stored in AWS Secrets Manager.
  • versionInfoversion_infoversionInfoversionInfoVersionInfo — the version information to reference the secret.
  • fieldfieldfieldfieldField — the name of the field with the value that you want to set as the environment variable value.
fromSsmParameter(parameter: IParameter): Secret // chainable@staticmethod def from_ssm_parameter(parameter: IParameter) -> Secretpublic static Secret fromSsmParameter(IParameter parameter)public static Secret FromSsmParameter(IParameter parameter)func FromSsmParameter(Parameter IParameter) Secretstatic#
Creates an environment variable value from a parameter stored in AWS Systems Manager Parameter Store.
grantRead(grantee: IGrantable): Grantdef grant_read(self, grantee: IGrantable) -> Grantpublic Grant grantRead(IGrantable grantee)public Grant GrantRead(IGrantable grantee)func GrantRead(Grantee IGrantable) Grant#
Grants reading the secret to a principal.

[disable-awslint:no-grants]