Skip to main content

IAM and RBAC Requirements for Multi-Cloud Deployment

Last Updated: 2025-11-02 Applies To: GCP GKE, AWS EKS, Azure AKS Purpose: Comprehensive IAM/RBAC permissions required for CI/CD deployments

Overview

This document defines all required IAM roles, permissions, and RBAC policies needed to deploy MCP Server LangGraph to Kubernetes across all three major cloud providers.

Principle: Least Privilege

All permissions follow the principle of least privilege - granting only the minimum permissions necessary for each operation.

GCP (Google Kubernetes Engine)

Service Account: mcp-staging-sa@PROJECT_ID.iam.gserviceaccount.com

Required IAM Roles

Grant Commands

Workload Identity Federation (GitHub Actions)

Pool: github-actions-pool Provider: github-provider

Kubernetes RBAC (In-Cluster)

Service Account: mcp-server-langgraph (in namespace)

Verification


AWS (Elastic Kubernetes Service)

IAM Role: mcp-eks-deployment-role

Required IAM Policies

Custom IAM Policy: ECR Access

Custom IAM Policy: EKS Deployment

IRSA (IAM Roles for Service Accounts)

Service Account Annotation:
Trust Policy:

Grant Commands (AWS CLI)


Azure (Azure Kubernetes Service)

Service Principal / Managed Identity: mcp-aks-sp

Required Azure RBAC Roles

Grant Commands (Azure CLI)

Workload Identity (Azure AD Pod Identity)

Pod Identity:
Pod Identity Binding:

Kubernetes RBAC (Common to All Platforms)

Namespace-Level Permissions

ServiceAccount

Role

RoleBinding


CI/CD Service Account Permissions

GitHub Actions (All Platforms)

Required Permissions:
  1. Pull from source repository - GitHub token (automatic)
  2. Authenticate to cloud provider - Workload Identity Federation / OIDC
  3. Push container images - Container registry write access
  4. Deploy to Kubernetes - Cluster access with deployment permissions

Deployment Pipeline Permissions


Validation Scripts

GCP Validation

AWS Validation

Azure Validation


Troubleshooting

Common Permission Errors

GCP: “Permission denied on Artifact Registry”

Error:
Fix:

AWS: “AccessDenied ECR”

Error:
Fix: Apply ECR custom policy (see above)

Azure: “Authorization failed for ACR”

Error:
Fix:

Security Best Practices

1. Use Workload Identity / IRSA

  • Do: Use platform-native workload identity (GCP Workload Identity, AWS IRSA, Azure Pod Identity)
  • Don’t: Use long-lived service account keys

2. Principle of Least Privilege

  • Do: Grant only required permissions
  • Don’t: Grant Owner, Editor, or Admin roles

3. Scope Permissions Narrowly

  • Do: Scope to specific resources (namespace, resource group, etc.)
  • Don’t: Grant organization-wide or subscription-wide permissions

4. Regular Audits

  • Do: Regularly review and audit permissions
  • Don’t: Set-and-forget permissions

5. Use Resource-Level Permissions

  • Do: Grant access to specific container registries, clusters
  • Don’t: Grant wildcard (*) resource access

References

Documentation

  • GCP: GCP Configuration Guide
  • AWS: AWS EKS Configuration (see scripts and Terraform modules below)
  • Azure: Azure AKS Configuration (see scripts and Terraform modules below)
AWS EKS and Azure AKS deployment documentation is available via deployment scripts and Terraform modules. Dedicated configuration guides are planned for future releases.

Scripts

  • GCP Setup: scripts/gcp/setup-staging-infrastructure.sh
  • AWS Setup: scripts/deploy-aws-eks.sh
  • Azure Setup: scripts/deploy-azure-aks.sh

Terraform Modules

  • GCP: terraform/modules/gke/
  • AWS: terraform/modules/eks/
  • Azure: terraform/modules/aks/

Maintained By: DevOps Team Last Reviewed: 2025-11-02 Next Review: 2025-12-01