Protezione del registro dei container di IBM 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 IBM Cloud® in base al contesto delle richieste di accesso. L'accesso alle risorse di IBM Cloud® Container Registry può essere controllato con restrizioni basate sul contesto e politiche di gestione delle identità e degli accessi (IAM).
Queste restrizioni funzionano con le tradizionali politiche IAM, che sono basate sull'identità, per fornire un altro livello di protezione. A differenza delle politiche IAM, le restrizioni basate sul contesto non assegnano accesso. Le limitazioni basate sui contesti verificano che una richiesta di accesso provenga da un contesto consentito configurato. Poiché sia le restrizioni di accesso IAM che quelle basate sul contesto applicano l'accesso, le restrizioni basate sul contesto offrono protezione anche in presenza di credenziali compromesse o gestite in modo non corretto. Per ulteriori informazioni, vedere Sicurezza a livelli con restrizioni basate sul contesto.
Un utente deve avere il ruolo di amministratore nel servizio Container Registry per creare, aggiornare o eliminare regole. Un utente deve anche avere il ruolo di Editor o Amministratore per le restrizioni basate sul contesto per creare, aggiornare o eliminare le zone di rete. Un utente con il ruolo di visualizzatore per le limitazioni basate sul contesto può aggiungere zone di rete a una regola.
Tutti gli eventi di audit dell'activity tracker che vengono generati provengono dalle restrizioni basate sul contesto, non da Container Registry. Per ulteriori informazioni, consultare Limitazioni basate sul contesto di monitoraggio.
Container Registry è un servizio integrato con restrizioni basate sul contesto. Per ulteriori informazioni, vedi Servizi integrati con restrizioni basate sul contesto.
Per scoprire come proteggere le tue risorse Container Registry con restrizioni basate sul contesto, consulta l'esercitazione Utilizzo delle restrizioni basate sul contesto per proteggere le tue risorse.
Come Container Registry si integra con le restrizioni basate sul contesto
Puoi creare restrizioni basate sul contesto per le risorse IBM Cloud Container Registry o per specifiche API. Con le limitazioni basate sul contesto, puoi proteggere le risorse, vedi Protezione di specifiche risorse.
Protezione di risorse specifiche
Quando configuri le restrizioni basate sul contesto, le restrizioni si applicano a tutto il servizio selezionato nell'account a meno che non selezioni un sottoinsieme di risorse. Container Registry supporta il seguente sottoinsieme di risorse:
resource type = namespace e resource id = <your_image_namespace>, dove <your_image_namespace> è lo spazio dei nomi della tua immagine. Per ulteriori informazioni sulle regole, vedi Creazione di regole.
Ad esempio, se la tua immagine è nel formato uk.icr.io/<my_project>/<my_image>:latest, dove <my_project> è il nome del tuo progetto e <my_image> è il nome dell'immagine, i tipi di
attributo sono quelli mostrati nella seguente tabella.
| Tipo di attributo | Operatore | Valore |
|---|---|---|
Region |
string equals |
London |
Resource Type |
string equals |
namespace |
Resource Name |
string equals |
<my_project> |
Il valore Nome risorsa è uno spazio dei nomi, come mostrato dal comando ibmcloud cr namespace-list.
Limitazioni
Le restrizioni basate sul contesto proteggono solo le azioni associate all'API IBM Cloud Container Registry e all'API Vulnerability Advisor 4 per l'API IBM Cloud Container Registry. Le azioni associate alle seguenti API della piattaforma non sono protette da limitazioni basate sul contesto. Fare riferimento alla documentazione dell'API per gli ID delle azioni specifiche.
Creazione di regole
Definisci le limitazioni per le risorse Container Registry creando delle regole.
Creazione di regole nella console di IBM Cloud
Per creare le regole nella console IBM Cloud, vedi Creazione di regole. Quando ti viene richiesto di scegliere un servizio, seleziona Container Registry. Puoi proteggere tutte le risorse o risorse specifiche, vedi Protezione di risorse specifiche.
I seguenti tipi di attributo per le risorse specifiche sono disponibili nella console IBM Cloud:
RegionResource TypeResource Name
Creazione di regole tramite l'interfaccia della riga di comando (CLI)
- Per creare regole dall'interfaccia a riga di comando (CLI), installare il plug-in CLI per le restrizioni basate sul contesto.
- È possibile utilizzare il
ibmcloud cbr rule-createcomando per creare regole per le limitazioni basate sul contesto. Per ulteriori informazioni, vedi Creazione di regole utilizzando la CLI.
Il seguente esempio crea una regola che punta al servizio Container Registry e consente l'accesso al tuo spazio dei nomi my_namespace solo sulla rete privata in us-south.
ibmcloud cbr rule-create --description 'Only allow access to my_namespace over the private network' --service-name container-registry --context-attributes endpointType=private --resource-attributes resourceType=namespace,resource=my_namespace --region us-south
Creazione di regole tramite l'API
Per creare le regole nell'API, consulta la documentazione API e Creazione delle regole utilizzando l'API.
Dopo aver creato una regola, potrebbero essere necessari fino a 10 minuti prima di poter aggiornare tale regola a causa della memorizzazione nella cache delle risposte TTL IAM.
Impostazione di politiche basate sulla regione per le restrizioni basate sul contesto
Per tutte le regioni diverse da global è possibile utilizzare il campo regione quando si crea una regola. Quindi, ad esempio, nella CLI per us-south utilizzi l'opzione --region us-south. Tuttavia, poiché
global è un'area geografica e non una regione, è necessario omettere l'opzione --region e aggiungere geography=global nel campo --resource-attributes.
Il seguente esempio mostra il comando in us-south, dove DESCRIPTION è la descrizione, ACCOUNT_ID è il tuo ID account IBM Cloud, NAMESPACE è lo spazio dei nomi e NETWORK_ZONE_ID è l'ID della zona di rete:
ibmcloud cbr rule-create --description "DESCRIPTION" --resource-attributes "accountId=ACCOUNT_ID,serviceName=container-registry,resourceType=namespace,resource=NAMESPACE" --context-attributes networkZoneId=NETWORK_ZONE_ID --output json --region us-south
Il seguente esempio mostra il comando in global, dove DESCRIPTION è la descrizione, ACCOUNT_ID è il tuo ID account IBM Cloud, NAMESPACE è lo spazio dei nomi e NETWORK_ZONE_ID è
l'ID della zona di rete:
ibmcloud cbr rule-create --description "DESCRIPTION" --resource-attributes "accountId=ACCOUNT_ID,serviceName=container-registry,resourceType=namespace,resource=NAMESPACE,geography=global" --context-attributes networkZoneId=NETWORK_ZONE_ID