Class BlockPublicAccessConfiguration


  • public class BlockPublicAccessConfiguration
    extends com.pulumi.resources.CustomResource
    Resource for managing an AWS EMR block public access configuration. This region level security configuration restricts the launch of EMR clusters that have associated security groups permitting public access on unspecified ports. See the [EMR Block Public Access Configuration](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-block-public-access.html) documentation for further information. ## Example Usage ### Basic Usage
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.emr.BlockPublicAccessConfiguration;
     import com.pulumi.aws.emr.BlockPublicAccessConfigurationArgs;
     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 BlockPublicAccessConfiguration("example", BlockPublicAccessConfigurationArgs.builder()
                 .blockPublicSecurityGroupRules(true)
                 .build());
     
         }
     }
     
     
    ### Default Configuration By default, each AWS region is equipped with a block public access configuration that prevents EMR clusters from being launched if they have security group rules permitting public access on any port except for port 22. The default configuration can be managed using this resource.
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.emr.BlockPublicAccessConfiguration;
     import com.pulumi.aws.emr.BlockPublicAccessConfigurationArgs;
     import com.pulumi.aws.emr.inputs.BlockPublicAccessConfigurationPermittedPublicSecurityGroupRuleRangeArgs;
     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 BlockPublicAccessConfiguration("example", BlockPublicAccessConfigurationArgs.builder()
                 .permittedPublicSecurityGroupRuleRanges(BlockPublicAccessConfigurationPermittedPublicSecurityGroupRuleRangeArgs.builder()
                     .minRange(22)
                     .maxRange(22)
                     .build())
                 .blockPublicSecurityGroupRules(true)
                 .build());
     
         }
     }
     
     
    > **NOTE:** If an `aws.emr.BlockPublicAccessConfiguration` resource is destroyed, the configuration will reset to this default configuration. ### Multiple Permitted Public Security Group Rule Ranges The resource permits specification of multiple `permittedPublicSecurityGroupRuleRange` blocks.
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.emr.BlockPublicAccessConfiguration;
     import com.pulumi.aws.emr.BlockPublicAccessConfigurationArgs;
     import com.pulumi.aws.emr.inputs.BlockPublicAccessConfigurationPermittedPublicSecurityGroupRuleRangeArgs;
     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 BlockPublicAccessConfiguration("example", BlockPublicAccessConfigurationArgs.builder()
                 .permittedPublicSecurityGroupRuleRanges(            
                     BlockPublicAccessConfigurationPermittedPublicSecurityGroupRuleRangeArgs.builder()
                         .minRange(22)
                         .maxRange(22)
                         .build(),
                     BlockPublicAccessConfigurationPermittedPublicSecurityGroupRuleRangeArgs.builder()
                         .minRange(100)
                         .maxRange(101)
                         .build())
                 .blockPublicSecurityGroupRules(true)
                 .build());
     
         }
     }
     
     
    ### Disabling Block Public Access To permit EMR clusters to be launched in the configured region regardless of associated security group rules, the Block Public Access feature can be disabled using this resource.
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.emr.BlockPublicAccessConfiguration;
     import com.pulumi.aws.emr.BlockPublicAccessConfigurationArgs;
     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 BlockPublicAccessConfiguration("example", BlockPublicAccessConfigurationArgs.builder()
                 .blockPublicSecurityGroupRules(false)
                 .build());
     
         }
     }
     
     
    ## Import Using `pulumi import`, import the current EMR Block Public Access Configuration. For example: ```sh $ pulumi import aws:emr/blockPublicAccessConfiguration:BlockPublicAccessConfiguration example current ```
    • Constructor Detail

      • BlockPublicAccessConfiguration

        public BlockPublicAccessConfiguration​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • BlockPublicAccessConfiguration

        public BlockPublicAccessConfiguration​(java.lang.String name,
                                              BlockPublicAccessConfigurationArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • BlockPublicAccessConfiguration

        public BlockPublicAccessConfiguration​(java.lang.String name,
                                              BlockPublicAccessConfigurationArgs 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

      • blockPublicSecurityGroupRules

        public com.pulumi.core.Output<java.lang.Boolean> blockPublicSecurityGroupRules()
        Returns:
        Enable or disable EMR Block Public Access. The following arguments are optional:
      • permittedPublicSecurityGroupRuleRanges

        public com.pulumi.core.Output<java.util.Optional<java.util.List<BlockPublicAccessConfigurationPermittedPublicSecurityGroupRuleRange>>> permittedPublicSecurityGroupRuleRanges()
        Returns:
        Configuration block for defining permitted public security group rule port ranges. Can be defined multiple times per resource. Only valid if `blockPublicSecurityGroupRules` is set to `true`.
      • 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.
      • get

        public static BlockPublicAccessConfiguration get​(java.lang.String name,
                                                         com.pulumi.core.Output<java.lang.String> id,
                                                         @Nullable
                                                         BlockPublicAccessConfigurationState 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.