@pulumi/aws
Version:
A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.
131 lines • 5.7 kB
JavaScript
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
Object.defineProperty(exports, "__esModule", { value: true });
exports.BlockPublicAccessConfiguration = void 0;
const pulumi = require("@pulumi/pulumi");
const utilities = require("../utilities");
/**
* 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
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
*
* const example = new aws.emr.BlockPublicAccessConfiguration("example", {blockPublicSecurityGroupRules: true});
* ```
*
* ### 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.
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
*
* const example = new aws.emr.BlockPublicAccessConfiguration("example", {
* blockPublicSecurityGroupRules: true,
* permittedPublicSecurityGroupRuleRanges: [{
* minRange: 22,
* maxRange: 22,
* }],
* });
* ```
*
* > **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.
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
*
* const example = new aws.emr.BlockPublicAccessConfiguration("example", {
* blockPublicSecurityGroupRules: true,
* permittedPublicSecurityGroupRuleRanges: [
* {
* minRange: 22,
* maxRange: 22,
* },
* {
* minRange: 100,
* maxRange: 101,
* },
* ],
* });
* ```
*
* ### 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.
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
*
* const example = new aws.emr.BlockPublicAccessConfiguration("example", {blockPublicSecurityGroupRules: false});
* ```
*
* ## Import
*
* Using `pulumi import`, import the current EMR Block Public Access Configuration. For example:
*
* ```sh
* $ pulumi import aws:emr/blockPublicAccessConfiguration:BlockPublicAccessConfiguration example current
* ```
*/
class BlockPublicAccessConfiguration extends pulumi.CustomResource {
/**
* Get an existing BlockPublicAccessConfiguration resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param state Any extra arguments used during the lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
static get(name, id, state, opts) {
return new BlockPublicAccessConfiguration(name, state, { ...opts, id: id });
}
/**
* Returns true if the given object is an instance of BlockPublicAccessConfiguration. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj) {
if (obj === undefined || obj === null) {
return false;
}
return obj['__pulumiType'] === BlockPublicAccessConfiguration.__pulumiType;
}
constructor(name, argsOrState, opts) {
let resourceInputs = {};
opts = opts || {};
if (opts.id) {
const state = argsOrState;
resourceInputs["blockPublicSecurityGroupRules"] = state?.blockPublicSecurityGroupRules;
resourceInputs["permittedPublicSecurityGroupRuleRanges"] = state?.permittedPublicSecurityGroupRuleRanges;
resourceInputs["region"] = state?.region;
}
else {
const args = argsOrState;
if (args?.blockPublicSecurityGroupRules === undefined && !opts.urn) {
throw new Error("Missing required property 'blockPublicSecurityGroupRules'");
}
resourceInputs["blockPublicSecurityGroupRules"] = args?.blockPublicSecurityGroupRules;
resourceInputs["permittedPublicSecurityGroupRuleRanges"] = args?.permittedPublicSecurityGroupRuleRanges;
resourceInputs["region"] = args?.region;
}
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
super(BlockPublicAccessConfiguration.__pulumiType, name, resourceInputs, opts);
}
}
exports.BlockPublicAccessConfiguration = BlockPublicAccessConfiguration;
/** @internal */
BlockPublicAccessConfiguration.__pulumiType = 'aws:emr/blockPublicAccessConfiguration:BlockPublicAccessConfiguration';
//# sourceMappingURL=blockPublicAccessConfiguration.js.map
;