Snapshot Copy Grant
Creates a snapshot copy grant that allows AWS Redshift to encrypt copied snapshots with a customer master key from AWS KMS in a destination region. Note that the grant must exist in the destination region, and not in the region of the cluster.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const test = new aws.redshift.SnapshotCopyGrant("test", {snapshotCopyGrantName: "my-grant"});
const testCluster = new aws.redshift.Cluster("test", {snapshotCopy: {
destinationRegion: "us-east-2",
grantName: test.snapshotCopyGrantName,
}});
Content copied to clipboard
import pulumi
import pulumi_aws as aws
test = aws.redshift.SnapshotCopyGrant("test", snapshot_copy_grant_name="my-grant")
test_cluster = aws.redshift.Cluster("test", snapshot_copy={
"destination_region": "us-east-2",
"grant_name": test.snapshot_copy_grant_name,
})
Content copied to clipboard
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var test = new Aws.RedShift.SnapshotCopyGrant("test", new()
{
SnapshotCopyGrantName = "my-grant",
});
var testCluster = new Aws.RedShift.Cluster("test", new()
{
SnapshotCopy = new Aws.RedShift.Inputs.ClusterSnapshotCopyArgs
{
DestinationRegion = "us-east-2",
GrantName = test.SnapshotCopyGrantName,
},
});
});
Content copied to clipboard
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/redshift"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
test, err := redshift.NewSnapshotCopyGrant(ctx, "test", &redshift.SnapshotCopyGrantArgs{
SnapshotCopyGrantName: pulumi.String("my-grant"),
})
if err != nil {
return err
}
_, err = redshift.NewCluster(ctx, "test", &redshift.ClusterArgs{
SnapshotCopy: &redshift.ClusterSnapshotCopyArgs{
DestinationRegion: pulumi.String("us-east-2"),
GrantName: test.SnapshotCopyGrantName,
},
})
if err != nil {
return err
}
return nil
})
}
Content copied to clipboard
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.redshift.SnapshotCopyGrant;
import com.pulumi.aws.redshift.SnapshotCopyGrantArgs;
import com.pulumi.aws.redshift.Cluster;
import com.pulumi.aws.redshift.ClusterArgs;
import com.pulumi.aws.redshift.inputs.ClusterSnapshotCopyArgs;
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 test = new SnapshotCopyGrant("test", SnapshotCopyGrantArgs.builder()
.snapshotCopyGrantName("my-grant")
.build());
var testCluster = new Cluster("testCluster", ClusterArgs.builder()
.snapshotCopy(ClusterSnapshotCopyArgs.builder()
.destinationRegion("us-east-2")
.grantName(test.snapshotCopyGrantName())
.build())
.build());
}
}
Content copied to clipboard
resources:
test:
type: aws:redshift:SnapshotCopyGrant
properties:
snapshotCopyGrantName: my-grant
testCluster:
type: aws:redshift:Cluster
name: test
properties:
snapshotCopy:
destinationRegion: us-east-2
grantName: ${test.snapshotCopyGrantName}
Content copied to clipboard
Import
Using pulumi import
, import Redshift Snapshot Copy Grants by name. For example:
$ pulumi import aws:redshift/snapshotCopyGrant:SnapshotCopyGrant test my-grant
Content copied to clipboard