Skip to content

Google Cloud IAM - Master IAM Roles using gcloud cli

Step-01: Introduction

  • We are create IAM Roles using gcloud
  • gcloud iam roles create with flags
  • gcloud iam roles create with role definition in YAML file
  • gcloud iam roles update

Step-02: Create a VM Instance

# Set Project
gcloud config set project PROJECT_ID
gcloud config set project gcplearn9

# Create VM Instance
gcloud compute instances create vm1 \
  --zone=us-central1-a \
  --machine-type=e2-micro \
  --network-interface=subnet=default 

Step-03: Pre-requisite: Create a test gmail id for this demo

  • gcpuser08@gmail.com

Step-04: Custom Role: Delete VM

Step-04-01: Role Definition using YAML file

title: "Custom Compute Instance Delete Role 102"
description: "My custom role used for deletion of Compoute Instance 101"
stage: "ALPHA"
includedPermissions:
- compute.instances.delete

Step-04-02: Create a IAM Role with YAML File at Project Level

# Upload the file to Cloud Shell
Upload the file: delete-instance-role.yaml to cloud shell

# Create a IAM Role with YAML File
gcloud iam roles create myInstanceDelete102 \
  --project=gcplearn9 \
  --file=delete-instance-role.yaml

# Describe Role
gcloud iam roles describe ROLE_ID --project=gcplearn9
gcloud iam roles describe myInstanceDelete102 --project=gcplearn9

Step-04-03: Create a IAM Role with gcloud using flags at Project Level

# Create a IAM Role with flags
gcloud iam roles create myInstanceReset102 \
  --project=gcplearn9 \
  --title="Custom Compute Instance Reset Role 102" \
  --description="My custom role used for Reset of Compoute Instance" \
  --permissions="compute.instances.reset" \
  --stage="ALPHA" 

# Describe Role
gcloud iam roles describe ROLE_ID --project=gcplearn9
gcloud iam roles describe myInstanceReset102 --project=gcplearn9

Step-05: Add IAM Roles to User: gcpuser08@gmail.com

  • Go to IAM & Admin -> IAM -> GRANT ACCESS
  • Add Principal: gcpuser08@gmail.com
  • Select Role: Compute Viewer
  • Select Role: Custom Role Start Stop VM
  • Select Role: Custom Compute Instance Delete Role 102
  • Select Role: Custom Compute Instance Reset Role 102
  • Click on SAVE

Step-06: Login to Google Cloud with new user gcpuser08@gmail.com

  • Open in New incognito window
  • Login to Google Cloud
  • Username: gcpuser08@gmail.com
  • Password: XXXXXXXX
  • Select Project gcplearn9
  • Observation-1: We should have options DELETE and RESET options enabled

Step-07: Update IAM Role (ADD PERMISSIONS, REMOVE PERMISSIONS) with flags

# ADD PERMISSIONS: Update a IAM Role with flags to 
gcloud iam roles update myInstanceReset102 \
  --project=gcplearn9 \
  --add-permissions="compute.instances.suspend"

# Describe Role
gcloud iam roles describe ROLE_ID --project=gcplearn9
gcloud iam roles describe myInstanceReset102 --project=gcplearn9  

# REMOVE PERMISSIONS: Update a IAM Role with flags to 
gcloud iam roles update myInstanceReset102 \
  --project=gcplearn9 \
  --remove-permissions="compute.instances.suspend"

# Describe Role
gcloud iam roles describe ROLE_ID --project=gcplearn9
gcloud iam roles describe myInstanceReset102 --project=gcplearn9  

Step-08: Clean-Up VM Instances

  • Delete VM Instances
🎉 New Course
Ultimate DevOps Real-World Project Implementation on AWS
$15.99 $84.99 81% OFF
DEVOPS2026FEB
Enroll Now on Udemy
🎉 Offer