aws.secretsmanager.SecretVersion
Explore with Pulumi AI
Provides a resource to manage AWS Secrets Manager secret version including its secret value. To manage secret metadata, see the aws.secretsmanager.Secret
resource.
NOTE: If the
AWSCURRENT
staging label is present on this version during resource deletion, that label cannot be removed and will be skipped to prevent errors when fully deleting the secret. That label will leave this secret version active even after the resource is deleted from this provider unless the secret itself is deleted. Move theAWSCURRENT
staging label before or after deleting this resource from this provider to fully trigger version deprecation if necessary.
Example Usage
Simple String Value
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.secretsmanager.SecretVersion("example", {
secretId: exampleAwsSecretsmanagerSecret.id,
secretString: "example-string-to-protect",
});
import pulumi
import pulumi_aws as aws
example = aws.secretsmanager.SecretVersion("example",
secret_id=example_aws_secretsmanager_secret["id"],
secret_string="example-string-to-protect")
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/secretsmanager"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := secretsmanager.NewSecretVersion(ctx, "example", &secretsmanager.SecretVersionArgs{
SecretId: pulumi.Any(exampleAwsSecretsmanagerSecret.Id),
SecretString: pulumi.String("example-string-to-protect"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.SecretsManager.SecretVersion("example", new()
{
SecretId = exampleAwsSecretsmanagerSecret.Id,
SecretString = "example-string-to-protect",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.secretsmanager.SecretVersion;
import com.pulumi.aws.secretsmanager.SecretVersionArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new SecretVersion("example", SecretVersionArgs.builder()
.secretId(exampleAwsSecretsmanagerSecret.id())
.secretString("example-string-to-protect")
.build());
}
}
resources:
example:
type: aws:secretsmanager:SecretVersion
properties:
secretId: ${exampleAwsSecretsmanagerSecret.id}
secretString: example-string-to-protect
Key-Value Pairs
Secrets Manager also accepts key-value pairs in JSON.
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const config = new pulumi.Config();
const example = config.getObject<Record<string, string>>("example") || {
key1: "value1",
key2: "value2",
};
const exampleSecretVersion = new aws.secretsmanager.SecretVersion("example", {
secretId: exampleAwsSecretsmanagerSecret.id,
secretString: JSON.stringify(example),
});
import pulumi
import json
import pulumi_aws as aws
config = pulumi.Config()
example = config.get_object("example")
if example is None:
example = {
"key1": "value1",
"key2": "value2",
}
example_secret_version = aws.secretsmanager.SecretVersion("example",
secret_id=example_aws_secretsmanager_secret["id"],
secret_string=json.dumps(example))
package main
import (
"encoding/json"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/secretsmanager"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
cfg := config.New(ctx, "")
example := map[string]interface{}{
"key1": "value1",
"key2": "value2",
}
if param := cfg.GetObject("example"); param != nil {
example = param
}
tmpJSON0, err := json.Marshal(example)
if err != nil {
return err
}
json0 := string(tmpJSON0)
_, err = secretsmanager.NewSecretVersion(ctx, "example", &secretsmanager.SecretVersionArgs{
SecretId: pulumi.Any(exampleAwsSecretsmanagerSecret.Id),
SecretString: pulumi.String(json0),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var example = config.GetObject<Dictionary<string, string>>("example") ??
{
{ "key1", "value1" },
{ "key2", "value2" },
};
var exampleSecretVersion = new Aws.SecretsManager.SecretVersion("example", new()
{
SecretId = exampleAwsSecretsmanagerSecret.Id,
SecretString = JsonSerializer.Serialize(example),
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.secretsmanager.SecretVersion;
import com.pulumi.aws.secretsmanager.SecretVersionArgs;
import static com.pulumi.codegen.internal.Serialization.*;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var config = ctx.config();
final var example = config.get("example").orElse(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference));
var exampleSecretVersion = new SecretVersion("exampleSecretVersion", SecretVersionArgs.builder()
.secretId(exampleAwsSecretsmanagerSecret.id())
.secretString(serializeJson(
example))
.build());
}
}
configuration:
# The map here can come from other supported configurations
# like locals, resource attribute, map() built-in, etc.
example:
type: map(string)
default:
key1: value1
key2: value2
resources:
exampleSecretVersion:
type: aws:secretsmanager:SecretVersion
name: example
properties:
secretId: ${exampleAwsSecretsmanagerSecret.id}
secretString:
fn::toJSON: ${example}
Reading key-value pairs from JSON back into a native map
Create SecretVersion Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new SecretVersion(name: string, args: SecretVersionArgs, opts?: CustomResourceOptions);
@overload
def SecretVersion(resource_name: str,
args: SecretVersionArgs,
opts: Optional[ResourceOptions] = None)
@overload
def SecretVersion(resource_name: str,
opts: Optional[ResourceOptions] = None,
secret_id: Optional[str] = None,
secret_binary: Optional[str] = None,
secret_string: Optional[str] = None,
version_stages: Optional[Sequence[str]] = None)
func NewSecretVersion(ctx *Context, name string, args SecretVersionArgs, opts ...ResourceOption) (*SecretVersion, error)
public SecretVersion(string name, SecretVersionArgs args, CustomResourceOptions? opts = null)
public SecretVersion(String name, SecretVersionArgs args)
public SecretVersion(String name, SecretVersionArgs args, CustomResourceOptions options)
type: aws:secretsmanager:SecretVersion
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args SecretVersionArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args SecretVersionArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args SecretVersionArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args SecretVersionArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args SecretVersionArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var secretVersionResource = new Aws.SecretsManager.SecretVersion("secretVersionResource", new()
{
SecretId = "string",
SecretBinary = "string",
SecretString = "string",
VersionStages = new[]
{
"string",
},
});
example, err := secretsmanager.NewSecretVersion(ctx, "secretVersionResource", &secretsmanager.SecretVersionArgs{
SecretId: pulumi.String("string"),
SecretBinary: pulumi.String("string"),
SecretString: pulumi.String("string"),
VersionStages: pulumi.StringArray{
pulumi.String("string"),
},
})
var secretVersionResource = new SecretVersion("secretVersionResource", SecretVersionArgs.builder()
.secretId("string")
.secretBinary("string")
.secretString("string")
.versionStages("string")
.build());
secret_version_resource = aws.secretsmanager.SecretVersion("secretVersionResource",
secret_id="string",
secret_binary="string",
secret_string="string",
version_stages=["string"])
const secretVersionResource = new aws.secretsmanager.SecretVersion("secretVersionResource", {
secretId: "string",
secretBinary: "string",
secretString: "string",
versionStages: ["string"],
});
type: aws:secretsmanager:SecretVersion
properties:
secretBinary: string
secretId: string
secretString: string
versionStages:
- string
SecretVersion Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The SecretVersion resource accepts the following input properties:
- Secret
Id string - Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist.
- Secret
Binary string - Specifies binary data that you want to encrypt and store in this version of the secret. This is required if
secret_string
is not set. Needs to be encoded to base64. - Secret
String string - Specifies text data that you want to encrypt and store in this version of the secret. This is required if
secret_binary
is not set. - Version
Stages List<string> Specifies a list of staging labels that are attached to this version of the secret. A staging label must be unique to a single version of the secret. If you specify a staging label that's already associated with a different version of the same secret then that staging label is automatically removed from the other version and attached to this version. If you do not specify a value, then AWS Secrets Manager automatically moves the staging label
AWSCURRENT
to this new version on creation.NOTE: If
version_stages
is configured, you must include theAWSCURRENT
staging label if this secret version is the only version or if the label is currently present on this secret version, otherwise this provider will show a perpetual difference.
- Secret
Id string - Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist.
- Secret
Binary string - Specifies binary data that you want to encrypt and store in this version of the secret. This is required if
secret_string
is not set. Needs to be encoded to base64. - Secret
String string - Specifies text data that you want to encrypt and store in this version of the secret. This is required if
secret_binary
is not set. - Version
Stages []string Specifies a list of staging labels that are attached to this version of the secret. A staging label must be unique to a single version of the secret. If you specify a staging label that's already associated with a different version of the same secret then that staging label is automatically removed from the other version and attached to this version. If you do not specify a value, then AWS Secrets Manager automatically moves the staging label
AWSCURRENT
to this new version on creation.NOTE: If
version_stages
is configured, you must include theAWSCURRENT
staging label if this secret version is the only version or if the label is currently present on this secret version, otherwise this provider will show a perpetual difference.
- secret
Id String - Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist.
- secret
Binary String - Specifies binary data that you want to encrypt and store in this version of the secret. This is required if
secret_string
is not set. Needs to be encoded to base64. - secret
String String - Specifies text data that you want to encrypt and store in this version of the secret. This is required if
secret_binary
is not set. - version
Stages List<String> Specifies a list of staging labels that are attached to this version of the secret. A staging label must be unique to a single version of the secret. If you specify a staging label that's already associated with a different version of the same secret then that staging label is automatically removed from the other version and attached to this version. If you do not specify a value, then AWS Secrets Manager automatically moves the staging label
AWSCURRENT
to this new version on creation.NOTE: If
version_stages
is configured, you must include theAWSCURRENT
staging label if this secret version is the only version or if the label is currently present on this secret version, otherwise this provider will show a perpetual difference.
- secret
Id string - Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist.
- secret
Binary string - Specifies binary data that you want to encrypt and store in this version of the secret. This is required if
secret_string
is not set. Needs to be encoded to base64. - secret
String string - Specifies text data that you want to encrypt and store in this version of the secret. This is required if
secret_binary
is not set. - version
Stages string[] Specifies a list of staging labels that are attached to this version of the secret. A staging label must be unique to a single version of the secret. If you specify a staging label that's already associated with a different version of the same secret then that staging label is automatically removed from the other version and attached to this version. If you do not specify a value, then AWS Secrets Manager automatically moves the staging label
AWSCURRENT
to this new version on creation.NOTE: If
version_stages
is configured, you must include theAWSCURRENT
staging label if this secret version is the only version or if the label is currently present on this secret version, otherwise this provider will show a perpetual difference.
- secret_
id str - Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist.
- secret_
binary str - Specifies binary data that you want to encrypt and store in this version of the secret. This is required if
secret_string
is not set. Needs to be encoded to base64. - secret_
string str - Specifies text data that you want to encrypt and store in this version of the secret. This is required if
secret_binary
is not set. - version_
stages Sequence[str] Specifies a list of staging labels that are attached to this version of the secret. A staging label must be unique to a single version of the secret. If you specify a staging label that's already associated with a different version of the same secret then that staging label is automatically removed from the other version and attached to this version. If you do not specify a value, then AWS Secrets Manager automatically moves the staging label
AWSCURRENT
to this new version on creation.NOTE: If
version_stages
is configured, you must include theAWSCURRENT
staging label if this secret version is the only version or if the label is currently present on this secret version, otherwise this provider will show a perpetual difference.
- secret
Id String - Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist.
- secret
Binary String - Specifies binary data that you want to encrypt and store in this version of the secret. This is required if
secret_string
is not set. Needs to be encoded to base64. - secret
String String - Specifies text data that you want to encrypt and store in this version of the secret. This is required if
secret_binary
is not set. - version
Stages List<String> Specifies a list of staging labels that are attached to this version of the secret. A staging label must be unique to a single version of the secret. If you specify a staging label that's already associated with a different version of the same secret then that staging label is automatically removed from the other version and attached to this version. If you do not specify a value, then AWS Secrets Manager automatically moves the staging label
AWSCURRENT
to this new version on creation.NOTE: If
version_stages
is configured, you must include theAWSCURRENT
staging label if this secret version is the only version or if the label is currently present on this secret version, otherwise this provider will show a perpetual difference.
Outputs
All input properties are implicitly available as output properties. Additionally, the SecretVersion resource produces the following output properties:
- arn str
- The ARN of the secret.
- id str
- The provider-assigned unique ID for this managed resource.
- version_
id str - The unique identifier of the version of the secret.
Look up Existing SecretVersion Resource
Get an existing SecretVersion resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: SecretVersionState, opts?: CustomResourceOptions): SecretVersion
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
arn: Optional[str] = None,
secret_binary: Optional[str] = None,
secret_id: Optional[str] = None,
secret_string: Optional[str] = None,
version_id: Optional[str] = None,
version_stages: Optional[Sequence[str]] = None) -> SecretVersion
func GetSecretVersion(ctx *Context, name string, id IDInput, state *SecretVersionState, opts ...ResourceOption) (*SecretVersion, error)
public static SecretVersion Get(string name, Input<string> id, SecretVersionState? state, CustomResourceOptions? opts = null)
public static SecretVersion get(String name, Output<String> id, SecretVersionState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Arn string
- The ARN of the secret.
- Secret
Binary string - Specifies binary data that you want to encrypt and store in this version of the secret. This is required if
secret_string
is not set. Needs to be encoded to base64. - Secret
Id string - Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist.
- Secret
String string - Specifies text data that you want to encrypt and store in this version of the secret. This is required if
secret_binary
is not set. - Version
Id string - The unique identifier of the version of the secret.
- Version
Stages List<string> Specifies a list of staging labels that are attached to this version of the secret. A staging label must be unique to a single version of the secret. If you specify a staging label that's already associated with a different version of the same secret then that staging label is automatically removed from the other version and attached to this version. If you do not specify a value, then AWS Secrets Manager automatically moves the staging label
AWSCURRENT
to this new version on creation.NOTE: If
version_stages
is configured, you must include theAWSCURRENT
staging label if this secret version is the only version or if the label is currently present on this secret version, otherwise this provider will show a perpetual difference.
- Arn string
- The ARN of the secret.
- Secret
Binary string - Specifies binary data that you want to encrypt and store in this version of the secret. This is required if
secret_string
is not set. Needs to be encoded to base64. - Secret
Id string - Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist.
- Secret
String string - Specifies text data that you want to encrypt and store in this version of the secret. This is required if
secret_binary
is not set. - Version
Id string - The unique identifier of the version of the secret.
- Version
Stages []string Specifies a list of staging labels that are attached to this version of the secret. A staging label must be unique to a single version of the secret. If you specify a staging label that's already associated with a different version of the same secret then that staging label is automatically removed from the other version and attached to this version. If you do not specify a value, then AWS Secrets Manager automatically moves the staging label
AWSCURRENT
to this new version on creation.NOTE: If
version_stages
is configured, you must include theAWSCURRENT
staging label if this secret version is the only version or if the label is currently present on this secret version, otherwise this provider will show a perpetual difference.
- arn String
- The ARN of the secret.
- secret
Binary String - Specifies binary data that you want to encrypt and store in this version of the secret. This is required if
secret_string
is not set. Needs to be encoded to base64. - secret
Id String - Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist.
- secret
String String - Specifies text data that you want to encrypt and store in this version of the secret. This is required if
secret_binary
is not set. - version
Id String - The unique identifier of the version of the secret.
- version
Stages List<String> Specifies a list of staging labels that are attached to this version of the secret. A staging label must be unique to a single version of the secret. If you specify a staging label that's already associated with a different version of the same secret then that staging label is automatically removed from the other version and attached to this version. If you do not specify a value, then AWS Secrets Manager automatically moves the staging label
AWSCURRENT
to this new version on creation.NOTE: If
version_stages
is configured, you must include theAWSCURRENT
staging label if this secret version is the only version or if the label is currently present on this secret version, otherwise this provider will show a perpetual difference.
- arn string
- The ARN of the secret.
- secret
Binary string - Specifies binary data that you want to encrypt and store in this version of the secret. This is required if
secret_string
is not set. Needs to be encoded to base64. - secret
Id string - Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist.
- secret
String string - Specifies text data that you want to encrypt and store in this version of the secret. This is required if
secret_binary
is not set. - version
Id string - The unique identifier of the version of the secret.
- version
Stages string[] Specifies a list of staging labels that are attached to this version of the secret. A staging label must be unique to a single version of the secret. If you specify a staging label that's already associated with a different version of the same secret then that staging label is automatically removed from the other version and attached to this version. If you do not specify a value, then AWS Secrets Manager automatically moves the staging label
AWSCURRENT
to this new version on creation.NOTE: If
version_stages
is configured, you must include theAWSCURRENT
staging label if this secret version is the only version or if the label is currently present on this secret version, otherwise this provider will show a perpetual difference.
- arn str
- The ARN of the secret.
- secret_
binary str - Specifies binary data that you want to encrypt and store in this version of the secret. This is required if
secret_string
is not set. Needs to be encoded to base64. - secret_
id str - Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist.
- secret_
string str - Specifies text data that you want to encrypt and store in this version of the secret. This is required if
secret_binary
is not set. - version_
id str - The unique identifier of the version of the secret.
- version_
stages Sequence[str] Specifies a list of staging labels that are attached to this version of the secret. A staging label must be unique to a single version of the secret. If you specify a staging label that's already associated with a different version of the same secret then that staging label is automatically removed from the other version and attached to this version. If you do not specify a value, then AWS Secrets Manager automatically moves the staging label
AWSCURRENT
to this new version on creation.NOTE: If
version_stages
is configured, you must include theAWSCURRENT
staging label if this secret version is the only version or if the label is currently present on this secret version, otherwise this provider will show a perpetual difference.
- arn String
- The ARN of the secret.
- secret
Binary String - Specifies binary data that you want to encrypt and store in this version of the secret. This is required if
secret_string
is not set. Needs to be encoded to base64. - secret
Id String - Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist.
- secret
String String - Specifies text data that you want to encrypt and store in this version of the secret. This is required if
secret_binary
is not set. - version
Id String - The unique identifier of the version of the secret.
- version
Stages List<String> Specifies a list of staging labels that are attached to this version of the secret. A staging label must be unique to a single version of the secret. If you specify a staging label that's already associated with a different version of the same secret then that staging label is automatically removed from the other version and attached to this version. If you do not specify a value, then AWS Secrets Manager automatically moves the staging label
AWSCURRENT
to this new version on creation.NOTE: If
version_stages
is configured, you must include theAWSCURRENT
staging label if this secret version is the only version or if the label is currently present on this secret version, otherwise this provider will show a perpetual difference.
Import
Using pulumi import
, import aws_secretsmanager_secret_version
using the secret ID and version ID. For example:
$ pulumi import aws:secretsmanager/secretVersion:SecretVersion example 'arn:aws:secretsmanager:us-east-1:123456789012:secret:example-123456|xxxxx-xxxxxxx-xxxxxxx-xxxxx'
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- AWS Classic pulumi/pulumi-aws
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
aws
Terraform Provider.