Package com.pulumi.aws.opensearch
Class ServerlessSecurityPolicy
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.opensearch.ServerlessSecurityPolicy
-
public class ServerlessSecurityPolicy extends com.pulumi.resources.CustomResourceResource for managing an AWS OpenSearch Serverless Security Policy. See AWS documentation for [encryption policies](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-encryption.html#serverless-encryption-policies) and [network policies](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-network.html#serverless-network-policies). ## Example Usage ### Encryption Security Policy ### Applies to a single collection
### Applies to multiple collectionspackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.opensearch.ServerlessSecurityPolicy; import com.pulumi.aws.opensearch.ServerlessSecurityPolicyArgs; import static com.pulumi.codegen.internal.Serialization.*; import java.util.ArrayList; import java.util.Arrays; 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 ServerlessSecurityPolicy("example", ServerlessSecurityPolicyArgs.builder() .name("example") .type("encryption") .description("encryption security policy for example-collection") .policy(serializeJson( jsonObject( jsonProperty("Rules", jsonArray(jsonObject( jsonProperty("Resource", jsonArray("collection/example-collection")), jsonProperty("ResourceType", "collection") ))), jsonProperty("AWSOwnedKey", true) ))) .build()); } }
### Using a customer managed keypackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.opensearch.ServerlessSecurityPolicy; import com.pulumi.aws.opensearch.ServerlessSecurityPolicyArgs; import static com.pulumi.codegen.internal.Serialization.*; import java.util.ArrayList; import java.util.Arrays; 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 ServerlessSecurityPolicy("example", ServerlessSecurityPolicyArgs.builder() .name("example") .type("encryption") .description("encryption security policy for collections that begin with \"example\"") .policy(serializeJson( jsonObject( jsonProperty("Rules", jsonArray(jsonObject( jsonProperty("Resource", jsonArray("collection/example*")), jsonProperty("ResourceType", "collection") ))), jsonProperty("AWSOwnedKey", true) ))) .build()); } }
### Network Security Policy ### Allow public access to the collection endpoint and the Dashboards endpointpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.opensearch.ServerlessSecurityPolicy; import com.pulumi.aws.opensearch.ServerlessSecurityPolicyArgs; import static com.pulumi.codegen.internal.Serialization.*; import java.util.ArrayList; import java.util.Arrays; 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 ServerlessSecurityPolicy("example", ServerlessSecurityPolicyArgs.builder() .name("example") .type("encryption") .description("encryption security policy using customer KMS key") .policy(serializeJson( jsonObject( jsonProperty("Rules", jsonArray(jsonObject( jsonProperty("Resource", jsonArray("collection/customer-managed-key-collection")), jsonProperty("ResourceType", "collection") ))), jsonProperty("AWSOwnedKey", false), jsonProperty("KmsARN", "arn:aws:kms:us-east-1:123456789012:key/93fd6da4-a317-4c17-bfe9-382b5d988b36") ))) .build()); } }
### Allow VPC access to the collection endpoint and the Dashboards endpointpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.opensearch.ServerlessSecurityPolicy; import com.pulumi.aws.opensearch.ServerlessSecurityPolicyArgs; import static com.pulumi.codegen.internal.Serialization.*; import java.util.ArrayList; import java.util.Arrays; 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 ServerlessSecurityPolicy("example", ServerlessSecurityPolicyArgs.builder() .name("example") .type("network") .description("Public access") .policy(serializeJson( jsonArray(jsonObject( jsonProperty("Description", "Public access to collection and Dashboards endpoint for example collection"), jsonProperty("Rules", jsonArray( jsonObject( jsonProperty("ResourceType", "collection"), jsonProperty("Resource", jsonArray("collection/example-collection")) ), jsonObject( jsonProperty("ResourceType", "dashboard"), jsonProperty("Resource", jsonArray("collection/example-collection")) ) )), jsonProperty("AllowFromPublic", true) )))) .build()); } }
### Mixed access for different collectionspackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.opensearch.ServerlessSecurityPolicy; import com.pulumi.aws.opensearch.ServerlessSecurityPolicyArgs; import static com.pulumi.codegen.internal.Serialization.*; import java.util.ArrayList; import java.util.Arrays; 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 ServerlessSecurityPolicy("example", ServerlessSecurityPolicyArgs.builder() .name("example") .type("network") .description("VPC access") .policy(serializeJson( jsonArray(jsonObject( jsonProperty("Description", "VPC access to collection and Dashboards endpoint for example collection"), jsonProperty("Rules", jsonArray( jsonObject( jsonProperty("ResourceType", "collection"), jsonProperty("Resource", jsonArray("collection/example-collection")) ), jsonObject( jsonProperty("ResourceType", "dashboard"), jsonProperty("Resource", jsonArray("collection/example-collection")) ) )), jsonProperty("AllowFromPublic", false), jsonProperty("SourceVPCEs", jsonArray("vpce-050f79086ee71ac05")) )))) .build()); } }
## Import ### Identity Schema #### Required * `name` (String) Name of the policy. * `type` (String) Type of security policy. #### Optional * `accountId` (String) AWS Account where this resource is managed. * `region` (String) Region where this resource is managed. Using `pulumi import`, import OpenSearchServerless Security Policy using the `name` and `type` arguments separated by a slash (`/`). For example: ```sh $ pulumi import aws:opensearch/serverlessSecurityPolicy:ServerlessSecurityPolicy example example/encryption ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.opensearch.ServerlessSecurityPolicy; import com.pulumi.aws.opensearch.ServerlessSecurityPolicyArgs; import static com.pulumi.codegen.internal.Serialization.*; import java.util.ArrayList; import java.util.Arrays; 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 ServerlessSecurityPolicy("example", ServerlessSecurityPolicyArgs.builder() .name("example") .type("network") .description("Mixed access for marketing and sales") .policy(serializeJson( jsonArray( jsonObject( jsonProperty("Description", "Marketing access"), jsonProperty("Rules", jsonArray( jsonObject( jsonProperty("ResourceType", "collection"), jsonProperty("Resource", jsonArray("collection/marketing*")) ), jsonObject( jsonProperty("ResourceType", "dashboard"), jsonProperty("Resource", jsonArray("collection/marketing*")) ) )), jsonProperty("AllowFromPublic", false), jsonProperty("SourceVPCEs", jsonArray("vpce-050f79086ee71ac05")) ), jsonObject( jsonProperty("Description", "Sales access"), jsonProperty("Rules", jsonArray(jsonObject( jsonProperty("ResourceType", "collection"), jsonProperty("Resource", jsonArray("collection/finance")) ))), jsonProperty("AllowFromPublic", true) ) ))) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description ServerlessSecurityPolicy(java.lang.String name)ServerlessSecurityPolicy(java.lang.String name, ServerlessSecurityPolicyArgs args)ServerlessSecurityPolicy(java.lang.String name, ServerlessSecurityPolicyArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.util.Optional<java.lang.String>>description()static ServerlessSecurityPolicyget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, ServerlessSecurityPolicyState state, com.pulumi.resources.CustomResourceOptions options)Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.lang.String>name()com.pulumi.core.Output<java.lang.String>policy()com.pulumi.core.Output<java.lang.String>policyVersion()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.lang.String>type()
-
-
-
Constructor Detail
-
ServerlessSecurityPolicy
public ServerlessSecurityPolicy(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
ServerlessSecurityPolicy
public ServerlessSecurityPolicy(java.lang.String name, ServerlessSecurityPolicyArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
ServerlessSecurityPolicy
public ServerlessSecurityPolicy(java.lang.String name, ServerlessSecurityPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
description
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> description()
- Returns:
- Description of the policy. Typically used to store information about the permissions defined in the policy.
-
name
public com.pulumi.core.Output<java.lang.String> name()
- Returns:
- Name of the policy.
-
policy
public com.pulumi.core.Output<java.lang.String> policy()
- Returns:
- JSON policy document to use as the content for the new policy
-
policyVersion
public com.pulumi.core.Output<java.lang.String> policyVersion()
- Returns:
- Version of the policy.
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
-
type
public com.pulumi.core.Output<java.lang.String> type()
- Returns:
- Type of security policy. One of `encryption` or `network`. The following arguments are optional:
-
get
public static ServerlessSecurityPolicy get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable ServerlessSecurityPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-