Package com.pulumi.aws.dsql
Class ClusterPolicy
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.dsql.ClusterPolicy
-
public class ClusterPolicy extends com.pulumi.resources.CustomResourceResource for managing an Amazon Aurora DSQL Cluster resource-based policy. > Aurora DSQL resource-based policies can grant access to principals within the same AWS account as the cluster. Cross-account access is not currently supported by Aurora DSQL resource-based policies. > Aurora DSQL resource-based policy changes are eventually consistent and typically take effect within one minute. ## Example Usage ### Block Public Internet Access
This policy denies `dsql:DbConnect` and `dsql:DbConnectAdmin` requests from the public internet. It only checks whether the request came from a VPC. To limit access to a specific VPC, use `aws:SourceVpc` with `StringNotEquals`. The calling principal still requires an identity-based IAM policy that allows the required Aurora DSQL actions on the cluster. ### Restrict Access to a Specific VPCpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.dsql.Cluster; import com.pulumi.aws.dsql.ClusterPolicy; import com.pulumi.aws.dsql.ClusterPolicyArgs; 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 Cluster("example"); var exampleClusterPolicy = new ClusterPolicy("exampleClusterPolicy", ClusterPolicyArgs.builder() .identifier(example.identifier()) .policy(serializeJson( jsonObject( jsonProperty("Version", "2012-10-17"), jsonProperty("Statement", jsonArray(jsonObject( jsonProperty("Sid", "DenyAccessFromOutsideVPC"), jsonProperty("Effect", "Deny"), jsonProperty("Principal", jsonObject( jsonProperty("AWS", "*") )), jsonProperty("Action", jsonArray( "dsql:DbConnect", "dsql:DbConnectAdmin" )), jsonProperty("Resource", "*"), jsonProperty("Condition", jsonObject( jsonProperty("Null", jsonObject( jsonProperty("aws:SourceVpc", "true") )) )) ))) ))) .build()); } }
### Restrict Access to an AWS Organizationpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.dsql.Cluster; import com.pulumi.aws.dsql.ClusterPolicy; import com.pulumi.aws.dsql.ClusterPolicyArgs; 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 Cluster("example"); var exampleClusterPolicy = new ClusterPolicy("exampleClusterPolicy", ClusterPolicyArgs.builder() .identifier(example.identifier()) .policy(example.arn().applyValue(_arn -> serializeJson( jsonObject( jsonProperty("Version", "2012-10-17"), jsonProperty("Statement", jsonArray(jsonObject( jsonProperty("Sid", "DenyAccessFromOtherVPCs"), jsonProperty("Effect", "Deny"), jsonProperty("Principal", jsonObject( jsonProperty("AWS", "*") )), jsonProperty("Action", jsonArray( "dsql:DbConnect", "dsql:DbConnectAdmin" )), jsonProperty("Resource", _arn), jsonProperty("Condition", jsonObject( jsonProperty("StringNotEquals", jsonObject( jsonProperty("aws:SourceVpc", exampleAwsVpc.id()) )) )) ))) )))) .build()); } }
For more examples, including specific organizational units and multi-Region cluster policies, see the [Aurora DSQL resource-based policy examples](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/rbp-examples.html). ## Import ### Identity Schema #### Required * `identifier` (String) Identifier of the Aurora DSQL Cluster. #### Optional * `accountId` (String) AWS Account where this resource is managed. * `region` (String) Region where this resource is managed. Using `pulumi import`, import Aurora DSQL Cluster Policies using the cluster `identifier`. For example: ```sh $ pulumi import aws:dsql/clusterPolicy:ClusterPolicy example abcde1f234ghijklmnop5qr6st ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.dsql.Cluster; import com.pulumi.aws.dsql.ClusterPolicy; import com.pulumi.aws.dsql.ClusterPolicyArgs; 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 Cluster("example"); var exampleClusterPolicy = new ClusterPolicy("exampleClusterPolicy", ClusterPolicyArgs.builder() .identifier(example.identifier()) .policy(example.arn().applyValue(_arn -> serializeJson( jsonObject( jsonProperty("Version", "2012-10-17"), jsonProperty("Statement", jsonArray(jsonObject( jsonProperty("Sid", "DenyAccessFromOutsideOrganization"), jsonProperty("Effect", "Deny"), jsonProperty("Principal", jsonObject( jsonProperty("AWS", "*") )), jsonProperty("Action", jsonArray( "dsql:DbConnect", "dsql:DbConnectAdmin" )), jsonProperty("Resource", _arn), jsonProperty("Condition", jsonObject( jsonProperty("StringNotEquals", jsonObject( jsonProperty("aws:PrincipalOrgID", "o-exampleorgid") )) )) ))) )))) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description ClusterPolicy(java.lang.String name)ClusterPolicy(java.lang.String name, ClusterPolicyArgs args)ClusterPolicy(java.lang.String name, ClusterPolicyArgs 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.lang.Boolean>bypassPolicyLockoutSafetyCheck()static ClusterPolicyget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, ClusterPolicyState 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>identifier()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.util.Optional<ClusterPolicyTimeouts>>timeouts()
-
-
-
Constructor Detail
-
ClusterPolicy
public ClusterPolicy(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
ClusterPolicy
public ClusterPolicy(java.lang.String name, ClusterPolicyArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
ClusterPolicy
public ClusterPolicy(java.lang.String name, ClusterPolicyArgs 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
-
bypassPolicyLockoutSafetyCheck
public com.pulumi.core.Output<java.lang.Boolean> bypassPolicyLockoutSafetyCheck()
- Returns:
- Whether to bypass the policy lockout safety check. Setting this value to `true` increases the risk that the cluster becomes unmanageable. Defaults to `false`.
-
identifier
public com.pulumi.core.Output<java.lang.String> identifier()
- Returns:
- Identifier of the Aurora DSQL Cluster.
-
policy
public com.pulumi.core.Output<java.lang.String> policy()
- Returns:
- Resource-based policy document as JSON.
-
policyVersion
public com.pulumi.core.Output<java.lang.String> policyVersion()
- Returns:
- Version of the policy document.
-
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.
-
timeouts
public com.pulumi.core.Output<java.util.Optional<ClusterPolicyTimeouts>> timeouts()
-
get
public static ClusterPolicy get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable ClusterPolicyState 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.
-
-