Salta al contenuto

Progettazione di Enterprise Landing Zone Multi-Account per Gruppi Bancari

Designing Multi-Account Enterprise Landing Zones for Banking Groups

2026-09-04
Progettazione di Enterprise Landing Zone Multi-Account per Gruppi Bancari

Sommario

La scalabilità e la sicurezza del cloud enterprise poggiano su una premessa fondamentale: l'isolamento dei carichi di lavoro tramite una struttura multi-account rigidamente governata. Per un gruppo bancario con centinaia di applicazioni core, requisiti stringenti di segregazione dei compiti e controlli normativi continui, una Landing Zone non è semplicemente un template di bootstrap, ma un sistema operativo infrastrutturale. Questo articolo approfondisce la progettazione di una Landing Zone enterprise, analizzando l'albero delle Organizational Units (OU), l'automazione tramite Account Vending Machine (AVM) e l'applicazione di Service Control Policies (SCP) per garantire la conformità preventiva agli standard EBA e DORA.

I limiti del single-account e la necessità della segregazione perimetrale

Nelle prime fasi di adozione del cloud, molte organizzazioni hanno tentato di gestire più ambienti (sviluppo, collaudo, produzione) e diversi domini di business all'interno di un unico account o di poche sottoscrizioni, affidandosi esclusivamente a policy IAM e tagging per garantire la separazione. In un contesto bancario, questo modello mostra rapidamente limiti insormontabili:

  • Rischio di Blast Radius incontrollato: Un errore di configurazione IAM o una compromissione delle credenziali in un ambiente di test può impattare le risorse di produzione condivise sullo stesso control plane.
  • Saturazione dei Quota Limits delle API: I cloud provider impongono limiti sul numero di chiamate API e sulla creazione di risorse per singolo account (es. VPC, route tables, certificati KMS). La coesistenza di decine di team porta inevitabilmente a fenomeni di "noisy neighbor" e blocchi operativi durante i picchi transazionali.
  • Complessità di Audit e Conformità Finanziaria: Gli auditor di Banca d'Italia e le linee guida EBA sull'outsourcing richiedono prove inoppugnabili di isolamento logico dei dati finanziari e una netta separazione dei privilegi (Segregation of Duties). Dimostrare questa conformità su account condivisi richiede matrici RBAC labirintiche e fragili.

La risposta architetturale risiede nell'adottare il principio per cui l'account cloud è l'unità fondamentale di isolamento di sicurezza e fatturazione.

Architettura dell'Albero delle Organizational Unit (OU)

Una Landing Zone bancaria richiede un'alberatura gerarchica progettata per applicare policy ereditate in modo deterministico, distinguendo tra account di piattaforma centralizzati e account applicativi per i tenant.

flowchart TD
    Root["Root Organization (Management Account)"] --> CoreOU["Core / Foundation OU"]
    Root --> SecurityOU["Security & Compliance OU"]
    Root --> WorkloadsOU["Workloads OU"]
    Root --> SandboxOU["Sandbox OU (No Direct Network)"]

    CoreOU --> NetHub["Network Hub Account (Transit Gateway / Firewall)"]
    CoreOU --> SharedSvc["Shared Services (CI/CD / Artifact Registry)"]

    SecurityOU --> LogArchive["Log Archive Account (Immutable S3 / KMS)"]
    SecurityOU --> SecAudit["Security Tooling (GuardDuty / SIEM Gateway)"]

    WorkloadsOU --> ProdOU["Production OU"]
    WorkloadsOU --> NonProdOU["Non-Production OU"]

    ProdOU --> CoreBank["Core Banking Account (PCI-DSS Zone A)"]
    ProdOU --> Payments["Payment Engine Account (Confidential VM)"]

Funzione dei macro-account di piattaforma

  1. Management Account: Destinato esclusivamente alla fatturazione consolidata e alla gestione dell'organizzazione. Nessun carico applicativo viene eseguito qui, e l'accesso è protetto da MFA hardware con procedure break-glass.
  2. Security & Audit Account: Aggrega centralmente i segnali di sicurezza (AWS GuardDuty, Security Hub, Inspector, o GCP Security Command Center). I security engineer hanno visibilità in sola lettura su tutti i tenant.
  3. Log Archive Account: Raccoglie tutti i log immutabili (CloudTrail, VPC Flow Logs, log di audit applicativi). Le bucket policy implementano l'Object Lock in modalità Compliance, impedendo qualsiasi cancellazione anche da parte di utenti root.
  4. Network Hub Account: Concentra la connettività perimetrale (Direct Connect/Interconnect verso i mainframe on-premise, Next-Generation Firewall per l'ispezione egress verso Internet e Transit Gateway).

Service Control Policies (SCP) come guardrail preventivi

Le SCP rappresentano il meccanismo con cui il team di Cloud Governance impone limiti invalicabili all'interno dell'organizzazione, indipendentemente dai permessi concessi dagli amministratori dei singoli account.

Esempio di Service Control Policy di conformità bancaria

Il manifest seguente applica tre controlli critici su tutta la Workloads OU: blocca l'uso di regioni geografiche non autorizzate (garantendo la sovranità del dato in UE), impedisce la disattivazione dei log di audit e vieta la creazione di bucket storage privi di cifratura con chiavi gestite dal cliente (CMEK/KMS):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "EnforceEURegionBoundary",
      "Effect": "Deny",
      "NotAction": [
        "iam:*",
        "organizations:*",
        "route53:*",
        "budgets:*",
        "support:*",
        "wafv2:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:RequestedRegion": [
            "eu-south-1",
            "eu-central-1",
            "eu-west-1"
          ]
        }
      }
    },
    {
      "Sid": "ProtectSecurityServicesAndLogging",
      "Effect": "Deny",
      "Action": [
        "cloudtrail:DeleteTrail",
        "cloudtrail:StopLogging",
        "cloudtrail:UpdateTrail",
        "guardduty:DeleteDetector",
        "guardduty:DisassociateFromMasterAccount",
        "securityhub:DisableSecurityHub"
      ],
      "Resource": "*"
    },
    {
      "Sid": "DenyUnencryptedS3Storage",
      "Effect": "Deny",
      "Action": [
        "s3:PutObject"
      ],
      "Resource": "arn:aws:s3:::*/*",
      "Condition": {
        "Null": {
          "s3:x-amz-server-side-encryption-aws-kms-key-id": "true"
        }
      }
    }
  ]
}

Questo pattern garantisce che anche in caso di compromissione totale dei permessi AdministratorAccess su un account tenant, l'attaccante non possa mai disattivare i meccanismi di tracciamento né esfiltrare dati al di fuori delle regioni autorizzate.

Automazione tramite Account Vending Machine (AVM)

Creare manualmente gli account in un'organizzazione bancaria rallenta il time-to-market e introduce difformità configurative. L'adozione di un'Account Vending Machine (AVM) dichiarativa gestita tramite Infrastructure as Code (Terraform/OpenTofu) automatizza l'intero ciclo di vita:

  1. Richiesta del Tenant: Il team applicativo compila un file dichiarativo (es. tenant-request.yaml) indicando il business domain, il livello di classificazione dei dati (PCI-DSS, dati ordinari) e il cost center per il FinOps.
  2. Pipeline di Provisioning: La pipeline CI/CD invoca il modulo AVM che crea l'account all'interno della corretta OU, vi associa le SCP corrispondenti, istanzia il peering/attachment con il Transit Gateway di rete e inietta il ruolo IAM federato con l'Identity Provider enterprise (Entra ID / Okta).
  3. Baseline Security Bootstrapping: Vengono attivati automaticamente i controlli di sicurezza minimi (default EBS encryption, blocco dell'accesso pubblico a S3 a livello di account, forward dei log verso il Log Archive).
# Esempio di invocazione del modulo AVM con Terraform
module "core_banking_account" {
  source = "git::https://git.internal.bank.corp/cloud-foundation/terraform-aws-avm.git?ref=v3.2.0"

  account_name               = "payments-clearing-prod"
  account_email              = "[email protected]"
  parent_ou_id               = data.aws_organizations_organizational_unit.prod_workloads.id
  budget_monthly_limit_eur   = 15000
  cost_center                = "CC-BANKING-PAY-04"
  compliance_framework       = "PCI-DSS-4.0"

  vpc_cidr_block             = "10.140.0.0/20"
  transit_gateway_attachment = true
  enable_kms_cmk_baseline    = true
}

Conclusione

Una Landing Zone Multi-Account progettata secondo i principi di isolamento preventivo e automazione as-code costituisce l'architrave su cui poggia l'intera strategia cloud di una banca moderna.

Per un Cloud Architect, il valore risiede nella capacità di disaccoppiare la velocità degli sviluppatori dai vincoli di sicurezza: attraverso guardrail ereditari, segregazione delle reti perimetrali e provisioning deterministico, la conformità a standard stringenti come DORA e PCI-DSS non è più un collo di bottiglia a valle, ma una proprietà intrinseca della piattaforma.

Summary

The scalability and security of enterprise cloud rely on a fundamental premise: the isolation of workloads through a rigidly governed multi-account structure. For a banking group with hundreds of core applications, stringent segregation of duties requirements, and continuous regulatory controls, a Landing Zone is not merely a bootstrap template but an infrastructural operating system. This article delves into the design of an enterprise Landing Zone, analyzing the Organizational Units (OU) tree, automation via Account Vending Machine (AVM), and the application of Service Control Policies (SCP) to ensure proactive compliance with EBA and DORA standards.

The limitations of single-account and the need for perimeter segregation

In the early stages of cloud adoption, many organizations attempted to manage multiple environments (development, testing, production) and various business domains within a single account or a few subscriptions, relying exclusively on IAM policies and tagging to ensure separation. In a banking context, this model quickly reveals insurmountable limitations:

  • Uncontrolled Blast Radius Risk: An IAM misconfiguration or a credential compromise in a test environment can impact production resources shared on the same control plane.
  • API Quota Limit Saturation: Cloud providers impose limits on the number of API calls and resource creation per single account (e.g., VPCs, route tables, KMS certificates). The coexistence of dozens of teams inevitably leads to "noisy neighbor" phenomena and operational blocks during transactional peaks.
  • Audit and Financial Compliance Complexity: Bank of Italy auditors and EBA guidelines on outsourcing require irrefutable proof of logical isolation of financial data and a clear separation of privileges (Segregation of Duties). Demonstrating this compliance on shared accounts requires labyrinthine and fragile RBAC matrices.

The architectural answer lies in adopting the principle that the cloud account is the fundamental unit of security isolation and billing.

Organizational Unit (OU) Tree Architecture

A banking Landing Zone requires a hierarchical tree structure designed to apply inherited policies deterministically, distinguishing between centralized platform accounts and application accounts for tenants.

flowchart TD
    Root["Root Organization (Management Account)"] --> CoreOU["Core / Foundation OU"]
    Root --> SecurityOU["Security & Compliance OU"]
    Root --> WorkloadsOU["Workloads OU"]
    Root --> SandboxOU["Sandbox OU (No Direct Network)"]

    CoreOU --> NetHub["Network Hub Account (Transit Gateway / Firewall)"]
    CoreOU --> SharedSvc["Shared Services (CI/CD / Artifact Registry)"]

    SecurityOU --> LogArchive["Log Archive Account (Immutable S3 / KMS)"]
    SecurityOU --> SecAudit["Security Tooling (GuardDuty / SIEM Gateway)"]

    WorkloadsOU --> ProdOU["Production OU"]
    WorkloadsOU --> NonProdOU["Non-Production OU"]

    ProdOU --> CoreBank["Core Banking Account (PCI-DSS Zone A)"]
    ProdOU --> Payments["Payment Engine Account (Confidential VM)"]

Function of Platform Macro-Accounts

  1. Management Account: Exclusively dedicated to consolidated billing and organizational management. No application workloads are run here, and access is protected by hardware MFA with break-glass procedures.
  2. Security & Audit Account: Centrally aggregates security signals (AWS GuardDuty, Security Hub, Inspector, or GCP Security Command Center). Security engineers have read-only visibility across all tenants.
  3. Log Archive Account: Collects all immutable logs (CloudTrail, VPC Flow Logs, application audit logs). Bucket policies implement Object Lock in Compliance mode, preventing any deletion even by root users.
  4. Network Hub Account: Concentrates perimeter connectivity (Direct Connect/Interconnect to on-premise mainframes, Next-Generation Firewall for egress inspection to the Internet, and Transit Gateway).

Service Control Policies (SCP) as preventive guardrails

SCPs represent the mechanism by which the Cloud Governance team imposes inviolable limits within the organization, regardless of the permissions granted by individual account administrators.

Example of a Banking Compliance Service Control Policy

The following manifest applies three critical controls across the entire Workloads OU: it blocks the use of unauthorized geographical regions (ensuring data sovereignty within the EU), prevents the deactivation of audit logs, and prohibits the creation of storage buckets without encryption using customer-managed keys (CMEK/KMS):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "EnforceEURegionBoundary",
      "Effect": "Deny",
      "NotAction": [
        "iam:*",
        "organizations:*",
        "route53:*",
        "budgets:*",
        "support:*",
        "wafv2:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:RequestedRegion": [
            "eu-south-1",
            "eu-central-1",
            "eu-west-1"
          ]
        }
      }
    },
    {
      "Sid": "ProtectSecurityServicesAndLogging",
      "Effect": "Deny",
      "Action": [
        "cloudtrail:DeleteTrail",
        "cloudtrail:StopLogging",
        "cloudtrail:UpdateTrail",
        "guardduty:DeleteDetector",
        "guardduty:DisassociateFromMasterAccount",
        "securityhub:DisableSecurityHub"
      ],
      "Resource": "*"
    },
    {
      "Sid": "DenyUnencryptedS3Storage",
      "Effect": "Deny",
      "Action": [
        "s3:PutObject"
      ],
      "Resource": "arn:aws:s3:::*/*",
      "Condition": {
        "Null": {
          "s3:x-amz-server-side-encryption-aws-kms-key-id": "true"
        }
      }
    }
  ]
}

This pattern ensures that even in the event of a total compromise of AdministratorAccess permissions on a tenant account, the attacker can never disable tracing mechanisms or exfiltrate data outside authorized regions.

Automation via Account Vending Machine (AVM)

Manually creating accounts in a banking organization slows down time-to-market and introduces configuration inconsistencies. The adoption of a declarative Account Vending Machine (AVM) managed via Infrastructure as Code (Terraform/OpenTofu) automates the entire lifecycle:

  1. Tenant Request: The application team fills out a declarative file (e.g., tenant-request.yaml) indicating the business domain, data classification level (PCI-DSS, ordinary data), and cost center for FinOps.
  2. Provisioning Pipeline: The CI/CD pipeline invokes the AVM module, which creates the account within the correct OU, associates the corresponding SCPs, instantiates peering/attachment with the network Transit Gateway, and injects the federated IAM role with the enterprise Identity Provider (Entra ID / Okta).
  3. Baseline Security Bootstrapping: Minimum security controls are automatically activated (default EBS encryption, blocking public S3 access at the account level, forwarding logs to the Log Archive).
# Example of AVM module invocation with Terraform
module "core_banking_account" {
  source = "git::https://git.internal.bank.corp/cloud-foundation/terraform-aws-avm.git?ref=v3.2.0"

  account_name               = "payments-clearing-prod"
  account_email              = "[email protected]"
  parent_ou_id               = data.aws_organizations_organizational_unit.prod_workloads.id
  budget_monthly_limit_eur   = 15000
  cost_center                = "CC-BANKING-PAY-04"
  compliance_framework       = "PCI-DSS-4.0"

  vpc_cidr_block             = "10.140.0.0/20"
  transit_gateway_attachment = true
  enable_kms_cmk_baseline    = true
}

Conclusion

A Multi-Account Landing Zone designed according to the principles of preventive isolation and as-code automation forms the backbone of a modern bank's entire cloud strategy.

For a Cloud Architect, the value lies in the ability to decouple developer velocity from security constraints: through inherited guardrails, perimeter network segregation, and deterministic provisioning, compliance with stringent standards like DORA and PCI-DSS is no longer a downstream bottleneck, but an intrinsic property of the platform.