Identity Policy Args
data class IdentityPolicyArgs(val identity: Output<String>? = null, val name: Output<String>? = null, val policy: Output<String>? = null) : ConvertibleToJava<IdentityPolicyArgs>
Manages a SES Identity Policy. More information about SES Sending Authorization Policies can be found in the SES Developer Guide.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const exampleDomainIdentity = new aws.ses.DomainIdentity("example", {domain: "example.com"});
const example = aws.iam.getPolicyDocumentOutput({
statements: [{
actions: [
"SES:SendEmail",
"SES:SendRawEmail",
],
resources: [exampleDomainIdentity.arn],
principals: [{
identifiers: ["*"],
type: "AWS",
}],
}],
});
const exampleIdentityPolicy = new aws.ses.IdentityPolicy("example", {
identity: exampleDomainIdentity.arn,
name: "example",
policy: example.apply(example => example.json),
});
Content copied to clipboard
import pulumi
import pulumi_aws as aws
example_domain_identity = aws.ses.DomainIdentity("example", domain="example.com")
example = aws.iam.get_policy_document_output(statements=[{
"actions": [
"SES:SendEmail",
"SES:SendRawEmail",
],
"resources": [example_domain_identity.arn],
"principals": [{
"identifiers": ["*"],
"type": "AWS",
}],
}])
example_identity_policy = aws.ses.IdentityPolicy("example",
identity=example_domain_identity.arn,
name="example",
policy=example.json)
Content copied to clipboard
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var exampleDomainIdentity = new Aws.Ses.DomainIdentity("example", new()
{
Domain = "example.com",
});
var example = Aws.Iam.GetPolicyDocument.Invoke(new()
{
Statements = new[]
{
new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
{
Actions = new[]
{
"SES:SendEmail",
"SES:SendRawEmail",
},
Resources = new[]
{
exampleDomainIdentity.Arn,
},
Principals = new[]
{
new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs
{
Identifiers = new[]
{
"*",
},
Type = "AWS",
},
},
},
},
});
var exampleIdentityPolicy = new Aws.Ses.IdentityPolicy("example", new()
{
Identity = exampleDomainIdentity.Arn,
Name = "example",
Policy = example.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
});
});
Content copied to clipboard
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ses"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
exampleDomainIdentity, err := ses.NewDomainIdentity(ctx, "example", &ses.DomainIdentityArgs{
Domain: pulumi.String("example.com"),
})
if err != nil {
return err
}
example := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{
Statements: iam.GetPolicyDocumentStatementArray{
&iam.GetPolicyDocumentStatementArgs{
Actions: pulumi.StringArray{
pulumi.String("SES:SendEmail"),
pulumi.String("SES:SendRawEmail"),
},
Resources: pulumi.StringArray{
exampleDomainIdentity.Arn,
},
Principals: iam.GetPolicyDocumentStatementPrincipalArray{
&iam.GetPolicyDocumentStatementPrincipalArgs{
Identifiers: pulumi.StringArray{
pulumi.String("*"),
},
Type: pulumi.String("AWS"),
},
},
},
},
}, nil)
_, err = ses.NewIdentityPolicy(ctx, "example", &ses.IdentityPolicyArgs{
Identity: exampleDomainIdentity.Arn,
Name: pulumi.String("example"),
Policy: pulumi.String(example.ApplyT(func(example iam.GetPolicyDocumentResult) (*string, error) {
return &example.Json, nil
}).(pulumi.StringPtrOutput)),
})
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.ses.DomainIdentity;
import com.pulumi.aws.ses.DomainIdentityArgs;
import com.pulumi.aws.iam.IamFunctions;
import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
import com.pulumi.aws.ses.IdentityPolicy;
import com.pulumi.aws.ses.IdentityPolicyArgs;
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 exampleDomainIdentity = new DomainIdentity("exampleDomainIdentity", DomainIdentityArgs.builder()
.domain("example.com")
.build());
final var example = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
.statements(GetPolicyDocumentStatementArgs.builder()
.actions(
"SES:SendEmail",
"SES:SendRawEmail")
.resources(exampleDomainIdentity.arn())
.principals(GetPolicyDocumentStatementPrincipalArgs.builder()
.identifiers("*")
.type("AWS")
.build())
.build())
.build());
var exampleIdentityPolicy = new IdentityPolicy("exampleIdentityPolicy", IdentityPolicyArgs.builder()
.identity(exampleDomainIdentity.arn())
.name("example")
.policy(example.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult).applyValue(example -> example.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json())))
.build());
}
}
Content copied to clipboard
resources:
exampleDomainIdentity:
type: aws:ses:DomainIdentity
name: example
properties:
domain: example.com
exampleIdentityPolicy:
type: aws:ses:IdentityPolicy
name: example
properties:
identity: ${exampleDomainIdentity.arn}
name: example
policy: ${example.json}
variables:
example:
fn::invoke:
function: aws:iam:getPolicyDocument
arguments:
statements:
- actions:
- SES:SendEmail
- SES:SendRawEmail
resources:
- ${exampleDomainIdentity.arn}
principals:
- identifiers:
- '*'
type: AWS
Content copied to clipboard
Import
Using pulumi import
, import SES Identity Policies using the identity and policy name, separated by a pipe character (|
). For example:
$ pulumi import aws:ses/identityPolicy:IdentityPolicy example 'example.com|example'
Content copied to clipboard