Protezione dei servizi dell'infrastruttura VPC (Virtual Private Cloud) con restrizioni basate sul contesto
Le restrizioni basate sul contesto consentono ai proprietari e agli amministratori degli account di definire e applicare restrizioni di accesso alle risorse di IBM Cloud® in base al contesto delle richieste di accesso. L'accesso ai servizi di infrastruttura VPC può essere controllato con restrizioni basate sul contesto e politiche di gestione delle identità e degli accessi (IAM).
Queste restrizioni funzionano con le politiche IAM tradizionali, basate sull'identità, per fornire un ulteriore livello di protezione. A differenza delle politiche 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 caso di credenziali compromesse o gestite in modo errato. Per ulteriori informazioni, consulta Che cosa sono le restrizioni basate sul contesto.
Un utente deve avere il ruolo di amministratore sui servizi di infrastruttura VPC per creare, aggiornare o eliminare regole che hanno come obiettivo i servizi di infrastruttura VPC. Un utente deve avere il ruolo di Editor o Amministratore nel servizio delle restrizioni basate sul contesto per poter creare, aggiornare o eliminare zone di rete. Un utente con il ruolo di visualizzatore nel servizio delle restrizioni basate sul contesto può aggiungere zone di rete solo a una regola.
Il servizio di restrizione basato sul contesto genera registri di controllo ogni volta che viene applicata una politica basata sul contesto. Per ulteriori informazioni, consultare Monitoraggio delle limitazioni basate sul contesto.
Per iniziare a proteggere i servizi di infrastruttura VPC con restrizioni basate sul contesto, consulta il tutorial Utilizzo delle restrizioni basate sul contesto per proteggere le risorse.
Come VPC Infrastructure Services si integra con le restrizioni basate sul contesto
VPC Infrastructure Services è un servizio composito costituito da una serie di servizi secondari. È possibile creare restrizioni basate sul contesto per IBM Cloud VPC o per qualsiasi dei suoi servizi secondari, ad esempio sottoreti, istanze di server virtuali e volumi Block Storage.
Per ulteriori dettagli su come creare regole con gli attributi richiesti per ciascun servizio, consultare la sezione relativa alla creazione delle regole.
Creazione di zone di rete
Una zona di rete rappresenta un elenco consentito 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 includono singoli indirizzi, intervalli o sottoreti
- VPC
- Riferimenti di servizio, che consentono l'accesso da altri servizi IBM Cloud®
Riferimenti del servizio
Un *riferimento al servizio, definito come parte di una zona di rete, consente al servizio specificato di comunicare con le risorse o le API soggette a restrizioni che sono oggetto di una politica di restrizione basata sul contesto. La tabella seguente contiene i riferimenti ai servizi che devono essere inclusi quando si utilizzano restrizioni basate sul contesto nell'ambito dei servizi di infrastruttura VPC. È inoltre possibile consultare le autorizzazioni IAM da servizio a servizio nel proprio account quando si valuta quali riferimenti di servizio aggiungere nella propria zona di rete. Puoi trovare l'autorizzazione da servizio a servizio nel tuo account andando su Gestisci -> Accesso (IAM) e selezionando la scheda Autorizzazioni.
| Servizio con restrizioni basate sul contesto | Servizio interessato | Riferimenti di servizio richiesti nella zona di rete |
|---|---|---|
| Cloud Object Storage | Servizi di infrastruttura VPC (is) |
|
| Key Protect | Cloud Block Storage (server-protect),File Storage for VPC ( is.share) |
|
| Servizio Hyper Protect Crypto | Cloud Block Storage (server-protect),File Storage for VPC ( is.share) |
|
| Istanze del server virtuale | Servizi di infrastruttura VPC (is) |
|
| Vari servizi dell'infrastruttura VPC - Volume Block Storage, Gruppi di sicurezza, Sottoreti | IBM Kubernetes Service (containers-kubernetes) |
|
| Secrets Manager | Servizi di infrastruttura VPC (is) |
Creazione di zone di rete utilizzando l'API
È possibile creare zone di rete utilizzando il comando create-zone. Per ulteriori informazioni, consulta la documentazione API.
L'attributo serviceRef per i servizi di infrastruttura VPC è is. Cloud Block Storage è server-protect, e File Storage for VPC è is.share.
{
"name": "Example zone 1",
"description": "",
"addresses": [
{
"type": "serviceRef",
"ref": {
"service_name": "is"
}
}
]
}
{
"name": "Example zone 1",
"description": "",
"addresses": [
{
"type": "serviceRef",
"ref": {
"service_name": "server-protect"
}
}
]
}
Creazione di zone di rete utilizzando la CLI
-
Per creare zone di rete dalla CLI, installare il plug-in CBR CLI.
-
Utilizza il
cbr-zone-createcomando per aggiungere posizioni di rete, VPC e riferimenti di servizio alle zone di rete. Per ulteriori informazioni, consultare il riferimento CBR CLI.Per trovare un elenco dei target di riferimento dei servizi disponibili, eseguire il
ibmcloud cbr service-ref-targetscomando. Ilservice_nameper i servizi di infrastruttura VPC èis. Cloud Block Storage èserver-protect, e File Storage for VPC èis.share.Il comando di esempio seguente aggiunge il
isservizio, denominato Servizi infrastruttura VPC nella console IBM Cloud®, a una zona di rete.ibmcloud cbr zone-create --name example-zone-1 --description "Example zone 1" --service-ref service_name=isIl seguente comando di esempio aggiunge il file
server-protectservizio, denominato* Cloud Block Storage* In IBM Cloud® console, a una zona di rete.ibmcloud cbr zone-create --name example-zone-1 --description "Example zone 1" --service-ref service_name=server-protect
Creazione di zone di rete dalla console
- Determinare le risorse che si desidera aggiungere alla propria allowlist.
- Controlla la sezione dei riferimenti di servizio per verificare se è necessario aggiungere un riferimento di servizio alla tua zona di rete.
- Attieniti alla seguente procedura per creare restrizioni basate sul contesto nella console.
Creazione di regole
All'interno dei servizi di infrastruttura VPC, ogni servizio figlio necessita di determinati attributi in una regola basata sul contesto.
Quando si utilizza l'API, Terraform o la CLI IBM Cloud per creare, aggiornare o eliminare restrizioni basate sul contesto dell'infrastruttur IBM Cloud, è possibile specificare la risorsa VPC Infrastructure di destinazione utilizzando gli attributi della risorsa.
Vedi Attributi della risorsa VPC per gli attributi della risorsa che corrispondono alle singole risorse VPC.
È possibile selezionare una risorsa immettendo l'ID dell'oggetto. In alternativa, è possibile utilizzare il carattere jolly * per selezionare tutte le risorse applicabili. Ad esempio, l'attributo vpcId:* imposta le
restrizioni basate sul contesto da applicare a tutti i VPC nell'account. È anche possibile specificare a quale gruppo di risorse viene applicato il criterio nel comando.
Creazione di regole tramite l'API
Esaminare le seguenti richieste di esempio per creare regole. Per ulteriori informazioni sul v1/rules API, consulta la documentazione API.
Dopo aver creato una regola, potrebbero essere necessari fino a 10 minuti prima di poter aggiornare tale regola.
Il seguente esempio di payload crea una regola che protegge le istanze del server virtuale e consente l'accesso solo dalla zona di rete specificata attraverso un endpoint privato l'accesso solo dalla zona di rete specificata attraverso un endpoint privato.
{
"contexts": [
{
"attributes": [
{
"name": "endpointType",
"value": "private"
},
{
"name": "networkZoneId",
"value": "45ec64065b7c2bf84b3edec803335111"
}
]
}
],
"resources": [
{
"attributes": [
{
"name": "resourceGroupId",
"value": "1171749e3a8545069d04e6fca1ded18f"
},
{
"name": "serviceName",
"value": "is"
},
{
"name": "instanceId",
"value": "*"
}
]
}
]
}
Creazione di regole tramite la CLI
- Per creare regole dalla CLI, installa il plug-in CLI CBR.
- Utilizzare il
ibmcloud cbr rule-createcomando per creare regole CBR. Per ulteriori informazioni, consultare il manuale CBR CLI reference.
I seguenti esempi sono regole di applicazione. È possibile creare report - solo aggiungendo --enforcement-mode report.
Il seguente comando CLI di esempio crea una regola di limitazione basata sul contesto per tutte le istanze del server virtuale nell'account corrente:
ibmcloud cbr rule-create --zone-id a7eeb5dd8e6bdce670eba1afce18e37f --description "Test CBR for VSIs" --service-name is --resource-attributes "instanceId=*"
Il seguente comando CLI di esempio crea una regola di limitazione basata sul contesto per uno specifico volume di archiviazione blocchi nell'account corrente:
ibmcloud cbr rule-create --zone-id a7eeb5dd8e6bdce670eba1afce18e37f --description "Test CBR for volume" --service-name is --resource-attributes "volumeId=UUID_OF_THE_VOLUME"
Il seguente comando della CLI di esempio crea una regola di limitazione basata sul contesto per tutte le istanze del server virtuale nell'account corrente e limita l'accesso agli endpoint privati:
ibmcloud cbr rule-create --context-attributes 'endpointType=private' --zone-id a7eeb5dd8e6bdce670eba1afce18e37f --description "Test CBR for VSIs" --service-name is --resource-attributes "instanceId=*"
Il seguente comando CLI di esempio crea una regola di limitazione basata sul contesto per tutte le istanze del server virtuale nel gruppo di risorse e limita l'accesso agli endpoint privati:
ibmcloud cbr rule-create --context-attributes 'endpointType=private' --zone-id a7eeb5dd8e6bdce670eba1afce18e37f --description "Test CBR for VSIs" --service-name is --resource-attributes "instanceId=*" --resource-group-id 1171749e3a8545069d04e6fca1ded18f
Creazione di regole nella console
-
Vai a Gestisci > Limitazioni basate sul contesto nella console IBM Cloud®.
-
Seleziona " Regole " e fai clic su " Crea ".
-
Seleziona VPC Infrastructure Services e fai clic su Next.
-
Applicare la regola a Tutte le risorse o Risorse specifiche. Per ulteriori informazioni, vedere Protezione delle risorse dei servizi di infrastruttura VPC. Fai clic su Continue.
-
Definire i tipi di endpoint consentiti.
- Mantenere l'attivazione / disattivazione impostata su No per consentire tutti i tipi di endpoint.
- Impostare l'attivazione su Sì per consentire solo tipi di endpoint specifici, quindi scegliere dall'elenco.
-
Selezionare una o più zone di rete esistenti oppure crearne una nuova facendo clic su Crea.
I contesti definiscono l'ubicazione da cui è possibile accedere alle risorse, collegando in modo efficace la zona di rete alla regola.
-
Fai clic su "Aggiungi " per aggiungere la tua configurazione al riepilogo. Fai clic su Next.
-
Denominare la regola e selezionare il modo in cui si desidera applicarla. Quindi, fai clic su Create.
Monitoraggio delle limitazioni basate sul contesto nei servizi dell'infrastruttura VPC
Il servizio di restrizione basato sul contesto genera registri di controllo ogni volta che viene applicata una politica basata sul contesto . Per ulteriori informazioni, consultare Limitazioni basate sul contesto di monitoraggio.
Risoluzione dei problemi non riusciti a causa di limitazioni basate sul contesto
403 Messaggi di errore non autorizzati
Quando una richiesta viene negata a causa di autorizzazioni di accesso non corrette o perché la richiesta proviene da fuori della zona di rete definita nella regola delle restrizioni basate sul contesto, la risposta di errore è simile agli esempi seguenti.
Errore 403 non autorizzato nella risposta CLI
Error code: not_authorized and
Error message: the provided token is not authorized
Trace ID: b266a31c-b359-4ecb-8b81-a27c1b2cdb7b
Errore 403 non autorizzato nella console dell' IBM Cloud
reference_id b266a31c-b359-4ecb-8b81-a27c1b2cdb7b
code not_authorized
message the provided token is not authorized
Errore 403 non autorizzato nella risposta API
"code":"not_authorized",
"message":"the provided token is not authorized to list floating-ips in this account"
"trace":"b266a31c-b359-4ecb-8b81-a27c1b2cdb7b"
Individuazione degli eventi di restrizione basati sul contesto
È possibile utilizzare il valore di Trace ID o Reference ID per cercare nella propria istanza di IBM Cloud Logs gli eventi generati dal servizio di restrizioni basate sul contesto. La sezione requestData.environment mostra l'indirizzo IP di origine della chiamata e altre informazioni che possono essere utilizzate per verificare perché l'autorizzazione è stata negata. I campi requestData.action e requestData.resource possono
essere utilizzati per determinare a quale risorsa sottostante è stato negato l'accesso.
L'esempio seguente è un evento di restrizione basato sul contesto. Alcuni campi sono stati rimossi per migliorare la leggibilità.
{
"level": "critical",
"action": "context-based-restrictions.policy.eval",
"message": "Context based restriction rendered a deny",
"severity": "critical",
"correlationId": "TXID-b266a31c-b359-4ecb-8b81-a27c1b2cdb7b-df2f912c-80a1-422c-8b17-6092651fea00",
"requestData": {
"action": "is.vpc.vpc.create",
"reqOrder": 0,
"environment": {
"attributes": {
"ipAddress": "192.168.0.1",
"networkType": "public"
}
},
"resource": {
"attributes": {
"accountId": "67db3d7ff3f34220b40e2d81480754c9",
"resource": "NEWRESOURCE",
"vpcId": "NEWRESOURCE",
"resourceGroupId": "d272ce832535498e9142b557ff8638ed",
"region": "au-syd",
"serviceName": "is",
"resourceType": "vpc"
}
},
"subject": {
"attributes": {
"scope": "ibm openid",
"token.account.bss": "67db3d7ff3f34220b40e2d81480754c9",
"id": "IBMid-550009FB7N"
}
}
},
"responseData": {
"decision": "Deny",
"isEnforced": true
}
}
È quindi possibile utilizzare lo stesso ID Trace o l'ID di riferimento per esaminare l'evento specifico del servizio Infrastruttura VPC nell'istanza IBM Cloud Logs.
{
"action": "is.vpc.vpc.create",
"outcome": "failure",
"message": "Virtual Private Cloud: create vpc -failure",
"severity": "critical",
"dataEvent": false,
"logSourceCRN": "crn:v1:bluemix:public:is:au-syd:a/67db3d7ff3f34220b40e2d81480754c9::vpc:",
"saveServiceCopy": true,
"initiator": {
"id": "IBMid-ABCDEFGH",
"typeURI": "service/security/account/user",
"name": "test@ibm.com",
"authnName": "test",
"authnId": "IBMid-ABCDEFGH",
"host": {
"address": "192.168.0.1",
"addressType": "IPv4"
},
"credential": {
"type": "token"
}
},
"target": {
"id": "crn:v1:bluemix:public:is:au-syd:a/67db3d7ff3f34220b40e2d81480754c9::vpc:",
"typeURI": "is.vpc/vpc",
"name": "",
"resourceGroupId": "crn:v1:bluemix:public:resource-controller::a/67db3d7ff3f34220b40e2d81480754c9::resource-group:d272ce832535498e9142b557ff8638ed"
},
"reason": {
"reasonCode": 403,
"reasonType": "Forbidden",
"reasonForFailure": "Your access token is invalid or does not have the necessary permissions to perform this task"
},
"requestData": {
"generation": "2",
"requestId": "b266a31c-b359-4ecb-8b81-a27c1b2cdb7b"
},
"responseData": {
"responseURI": "/v1/vpcs/"
}
}
È anche possibile cercare gli eventi utilizzando un identificativo di risorsa. Un ID risorsa è un UUID ed è l'ultimo identificativo in un CRN. Vedi l'esempio seguente
crn:v1:bluemix:public:is:au-syd:a/67db3d7ff3f34220b40e2d81480754c9::vpc:<resourceID>
Le richieste per le risorse di provisioning non contengono un ID risorsa.
Se non trovi un evento di restrizione basato sul contesto nel IBM Cloud Logs, è possibile che l'accesso sia stato negato a causa delle politiche di accesso IAM. Per ulteriori informazioni, consulta la guida introduttiva a VPC IAM.
Impatto del piano dati VPN da client a sito con restrizioni basate sul contesto
Se si abilitano l'ID utente e il codice di accesso nella configurazione dell'autenticazione client per una VPN client-to-site e si creano
regole basate sul contesto sulle risorse VPC, la connessione client alla VPN è influenzata dalle restrizioni basate sul contesto. Se l'IP remoto del client VPN non è presente nella Zona di rete, la connessione al server
VPN restituisce un errore Auth Failed.
Una volta che il client VPN si connette al server VPN, le richieste all'endpoint VPE o al CSE (Cloud Service Endpoint) vengono controllate con restrizioni basate sul contesto. Inoltre, l'IP di origine delle richieste è l'indirizzo di origine dell'endpoint del servizio cloud VPC. Assicurarsi che gli indirizzi di origine CSE VPC si trovino nella zona di rete CBR; altrimenti, la richiesta viene negata.
Limitazioni
- Le restrizioni basate sul contesto proteggono solo le azioni associate alle API dei servizi di infrastruttura VPC o al
isplug-in della CLI di IBM. Sono supportate anche le opzioni SDK e Terraform. Le azioni associate alle seguenti API della piattaforma non sono protette da restrizioni basate sul contesto: - Quando crei una regola, potrebbero essere necessari fino a 10 minuti per essere applicata.
- A causa di una limitazione che è in fase di risoluzione, non devono essere applicate restrizioni basate sul contesto per le API Secrets Manager quando si utilizza il servizio Load balancer for VPC. Perché ciò comporta il mancato allegato dei certificati al listener associato al bilanciatore di carico.