Want to learn about running containers in Lambda? Join our free hands-on workshop. Register Now

ProjectIpWhitelist

mongodbatlas.ProjectIpWhitelist provides an IP Whitelist entry resource. The whitelist grants access from IPs, CIDRs or AWS Security Groups (if VPC Peering is enabled) to clusters within the Project.

NOTE: Groups and projects are synonymous terms. You may find groupId in the official documentation.

IMPORTANT: When you remove an entry from the whitelist, existing connections from the removed address(es) may remain open for a variable amount of time. How much time passes before Atlas closes the connection depends on several factors, including how the connection was established, the particular behavior of the application or driver using the address, and the connection protocol (e.g., TCP or UDP). This is particularly important to consider when changing an existing IP address or CIDR block as they cannot be updated via the Provider (comments can however), hence a change will force the destruction and recreation of entries.

Example Usage

Using CIDR Block

using Pulumi;
using Mongodbatlas = Pulumi.Mongodbatlas;

class MyStack : Stack
{
    public MyStack()
    {
        var test = new Mongodbatlas.ProjectIpWhitelist("test", new Mongodbatlas.ProjectIpWhitelistArgs
        {
            CidrBlock = "1.2.3.4/32",
            Comment = "cidr block for tf acc testing",
            ProjectId = "<PROJECT-ID>",
        });
    }

}
package main

import (
    "github.com/pulumi/pulumi-mongodbatlas/sdk/go/mongodbatlas"
    "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)

func main() {
    pulumi.Run(func(ctx *pulumi.Context) error {
        _, err := mongodbatlas.NewProjectIpWhitelist(ctx, "test", &mongodbatlas.ProjectIpWhitelistArgs{
            CidrBlock: pulumi.String("1.2.3.4/32"),
            Comment:   pulumi.String("cidr block for tf acc testing"),
            ProjectId: pulumi.String("<PROJECT-ID>"),
        })
        if err != nil {
            return err
        }
        return nil
    })
}
import pulumi
import pulumi_mongodbatlas as mongodbatlas

test = mongodbatlas.ProjectIpWhitelist("test",
    cidr_block="1.2.3.4/32",
    comment="cidr block for tf acc testing",
    project_id="<PROJECT-ID>")
import * as pulumi from "@pulumi/pulumi";
import * as mongodbatlas from "@pulumi/mongodbatlas";

const test = new mongodbatlas.ProjectIpWhitelist("test", {
    cidrBlock: "1.2.3.4/32",
    comment: "cidr block for tf acc testing",
    projectId: "<PROJECT-ID>",
});

Using IP Address

using Pulumi;
using Mongodbatlas = Pulumi.Mongodbatlas;

class MyStack : Stack
{
    public MyStack()
    {
        var test = new Mongodbatlas.ProjectIpWhitelist("test", new Mongodbatlas.ProjectIpWhitelistArgs
        {
            Comment = "ip address for tf acc testing",
            IpAddress = "2.3.4.5",
            ProjectId = "<PROJECT-ID>",
        });
    }

}
package main

import (
    "github.com/pulumi/pulumi-mongodbatlas/sdk/go/mongodbatlas"
    "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)

func main() {
    pulumi.Run(func(ctx *pulumi.Context) error {
        _, err := mongodbatlas.NewProjectIpWhitelist(ctx, "test", &mongodbatlas.ProjectIpWhitelistArgs{
            Comment:   pulumi.String("ip address for tf acc testing"),
            IpAddress: pulumi.String("2.3.4.5"),
            ProjectId: pulumi.String("<PROJECT-ID>"),
        })
        if err != nil {
            return err
        }
        return nil
    })
}
import pulumi
import pulumi_mongodbatlas as mongodbatlas

test = mongodbatlas.ProjectIpWhitelist("test",
    comment="ip address for tf acc testing",
    ip_address="2.3.4.5",
    project_id="<PROJECT-ID>")
import * as pulumi from "@pulumi/pulumi";
import * as mongodbatlas from "@pulumi/mongodbatlas";

const test = new mongodbatlas.ProjectIpWhitelist("test", {
    comment: "ip address for tf acc testing",
    ipAddress: "2.3.4.5",
    projectId: "<PROJECT-ID>",
});

Using an AWS Security Group

using Pulumi;
using Mongodbatlas = Pulumi.Mongodbatlas;

class MyStack : Stack
{
    public MyStack()
    {
        var testNetworkContainer = new Mongodbatlas.NetworkContainer("testNetworkContainer", new Mongodbatlas.NetworkContainerArgs
        {
            ProjectId = "<PROJECT-ID>",
            AtlasCidrBlock = "192.168.208.0/21",
            ProviderName = "AWS",
            RegionName = "US_EAST_1",
        });
        var testNetworkPeering = new Mongodbatlas.NetworkPeering("testNetworkPeering", new Mongodbatlas.NetworkPeeringArgs
        {
            ProjectId = "<PROJECT-ID>",
            ContainerId = testNetworkContainer.ContainerId,
            AccepterRegionName = "us-east-1",
            ProviderName = "AWS",
            RouteTableCidrBlock = "172.31.0.0/16",
            VpcId = "vpc-0d93d6f69f1578bd8",
            AwsAccountId = "232589400519",
        });
        var testProjectIpWhitelist = new Mongodbatlas.ProjectIpWhitelist("testProjectIpWhitelist", new Mongodbatlas.ProjectIpWhitelistArgs
        {
            ProjectId = "<PROJECT-ID>",
            AwsSecurityGroup = "sg-0026348ec11780bd1",
            Comment = "TestAcc for awsSecurityGroup",
        }, new CustomResourceOptions
        {
            DependsOn = 
            {
                "mongodbatlas_network_peering.test",
            },
        });
    }

}
package main

import (
    "github.com/pulumi/pulumi-mongodbatlas/sdk/go/mongodbatlas"
    "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)

func main() {
    pulumi.Run(func(ctx *pulumi.Context) error {
        testNetworkContainer, err := mongodbatlas.NewNetworkContainer(ctx, "testNetworkContainer", &mongodbatlas.NetworkContainerArgs{
            ProjectId:      pulumi.String("<PROJECT-ID>"),
            AtlasCidrBlock: pulumi.String("192.168.208.0/21"),
            ProviderName:   pulumi.String("AWS"),
            RegionName:     pulumi.String("US_EAST_1"),
        })
        if err != nil {
            return err
        }
        _, err = mongodbatlas.NewNetworkPeering(ctx, "testNetworkPeering", &mongodbatlas.NetworkPeeringArgs{
            ProjectId:           pulumi.String("<PROJECT-ID>"),
            ContainerId:         testNetworkContainer.ContainerId,
            AccepterRegionName:  pulumi.String("us-east-1"),
            ProviderName:        pulumi.String("AWS"),
            RouteTableCidrBlock: pulumi.String("172.31.0.0/16"),
            VpcId:               pulumi.String("vpc-0d93d6f69f1578bd8"),
            AwsAccountId:        pulumi.String("232589400519"),
        })
        if err != nil {
            return err
        }
        _, err = mongodbatlas.NewProjectIpWhitelist(ctx, "testProjectIpWhitelist", &mongodbatlas.ProjectIpWhitelistArgs{
            ProjectId:        pulumi.String("<PROJECT-ID>"),
            AwsSecurityGroup: pulumi.String("sg-0026348ec11780bd1"),
            Comment:          pulumi.String("TestAcc for awsSecurityGroup"),
        }, pulumi.DependsOn([]pulumi.Resource{
            "mongodbatlas_network_peering.test",
        }))
        if err != nil {
            return err
        }
        return nil
    })
}
import pulumi
import pulumi_mongodbatlas as mongodbatlas

test_network_container = mongodbatlas.NetworkContainer("testNetworkContainer",
    project_id="<PROJECT-ID>",
    atlas_cidr_block="192.168.208.0/21",
    provider_name="AWS",
    region_name="US_EAST_1")
test_network_peering = mongodbatlas.NetworkPeering("testNetworkPeering",
    project_id="<PROJECT-ID>",
    container_id=test_network_container.container_id,
    accepter_region_name="us-east-1",
    provider_name="AWS",
    route_table_cidr_block="172.31.0.0/16",
    vpc_id="vpc-0d93d6f69f1578bd8",
    aws_account_id="232589400519")
test_project_ip_whitelist = mongodbatlas.ProjectIpWhitelist("testProjectIpWhitelist",
    project_id="<PROJECT-ID>",
    aws_security_group="sg-0026348ec11780bd1",
    comment="TestAcc for awsSecurityGroup",
    opts=ResourceOptions(depends_on=["mongodbatlas_network_peering.test"]))
import * as pulumi from "@pulumi/pulumi";
import * as mongodbatlas from "@pulumi/mongodbatlas";

const testNetworkContainer = new mongodbatlas.NetworkContainer("testNetworkContainer", {
    projectId: "<PROJECT-ID>",
    atlasCidrBlock: "192.168.208.0/21",
    providerName: "AWS",
    regionName: "US_EAST_1",
});
const testNetworkPeering = new mongodbatlas.NetworkPeering("testNetworkPeering", {
    projectId: "<PROJECT-ID>",
    containerId: testNetworkContainer.containerId,
    accepterRegionName: "us-east-1",
    providerName: "AWS",
    routeTableCidrBlock: "172.31.0.0/16",
    vpcId: "vpc-0d93d6f69f1578bd8",
    awsAccountId: "232589400519",
});
const testProjectIpWhitelist = new mongodbatlas.ProjectIpWhitelist("testProjectIpWhitelist", {
    projectId: "<PROJECT-ID>",
    awsSecurityGroup: "sg-0026348ec11780bd1",
    comment: "TestAcc for awsSecurityGroup",
}, {
    dependsOn: ["mongodbatlas_network_peering.test"],
});

Create a ProjectIpWhitelist Resource

def ProjectIpWhitelist(resource_name: str, opts: Optional[ResourceOptions] = None, aws_security_group: Optional[str] = None, cidr_block: Optional[str] = None, comment: Optional[str] = None, ip_address: Optional[str] = None, project_id: Optional[str] = None)
name string
The unique name of the resource.
args ProjectIpWhitelistArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name str
The unique name of the resource.
opts ResourceOptions
A bag of options that control this resource's behavior.
ctx Context
Context object for the current deployment.
name string
The unique name of the resource.
args ProjectIpWhitelistArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name string
The unique name of the resource.
args ProjectIpWhitelistArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.

ProjectIpWhitelist Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Programming Model docs.

Inputs

The ProjectIpWhitelist resource accepts the following input properties:

ProjectId string

The ID of the project in which to add the whitelist entry.

AwsSecurityGroup string

ID of the whitelisted AWS security group. Mutually exclusive with cidr_block and ip_address.

CidrBlock string

Whitelist entry in Classless Inter-Domain Routing (CIDR) notation. Mutually exclusive with aws_security_group and ip_address.

Comment string

Comment to add to the whitelist entry.

IpAddress string

Whitelisted IP address. Mutually exclusive with aws_security_group and cidr_block.

ProjectId string

The ID of the project in which to add the whitelist entry.

AwsSecurityGroup string

ID of the whitelisted AWS security group. Mutually exclusive with cidr_block and ip_address.

CidrBlock string

Whitelist entry in Classless Inter-Domain Routing (CIDR) notation. Mutually exclusive with aws_security_group and ip_address.

Comment string

Comment to add to the whitelist entry.

IpAddress string

Whitelisted IP address. Mutually exclusive with aws_security_group and cidr_block.

projectId string

The ID of the project in which to add the whitelist entry.

awsSecurityGroup string

ID of the whitelisted AWS security group. Mutually exclusive with cidr_block and ip_address.

cidrBlock string

Whitelist entry in Classless Inter-Domain Routing (CIDR) notation. Mutually exclusive with aws_security_group and ip_address.

comment string

Comment to add to the whitelist entry.

ipAddress string

Whitelisted IP address. Mutually exclusive with aws_security_group and cidr_block.

project_id str

The ID of the project in which to add the whitelist entry.

aws_security_group str

ID of the whitelisted AWS security group. Mutually exclusive with cidr_block and ip_address.

cidr_block str

Whitelist entry in Classless Inter-Domain Routing (CIDR) notation. Mutually exclusive with aws_security_group and ip_address.

comment str

Comment to add to the whitelist entry.

ip_address str

Whitelisted IP address. Mutually exclusive with aws_security_group and cidr_block.

Outputs

All input properties are implicitly available as output properties. Additionally, the ProjectIpWhitelist resource produces the following output properties:

Id string
The provider-assigned unique ID for this managed resource.
Id string
The provider-assigned unique ID for this managed resource.
id string
The provider-assigned unique ID for this managed resource.
id str
The provider-assigned unique ID for this managed resource.

Look up an Existing ProjectIpWhitelist Resource

Get an existing ProjectIpWhitelist resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

public static get(name: string, id: Input<ID>, state?: ProjectIpWhitelistState, opts?: CustomResourceOptions): ProjectIpWhitelist
@staticmethod
def get(resource_name: str, id: str, opts: Optional[ResourceOptions] = None, aws_security_group: Optional[str] = None, cidr_block: Optional[str] = None, comment: Optional[str] = None, ip_address: Optional[str] = None, project_id: Optional[str] = None) -> ProjectIpWhitelist
func GetProjectIpWhitelist(ctx *Context, name string, id IDInput, state *ProjectIpWhitelistState, opts ...ResourceOption) (*ProjectIpWhitelist, error)
public static ProjectIpWhitelist Get(string name, Input<string> id, ProjectIpWhitelistState? state, CustomResourceOptions? opts = null)
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
resource_name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.

The following state arguments are supported:

AwsSecurityGroup string

ID of the whitelisted AWS security group. Mutually exclusive with cidr_block and ip_address.

CidrBlock string

Whitelist entry in Classless Inter-Domain Routing (CIDR) notation. Mutually exclusive with aws_security_group and ip_address.

Comment string

Comment to add to the whitelist entry.

IpAddress string

Whitelisted IP address. Mutually exclusive with aws_security_group and cidr_block.

ProjectId string

The ID of the project in which to add the whitelist entry.

AwsSecurityGroup string

ID of the whitelisted AWS security group. Mutually exclusive with cidr_block and ip_address.

CidrBlock string

Whitelist entry in Classless Inter-Domain Routing (CIDR) notation. Mutually exclusive with aws_security_group and ip_address.

Comment string

Comment to add to the whitelist entry.

IpAddress string

Whitelisted IP address. Mutually exclusive with aws_security_group and cidr_block.

ProjectId string

The ID of the project in which to add the whitelist entry.

awsSecurityGroup string

ID of the whitelisted AWS security group. Mutually exclusive with cidr_block and ip_address.

cidrBlock string

Whitelist entry in Classless Inter-Domain Routing (CIDR) notation. Mutually exclusive with aws_security_group and ip_address.

comment string

Comment to add to the whitelist entry.

ipAddress string

Whitelisted IP address. Mutually exclusive with aws_security_group and cidr_block.

projectId string

The ID of the project in which to add the whitelist entry.

aws_security_group str

ID of the whitelisted AWS security group. Mutually exclusive with cidr_block and ip_address.

cidr_block str

Whitelist entry in Classless Inter-Domain Routing (CIDR) notation. Mutually exclusive with aws_security_group and ip_address.

comment str

Comment to add to the whitelist entry.

ip_address str

Whitelisted IP address. Mutually exclusive with aws_security_group and cidr_block.

project_id str

The ID of the project in which to add the whitelist entry.

Package Details

Repository
https://github.com/pulumi/pulumi-mongodbatlas
License
Apache-2.0
Notes
This Pulumi package is based on the mongodbatlas Terraform Provider.