Questo documento descrive il processo per l'utilizzo delle restrizioni basate sul contesto per proteggere le tue Cloud Databases risorse. Utilizza questo documento per preparare le tue risorse alle restrizioni basate sul contesto. Cloud Databases non offre regole di ambito al piano di controllo nella fase attuale di implementazione.

Limitazioni basate sul contesto

Le restrizioni basate sul contesto consentono ai proprietari e agli amministratori degli account di definire e applicare restrizioni di accesso alle IBM Cloud® risorse in base al contesto delle richieste di accesso. L'accesso alle Cloud Databases risorse può essere controllato con restrizioni basate sul contesto e Identity and Access Management (IAM).

Queste restrizioni funzionano con i tradizionali criteri IAM, che si basano sull'identità, per fornire un ulteriore livello di protezione. A differenza dei criteri IAM, le restrizioni basate sul contesto non assegnano l'accesso. Le restrizioni basate sul contesto verificano che una richiesta di accesso provenga da un contesto consentito configurato dall'utente. Poiché sia l'accesso IAM che le restrizioni basate sul contesto impongono l'accesso, le restrizioni basate sul contesto offrono protezione anche in presenza di credenziali compromesse o gestite male. Per ulteriori informazioni, vedere Cosa sono le restrizioni basate sul contesto.

Un utente deve avere il ruolo di amministratore sul Cloud Databases servizio per creare, aggiornare o eliminare regole. Per creare, aggiornare o eliminare le zone di rete, l'utente deve avere il ruolo di Editor o di Amministratore del servizio restrizioni basate sul contesto. Un utente con il ruolo Viewer del servizio restrizioni basate sul contesto può aggiungere zone di rete a una regola.

Qualsiasi evento IBM Cloud Activity Tracker o log di audit generato proviene dal servizio di restrizioni contestuali, non da Cloud Databases. Cloud Databases supporta gli eventi di audit solo per le interazioni dei clienti con le chiamate agli endpoint della piattaforma protetti da restrizioni contestuali. Cloud Databases non supporta gli eventi di audit quando si abilitano le regole di restrizione contestuale sull'API del piano di controllo per le istanze. Per ulteriori informazioni, vedere Monitoraggio delle restrizioni basate sul contesto.

Per iniziare a proteggere le risorse Cloud Databases con restrizioni basate sul contesto, vedere l'esercitazione su Come sfruttare le restrizioni basate sul contesto per proteggere le risorse.

Come Cloud Databases si integra con le restrizioni basate sul contesto

È possibile creare restrizioni basate sul contesto per il servizio Cloud Databases, risorse specifiche e API specifiche.

Protezione delle risorse di Cloud Databases

È possibile creare regole di restrizione basate sul contesto per proteggere regioni, gruppi di risorse e istanze specifiche.

Regione
Protegge le risorse Cloud Databases in una regione specifica. Se si include una regione nella regola di restrizione basata sul contesto, le risorse nelle zone di rete associate alla regola possono interagire con le risorse solo in quella regione. Se si utilizza la CLI, è possibile specificare l'opzione --region per proteggere le risorse in una regione specifica. Se si utilizza l'interfaccia utente, è possibile specificare la regione negli attributi della risorsa.
Gruppi di risorse
Protegge un gruppo di risorse specifico. Se si include un gruppo di risorse nella regola di restrizione basata sul contesto, le risorse nelle zone di rete associate alla regola possono interagire solo con le risorse di quel gruppo di risorse. L'attribuzione di una regola a un gruppo di risorse specifico è disponibile solo per le regole che proteggono il tipo di API del cluster. Se si utilizza la CLI, è possibile specificare l'opzione --resource-group-id per proteggere le risorse in un gruppo di risorse specifico. Se si utilizza l'interfaccia utente, è possibile specificare il gruppo di risorse negli attributi della risorsa.
Istanza
Protegge un'istanza specifica. Se si include un'istanza nella regola di restrizione basata sul contesto, le risorse nelle zone di rete associate alla regola possono interagire solo con le risorse di quell'istanza. L'attribuzione di una regola a un'istanza specifica è disponibile solo per le regole che proteggono il tipo di API del cluster. Se si utilizza la CLI, è possibile specificare l'opzione --service-instance per proteggere le istanze in un gruppo di risorse specifico. Se si utilizza l'interfaccia utente, è possibile specificare l'istanza del servizio negli attributi della risorsa.

Utilizzo dell'interfaccia a riga di comando (CLI)

È possibile creare e gestire restrizioni basate sul contesto con IBM Cloud CLI installando il plug-in CLI per le restrizioni basate sul contesto.

Creazione di zone di rete

Una zona di rete rappresenta un elenco di indirizzi IP in cui viene creata una richiesta di accesso. Definisce un insieme di una o più posizioni di rete specificate dai seguenti attributi:

  • Indirizzi IP, che comprendono singoli indirizzi, intervalli o sottoreti.
  • VPC.

Creazione di zone di rete nell'interfaccia utente

  1. Andare su Gestione > Restrizioni contestuali nella console IBM Cloud®.

  2. Selezionare Zone di rete.

  3. Fai clic su Crea.

  4. Assegnare un nome alla zona di rete e fornire una descrizione.

  5. Immettere gli indirizzi IP consentiti. È possibile inserire un singolo indirizzo IP, un intervallo di indirizzi IP o un singolo CIDR.

    Il campo Indirizzi IP negati è facoltativo e deve includere solo le eccezioni contenute negli intervalli IP forniti nel campo Indirizzi IP consentiti.

  6. Scegliete le VPC consentite, selezionandone quante ne volete.

  7. Riferimento a un servizio: È possibile selezionare Cloud Databases come servizio di origine per le restrizioni basate sul contesto, ma non come servizio di destinazione. Ad esempio, è possibile eseguire il provisioning di un'istanza Cloud Databases usando BYOK da IBM® Key Protect for IBM Cloud®. In questo esempio, Cloud Databases è la formazione di partenza e IBM® Key Protect for IBM Cloud® è la formazione di arrivo. Quindi, si dovrebbe creare una zona di rete con un riferimento al servizio Cloud Databases e creare una regola associata alla zona di rete che abbia come obiettivo IBM® Key Protect for IBM Cloud®. Per aggiungere un riferimento al servizio Cloud Databases, per Tipo di servizio viene selezionato automaticamente Servizi IAM. Nel menu a tendina Servizio, selezionare un servizio specifico Cloud Databases. Se la zona creata è associata a una regola che punta a Cloud Databases, il riferimento al servizio non è consentito.

I riferimenti di servizio funzionano solo dal Key Protect servizio al Cloud Databases.

Creare zone di rete nella CLI

Per creare zone di rete nella CLI, utilizzare il comando cbr-zone-create per aggiungere risorse alle zone di rete. Per ulteriori informazioni, consultare il riferimento CLI alle restrizioni basate sul contesto.

Creare una zona utilizzando un comando come:

ibmcloud cbr zone-create --addresses=1.1.1.1,5.5.5.5 --name=<NAME>

Creare zone di rete in Terraform

Per creare zone in Terraform, seguire le istruzioni della documentazione del providerIBM Cloud Terraform.

Esempio di script Terraform per creare una zona CBR:

resource "ibm_cbr_zone" "cbr_zone" {
  account_id = "12ab34cd56ef78ab90cd12ef34ab56cd"
  addresses {
    type = "ipAddress"
    value = "169.23.56.234"
  }
  addresses {
    type = "ipRange"
    value = "169.23.22.0-169.23.22.255"
  }
  excluded {
    type  = "ipAddress"
    value = "169.23.22.10"
  }
  excluded {
    type  = "ipAddress"
    value = "169.23.22.11"
  }
  description = "this is an example of zone"
  excluded {
        type = "ipAddress"
        value = "value"
  }
  name = "an example of zone"
}

In alternativa, è possibile utilizzare Terraform IBM Modules(TIM)for CBR Zone per creare una zona per le restrizioni basate sul contesto o aggiornare gli indirizzi in una zona esistente.

Un esempio di creazione di una zona CBR utilizzando Terraform IBM Modules(TIM):

module "ibm_cbr" "zone" {
  source           = "terraform-ibm-modules/cbr/ibm//modules/cbr-zone-module"
  version          = "X.X.X" # Replace "X.X.X" with a release version to lock into a specific release
  name             = "zone_for_pg_access"
  account_id       = "defc0df06b644a9cabc6e44f55b3880s"
  zone_description = "Zone created from terraform"
  addresses        = [{type  = "vpc",value = "vpc_crn"}]
}

Aggiornamento delle zone di rete nella CLI

Aggiornare una zona utilizzando un comando come:

ibmcloud cbr zone-update <ZONE-ID> --addresses=1.2.3.4 --name=<NAME>

L'aggiornamento richiede l'ZONE-ID, non il nome della zona. Utilizzare il seguente comando per elencare le zone e recuperare i relativi ZONE-ID:

ibmcloud cbr zones

Il comando zone-update è una sovrascrittura. Includere tutti i campi obbligatori come se si stesse creando la regola da zero. Se si omettono campi obbligatori, la regola sovrascrive i campi mancanti come vuoti e la regola potrebbe non funzionare correttamente poiché alcuni di questi campi sono obbligatori, indipendentemente dal fatto che modifichino o meno la regola.

Eliminare le zone di rete nella CLI

Eliminare una zona utilizzando un comando come:

ibmcloud cbr zone-delete <ZONE-ID>

Creazione di regole

Le regole limitano l'accesso a specifiche risorse cloud in base a attributi delle risorse e contesti. Una regola creata può accettare fino a 2.000 valori IP/CIDR per gli endpoint privati e fino a 2.000 valori IP/CIDR per gli endpoint pubblici. Questo limite è specifico per Cloud Databases. Altri limiti del servizio IBM Cloud® possono variare.

Cloud Databases non supporta gli indirizzi IPv6. Se viene incluso un indirizzo IPv6, questo viene ignorato.

Chiusura totale dell'accesso agli endpoint non elencati: Per fornire un quadro di sicurezza più solido, abbiamo implementato un cambiamento significativo nel controllo degli accessi agli endpoint pubblici e privati. In futuro, l'accesso agli endpoint pubblici e privati che non sono esplicitamente inseriti nell'elenco dei permessi sarà completamente chiuso. Questa restrizione garantisce solo l'accesso autorizzato ai vostri endpoint, riducendo al minimo il rischio di accesso non autorizzato.

Creare regole nell'interfaccia utente

  1. Andare su Gestione > Restrizioni contestuali nella console IBM Cloud®.

  2. Selezionare le regole.

  3. Fai clic su Crea.

  4. In corrispondenza di Servizio, selezionare il servizio che si desidera indirizzare con la regola.

  5. Alla voce API, selezionare Data plane. Attualmente qualsiasi altra selezione provoca un errore.

    sono previste 0 azioni per il tipo di API del piano dati.

    Cloud Databases attualmente non supporta il piano di controllo come opzione.

  6. In Risorse, selezionare l'ambito della regola Tutte le risorse o Risorse specifiche. Per ulteriori informazioni, vedere Protezione delle risorse Cloud Databases.

  7. Fai clic su Continue.

  8. Definire i tipi di endpoint consentiti.

    • Mantenere la levetta impostata su No per consentire tutti i tipi di endpoint.
    • Impostare la levetta su per consentire solo tipi di endpoint specifici, quindi scegliere dall'elenco.
  9. Selezionare una o più zone di rete già create, oppure creare una nuova zona di rete facendo clic su Crea.

    I contesti definiscono da dove è possibile accedere alle risorse, collegando di fatto la zona di rete alla regola.

  10. Fare clic su Aggiungi per aggiungere la configurazione al riepilogo.

  11. Fai clic su Next.

  12. Dai un nome alla tua regola.

  13. Selezionare la modalità di applicazione della regola.

    La modalità solo report non è disponibile per Cloud Databases.

Creare regole nella CLI

Per creare una regola nella CLI, è necessario l'appropriato Cloud Databases service_name:

  • databases-for-postgresql
  • databases-for-mongodb
  • databases-for-redis
  • databases-for-elasticsearch
  • database-for-mysql
  • messages-for-rabbitmq

Tutti gli altri parametri che seguono sono spiegati nella guida di riferimento del plugin CBR.

Esempio di comando per la creazione di una regola CBR:

ibmcloud cbr rule-create --enforcement-mode enabled --context-attributes "networkZoneId=<ZONE-ID>" --resource-group-id <RESOURCE_GROUP_ID> --service-name <SERVICE-NAME> --service-instance <SERVICE-INSTANCE> --api-types crn:v1:bluemix:public:context-based-restrictions::::api-type:data-plane --description <DESCRIPTION>

L'unica api-type opzione attualmente supportata Cloud Databases è Data plane.

La modalità solo report non è disponibile per Cloud Databases.

Aggiornamento delle regole nella CLI

Esempio di comando per l'aggiornamento di una regola CBR:

ibmcloud cbr rule-update <RULE-ID> --enforcement-mode disabled --context-attributes="networkZoneId=<ZONE-ID>" --resource-group-id   <RESOURCE_GROUP_ID> --service-name <SERVICE_NAME> --api-types crn:v1:bluemix:public:context-based-restrictions::::api-type:data-plane --description    <DESCRIPTION>

Il comando rule-update è una sovrascrittura. Includere tutti i campi obbligatori come se si stesse creando la regola da zero. Se si omettono alcuni campi obbligatori, la regola sovrascrive i campi mancanti come vuoti e la regola potrebbe fallire perché alcuni di questi campi sono obbligatori, indipendentemente dal fatto che stiano modificando la regola.

L'aggiornamento richiede l'RULE-ID, non il nome della regola. Usare il seguente comando per elencare le regole e recuperare i relativi RULE-ID:

ibmcloud cbr rules

Eliminare le regole nella CLI

Eliminare una regola utilizzando un comando come:

ibmcloud cbr rule-delete <RULE-ID>

Usare ibmcloud cbr <command> — help per un elenco completo di opzioni e parametri. Ad esempio, ibmcloud cbr rule-create — help fornisce i parametri per la creazione delle regole.

Creare regole in Terraform

Per creare regole in Terraform, seguire le istruzioni della documentazione del providerIBM Cloud Terraform.

Per creare una regola, è necessario disporre del Cloud Databases service_name appropriato:

  • databases-for-postgresql
  • databases-for-mongodb
  • databases-for-redis
  • databases-for-elasticsearch
  • database-for-mysql
  • messages-for-rabbitmq

Creare una regola utilizzando un comando come:

resource "ibm_cbr_rule" "cbr_rule" {
  contexts {
        attributes {
            name = "networkZoneId"
            value = "559052eb8f43302824e7ae490c0281eb"
        }
        attributes {
               name = "endpointType"
               value = "private"
    }
  }
  description = "this is an example of a rule with one context one zone"
  enforcement_mode = "enabled"
  operations {
        api_types {
            api_type_id = "api_type_id"
        }
  }
  resources {
        attributes {
            name = "accountId"
            value = "12ab34cd56ef78ab90cd12ef34ab56cd"
        }
        attributes {
              name = "serviceName"
              value = "network-policy-enabled"
        }
        tags {
              name     = "tag_name"
              value    = "tag_value"
        }
  }
}

Verifica della regola

Per verificare che la regola sia stata applicata, accedere alla IBM Cloud® Dashboard e selezionare l'istanza pertinente dal proprio Elenco delle risorse. All'interno delle Attività recenti, viene visualizzato lo stato della regola.

Il compito di creare o modificare una regola viene inserito nella coda dei compiti dell'istanza. A seconda del carico di lavoro, potrebbe essere necessario un certo tempo per completare l'applicazione delle regole.