IAMBinding

Allows creation and management of a single binding within IAM policy for an existing Google Cloud Platform Organization.

Note: This resource must not be used in conjunction with gcp.organizations.IAMMember for the same role or they will fight over what your policy should be.

Note: On create, this resource will overwrite members of any existing roles. Use pulumi import and inspect the `output to ensure your existing members are preserved.

Example Usage

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
    public MyStack()
    {
        var binding = new Gcp.Organizations.IAMBinding("binding", new Gcp.Organizations.IAMBindingArgs
        {
            Members = 
            {
                "user:alice@gmail.com",
            },
            OrgId = "123456789",
            Role = "roles/browser",
        });
    }

}
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/organizations"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := organizations.NewIAMBinding(ctx, "binding", &organizations.IAMBindingArgs{
			Members: pulumi.StringArray{
				pulumi.String("user:alice@gmail.com"),
			},
			OrgId: pulumi.String("123456789"),
			Role:  pulumi.String("roles/browser"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
import pulumi
import pulumi_gcp as gcp

binding = gcp.organizations.IAMBinding("binding",
    members=["user:alice@gmail.com"],
    org_id="123456789",
    role="roles/browser")
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const binding = new gcp.organizations.IAMBinding("binding", {
    members: ["user:alice@gmail.com"],
    orgId: "123456789",
    role: "roles/browser",
});

Create a IAMBinding Resource

new IAMBinding(name: string, args: IAMBindingArgs, opts?: CustomResourceOptions);
@overload
def IAMBinding(resource_name: str,
               opts: Optional[ResourceOptions] = None,
               condition: Optional[IAMBindingConditionArgs] = None,
               members: Optional[Sequence[str]] = None,
               org_id: Optional[str] = None,
               role: Optional[str] = None)
@overload
def IAMBinding(resource_name: str,
               args: IAMBindingArgs,
               opts: Optional[ResourceOptions] = None)
func NewIAMBinding(ctx *Context, name string, args IAMBindingArgs, opts ...ResourceOption) (*IAMBinding, error)
public IAMBinding(string name, IAMBindingArgs args, CustomResourceOptions? opts = null)
name string
The unique name of the resource.
args IAMBindingArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name str
The unique name of the resource.
args IAMBindingArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name string
The unique name of the resource.
args IAMBindingArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name string
The unique name of the resource.
args IAMBindingArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.

IAMBinding Resource Properties

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

Inputs

The IAMBinding resource accepts the following input properties:

Members List<string>
A list of users that the role should apply to. For more details on format and restrictions see https://cloud.google.com/billing/reference/rest/v1/Policy#Binding
OrgId string
The numeric ID of the organization in which you want to create a custom role.
Role string
The role that should be applied. Only one gcp.organizations.IAMBinding can be used per role. Note that custom roles must be of the format [projects|organizations]/{parent-name}/roles/{role-name}.
Condition IAMBindingConditionArgs
Members []string
A list of users that the role should apply to. For more details on format and restrictions see https://cloud.google.com/billing/reference/rest/v1/Policy#Binding
OrgId string
The numeric ID of the organization in which you want to create a custom role.
Role string
The role that should be applied. Only one gcp.organizations.IAMBinding can be used per role. Note that custom roles must be of the format [projects|organizations]/{parent-name}/roles/{role-name}.
Condition IAMBindingCondition
members string[]
A list of users that the role should apply to. For more details on format and restrictions see https://cloud.google.com/billing/reference/rest/v1/Policy#Binding
orgId string
The numeric ID of the organization in which you want to create a custom role.
role string
The role that should be applied. Only one gcp.organizations.IAMBinding can be used per role. Note that custom roles must be of the format [projects|organizations]/{parent-name}/roles/{role-name}.
condition IAMBindingConditionArgs
members Sequence[str]
A list of users that the role should apply to. For more details on format and restrictions see https://cloud.google.com/billing/reference/rest/v1/Policy#Binding
org_id str
The numeric ID of the organization in which you want to create a custom role.
role str
The role that should be applied. Only one gcp.organizations.IAMBinding can be used per role. Note that custom roles must be of the format [projects|organizations]/{parent-name}/roles/{role-name}.
condition IAMBindingConditionArgs

Outputs

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

Etag string
(Computed) The etag of the organization’s IAM policy.
Id string
The provider-assigned unique ID for this managed resource.
Etag string
(Computed) The etag of the organization’s IAM policy.
Id string
The provider-assigned unique ID for this managed resource.
etag string
(Computed) The etag of the organization’s IAM policy.
id string
The provider-assigned unique ID for this managed resource.
etag str
(Computed) The etag of the organization’s IAM policy.
id str
The provider-assigned unique ID for this managed resource.

Look up an Existing IAMBinding Resource

Get an existing IAMBinding 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?: IAMBindingState, opts?: CustomResourceOptions): IAMBinding
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        condition: Optional[IAMBindingConditionArgs] = None,
        etag: Optional[str] = None,
        members: Optional[Sequence[str]] = None,
        org_id: Optional[str] = None,
        role: Optional[str] = None) -> IAMBinding
func GetIAMBinding(ctx *Context, name string, id IDInput, state *IAMBindingState, opts ...ResourceOption) (*IAMBinding, error)
public static IAMBinding Get(string name, Input<string> id, IAMBindingState? 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:

Condition IAMBindingConditionArgs
Etag string
(Computed) The etag of the organization’s IAM policy.
Members List<string>
A list of users that the role should apply to. For more details on format and restrictions see https://cloud.google.com/billing/reference/rest/v1/Policy#Binding
OrgId string
The numeric ID of the organization in which you want to create a custom role.
Role string
The role that should be applied. Only one gcp.organizations.IAMBinding can be used per role. Note that custom roles must be of the format [projects|organizations]/{parent-name}/roles/{role-name}.
Condition IAMBindingCondition
Etag string
(Computed) The etag of the organization’s IAM policy.
Members []string
A list of users that the role should apply to. For more details on format and restrictions see https://cloud.google.com/billing/reference/rest/v1/Policy#Binding
OrgId string
The numeric ID of the organization in which you want to create a custom role.
Role string
The role that should be applied. Only one gcp.organizations.IAMBinding can be used per role. Note that custom roles must be of the format [projects|organizations]/{parent-name}/roles/{role-name}.
condition IAMBindingConditionArgs
etag string
(Computed) The etag of the organization’s IAM policy.
members string[]
A list of users that the role should apply to. For more details on format and restrictions see https://cloud.google.com/billing/reference/rest/v1/Policy#Binding
orgId string
The numeric ID of the organization in which you want to create a custom role.
role string
The role that should be applied. Only one gcp.organizations.IAMBinding can be used per role. Note that custom roles must be of the format [projects|organizations]/{parent-name}/roles/{role-name}.
condition IAMBindingConditionArgs
etag str
(Computed) The etag of the organization’s IAM policy.
members Sequence[str]
A list of users that the role should apply to. For more details on format and restrictions see https://cloud.google.com/billing/reference/rest/v1/Policy#Binding
org_id str
The numeric ID of the organization in which you want to create a custom role.
role str
The role that should be applied. Only one gcp.organizations.IAMBinding can be used per role. Note that custom roles must be of the format [projects|organizations]/{parent-name}/roles/{role-name}.

Supporting Types

IAMBindingCondition

Expression string
Title string
Description string
Expression string
Title string
Description string
expression string
title string
description string

Import

IAM binding imports use space-delimited identifiers; first the resource in question and then the role.

These bindings can be imported using the org_id and role, e.g.

 $ pulumi import gcp:organizations/iAMBinding:IAMBinding my_org "your-org-id roles/viewer"

-> Custom RolesIf you’re importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. [projects/my-project|organizations/my-org]/roles/my-custom-role.

Package Details

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