Come stabilire le autorizzazioni service - to - service per Block Storage for VPC

Creare autorizzazioni da servizio a servizio tra Block Storage for VPC e Key Protect per la crittografia gestita dal cliente, oppure con il servizio Backup per le istantanee automatiche. Configurare le autorizzazioni IAM per concedere i permessi di accesso necessari.

Panoramica

In un'autorizzazione, il servizio di origine è il servizio a cui viene concesso l'accesso al servizio di destinazione. I ruoli selezionati definiscono il livello di accesso per il servizio di origine. Il servizio di destinazione è il servizio a cui stai concedendo l'autorizzazione per essere acceduto dal servizio di origine in base ai ruoli che assegni. In genere, un servizio di origine può trovarsi nello stesso account in cui viene creata l'autorizzazione o in un altro account. L'autorizzazione deve essere creata nell'account che possiede il servizio di destinazione.

Per poter creare un volume crittografato con le CRK gestite dal cliente, devi stabilire l'autorizzazione service - to - service tra il servizio Block e il Key Management Service di tua scelta.

Le funzioni Hyper Protect Crypto Services sono obsolete. I clienti possono utilizzare le istanze esistenti fino al 20 marzo 2027. Per ulteriori informazioni, consultare la sezione " Deprecazione di IBM Cloud Hyper Protect Crypto Services ". Per garantire una protezione continua, ti consigliamo di trasferire le tue chiavi di crittografia esistenti su un'istanza dedicata di Key Protect. Per ulteriori informazioni, consultare la Guida alla migrazione.

Se desideri creare istantanee di backup dei tuoi volumi Block Storage for VPC, il servizio di backup deve essere autorizzato a utilizzare i servizi Block Storage for VPC, le istantanee per VPC e Virtual Server for VPC. Per ulteriori informazioni, vedi Definizione delle autorizzazioni service - to - service per il servizio di backup.

Per ulteriori informazioni sulle autorizzazioni, consultare la sezione " Utilizzo delle autorizzazioni per concedere l'accesso tra servizi e ruoli utente ".

Creazione dell'autorizzazione da servizio a servizio per la crittografia gestita dal cliente nella console

Quando l'autorizzazione è necessaria per la crittografia tra account, l'autorizzazione deve essere creata nell'account di destinazione che possiede la chiave di crittografia.

  1. Nella console di IBM Cloud, vai su Gestisci > Accesso (IAM).
  2. Dal pannello laterale, fare clic su Gestisci accesso e selezionare Autorizzazioni.
  3. Nella pagina Gestisci autorizzazioni, fare clic su Crea.
  4. Nel Fonte sezione, selezionare il Conto di origine. L'account di origine è quello in cui devono essere creati i volumi di archiviazione a blocchi.
    • Se l'obiettivo è consentire a un altro account di utilizzare un CRK dell'account di destinazione, selezionare Account specifico e inserire l'ID account di 32 caratteri. Poi, fai clic su Avanti.
    • Altrimenti seleziona Questo profilo. Poi, fai clic su Avanti.
  5. Per il servizio di origine, selezionare Cloud Block Storage dall'elenco. Fai clic su Next.
    1. Selezionate l'ambito facendo clic su Tutte le risorse.
    2. Fai clic su Next.
  6. Per il servizio di destinazione, selezionare KeyProtect dall'elenco.
  7. Seleziona il ruolo “ Reader ”.
  8. Selezionare la casella per abilitare l'autorizzazione ad essere delegata dai servizi di origine e dipendenti.
  9. Clic Revisione e controlla le tue scelte.
  10. Fai clic su Autorizza.

Creazione dell'autorizzazione da servizio a servizio per il ripristino di più account nella console

I passaggi seguenti autorizzano il servizio Block Storage di un account a utilizzare un'istantanea creata da un altro account per ripristinare i volumi. I passaggi devono essere eseguiti dall'account che possiede l'istantanea da condividere. L'account ricevente deve assicurarsi che il proprio utente amministratore abbia il ruolo SnapshotRemoteAccountRestorer in IAM prima di avviare un ripristino del volume con il CRN dell'istantanea condivisa.

  1. Nella pagina Gestisci autorizzazioni, fare clic su Crea.
  2. Nella pagina " Concedi autorizzazione al servizio ", seleziona l'account di origine.
    1. Poiché l'obiettivo è consentire l'utilizzo di un'istantanea da un altro account, selezionare un Account specifico.
    2. Inserisci l'ID account composto da 32 caratteri.
    3. Fai clic su Next.
  3. Per il servizio di origine, selezionare VPC Infrastructure Services dall'elenco. Fai clic su Next.
    1. Selezionate l'ambito facendo clic su Risorse specifiche.
    2. Selezionare il tipo di risorsa e Block Storage for VPC.
    3. Fai clic su Next.
  4. Per il servizio di destinazione, selezionare VPC Infrastructure Services dall'elenco.
    1. Selezionate l'ambito facendo clic su Risorse specifiche.
    2. Fai clic su " Seleziona un attributo ".
    3. Dall'elenco, selezionare Tipo di risorsa.
    4. Nel campo successivo, selezionare Block Storage Snapshots for VPC.
    5. Se si desidera limitare l'autorizzazione a un'istantanea specifica, fare clic su Aggiungi una condizione.
      1. Fare clic su Seleziona un attributo e selezionare ID snapshot.
      2. Inserisci l'ID dello snapshot. Fai clic su Next
  5. Seleziona il ruolo “ Snapshot Remote Account Restorer ”.
  6. Clic Revisione e controlla le tue scelte.
  7. Fai clic su Autorizza.

Creazione dell'autorizzazione service - to - service per la crittografia gestita dal cliente dalla CLI

Eseguire il comando ibmcloud iam authorization-policy-create per creare criteri di autorizzazione che consentano al servizio Block di interagire con Key Management Services ( Key Protect ). Il servizio di origine è server-protect e il servizio di destinazione è kms. Il ruolo che devi assegnare è " Reader". L'esempio seguente crea una politica di autorizzazione tra il servizio Block e Key Protect.

ibmcloud iam authorization-policy-create server-protect kms Reader
Creating authorization policy under account a1234567 as test.user@ibm.com...
OK

Per elencare le autorizzazioni del servizio già presenti per l'account, esegui il comando ibmcloud iam authorization-policies. L'esempio seguente mostra che il servizio Block può essere crittografato con un CRK memorizzato in Key Protect o Hyper Protect Crypto Services.

ibmcloud iam authorization-policies
Getting authorization policies under account a1234567 as test.user@ibm.com...
OK
ID:                        1f722de4-c3e6-4765-b0d3-482ec77a04f8
Source service name:       server-protect
Source service instance:   All instances
Target service name:       kms
Target service instance:   51042d7f-f0df-4915-bd39-6a49957c9175
Roles:                     Reader

Per ulteriori informazioni su tutti i parametri disponibili per questo comando, consulta ibmcloud iam authorization - policy - create.

Creazione dell'autorizzazione da servizio a servizio per la crittografia tra account dalla CLI

Quando l'autorizzazione è necessaria per la crittografia tra account, l'autorizzazione deve essere creata nell'account di destinazione che possiede la chiave di crittografia. Eseguire il comando ibmcloud iam authorization-policy-create per creare criteri di autorizzazione che consentano al servizio Block dell'account di origine di interagire con Key Management Services ( Key Protect ) dell'account di destinazione. Il servizio di origine è server-protect e il servizio di destinazione è kms. Il ruolo che devi assegnare è " Reader". L'esempio seguente crea una politica di autorizzazione tra il servizio Block e Key Protect.

  1. Creare un file JSON con le seguenti informazioni per i criteri di autorizzazione nella cartella Documenti locale.
    '{
       "description":"Reader and Delegator role for KeyProtect service instance",
       "resources": [
          {"attributes":[
             {"name":"Account-A-CRK","operator":"stringEquals","value":"<CRK-Account-A-ID>"},
             {"name":"Hyper-Protect-Crypto-Services","operator":"stringEquals","value":"kms"}]}],
       "roles": [
          {"role_id":"crn:v1:bluemix:public:iam::::role:AuthorizationDelegator"},
          {"role_id":"crn:v1:bluemix:public:iam::::serviceRole:Reader"}],
       "subjects": [
          {"attributes": [
             {"name":"Cloud Block Storage","value":"server-protect"},
             {"name":"Account-B","value":"<Account-B-ID>"}]}],
       "type":"authorization",
    }'
    
  2. Quindi, utilizza i file JSON per eseguire il seguente comando CLI.
    ibmcloud iam authorization-policy-create --file ~/Documents/policy.json
    
    L'autorizzazione trasversale è unidirezionale e specifica per chiave e servizio. Quando l'account A autorizza l'utilizzo della propria chiave da parte del servizio file dell'account B, quest'ultimo può utilizzare il CRK dell'account A per crittografare le azioni dell'account B. Tuttavia, l'account A non può utilizzare le chiavi di root dell'account B per crittografare le azioni dell'account A.

Creazione dell'autorizzazione da servizio a servizio per il ripristino di più account dalla CLI

Quando l'autorizzazione è necessaria per il ripristino dei dati tra conti, l'autorizzazione deve essere creata nell'account di destinazione che possiede l'istantanea. Eseguire il comando ibmcloud iam authorization-policy-create per autorizzare il servizio Block Storage dell'account di origine a utilizzare una snapshot creata dall'account di destinazione per ripristinare i volumi. L'account ricevente deve assicurarsi che il proprio utente amministratore abbia il ruolo SnapshotRemoteAccountRestorer in IAM prima di avviare un ripristino del volume con il CRN dell'istantanea condivisa.

  1. Creare un file JSON con le seguenti informazioni per i criteri di autorizzazione nella cartella Documenti locale.
    '{
         "type":"authorization",
         "description":"Providing the Block Storage service access to restore from a Snapshot of another account ",
         "subjects": [{"attributes": [
                 {"name":"Block Storage for VPC","value":"server-protect"},
                 {"name":"Remote-restorer-account","value":"<Remote-Restorer-Account-ID>"}]}],
         "roles": [{"role_id":"crn:v1:bluemix:public:iam::::role:SnapshotRemoteAccountRestorer"}],
         "resources": [{"attributes": [
                 {"name":"Snaphot-owner-account","operator":"stringEquals","value":"<Snapshot-Owner-Account-ID>"},
                 {"name":"snapshotId","operator":"stringEquals","value":"*"}]}],
    }'
    
  2. Quindi, utilizza i file JSON per eseguire il seguente comando CLI.
    ibmcloud iam authorization-policy-create --file ~/Documents/policy.json
    

Creazione dell'autorizzazione service - to - service per la crittografia gestita dal cliente con l'API

Invia una richiesta all'API di gestione delle policy IAM per creare l'autorizzazione da servizio a servizio che consenta al servizio Block del volume di origine di interagire con un'istanza del servizio di gestione delle chiavi.

  • Il seguente esempio mostra come puoi autorizzare il servizio Block is.server-protect (origine) a interagire con il servizio Key Protect kms (destinazione) con il ruolo Reader .

    curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H
    'Authorization: Bearer $TOKEN' -H
    'Content-Type: application/json' -d
    '{
      "type":"access",
      "description":"Reader role for the Block service to interact with the KeyProtect service.",
      "subjects": [{"attributes":[{"name":"Cloud Block Storage","value":"server-protect"}]}],
      "roles":[{"role_id":"crn:v1:bluemix:public:iam::::role:Reader"}],
      "resources":[{"attributes": [{"name":"KeyProtect","value":"kms"}]}]
      }'
    

Creazione dell'autorizzazione da servizio a servizio per la crittografia tra account con l'API

Invia una richiesta all'API di gestione delle politiche IAM per creare l'autorizzazione da servizio a servizio che consenta al servizio " Block Storage " dell'account di origine di interagire con un'istanza del servizio di gestione delle chiavi (Key Management Service) dell'account di destinazione. La richiesta deve essere effettuata dall'account che possiede la chiave root del cliente nel proprio KMS.

  • L'esempio seguente mostra come autorizzare il servizio Blocca is.server-protect di un account (fonte) per interagire con ilHyper Protect Crypto Services servizio hs-crypto di un altro account (destinazione) con il file_ Lettore_ E_ Delegatore dell'autorizzazione_ ruoli.

    curl -X POST "https://iam.cloud.ibm.com/v1/policies" \
      -H "Authorization: <Auth Token>" \
      -H 'Content-Type: application/json' \
      -d '{
         "type":"authorization",
         "description":"Reader and Delegator access to KeyProtect service instance",
         "subjects": [
           {"attributes":
             {"name":"Cloud Block Storage","value":"server-protect"},
             {"name":"Account-B","value":"<Account-B-ID>"}]}],
         "roles": [{"role_id":"crn:v1:bluemix:public:iam::::role:AuthorizationDelegator"},{"role_id":"crn:v1:bluemix:public:iam::::serviceRole:Reader"}],
         "resources": [
           {"attributes":[
             {"name":"Account-A-CRK","operator":"stringEquals","value":"<CRK-Account-A-ID>"},
             {"name":"Hyper-Protect-Crypto-Services","operator":"stringEquals","value":"kms"}]}],
         }'
    

L'autorizzazione trasversale è unidirezionale e specifica per chiave e servizio. Quando l'account A autorizza l'utilizzo della propria chiave da parte del servizio file dell'account B, quest'ultimo può utilizzare il CRK dell'account A per crittografare le azioni dell'account B. Tuttavia, l'account A non può utilizzare le chiavi di root dell'account B per crittografare le azioni dell'account A.

Creazione di un'autorizzazione da servizio a servizio per il ripristino di più account con l'API

La seguente richiesta API autorizza il servizio Block Storage dell'account di origine a utilizzare una snapshot creata dall'account di destinazione per ripristinare i volumi. Questa chiamata deve essere emessa dall'account che possiede lo snapshot. L'account sorgente ricevente deve assicurarsi che il proprio utente admin abbia il ruolo SnapshotRemoteAccountRestorer in IAM prima di avviare un ripristino del volume con il CRN dell'istantanea condivisa.

curl -X POST "https://iam.cloud.ibm.com/v1/policies"\
   -H 'Content-Type: application/json\
   -d '{
        "type":"authorization",
        "description":"Providing the Block Storage service access to restore from a Snapshot of another account ",
        "subjects": [{"attributes": [
                {"name":"BCloud Block Storage","value":"server-protect"},
                {"name":"Remote-restorer-account","value":"<Remote-Restorer-Account-ID>"}]}],
        "roles": [{"role_id":"crn:v1:bluemix:public:iam::::role:SnapshotRemoteAccountRestorer"}],
        "resources": [{"attributes": [
                {"name":"Snaphot-owner-account","operator":"stringEquals","value":"<Snapshot-Owner-Account-ID>"},
                {"name":"snapshotId","operator":"stringEquals","value":"*"}]}],
   }'

Quando si desidera limitare l'accesso a un'istantanea specifica, utilizzare l'ID dell'istantanea invece di * quando si definiscono le risorse.

Creazione dell'autorizzazione service - to - service per la crittografia gestita dal cliente con Terraform

Crea una politica di autorizzazione tra il servizio Block e i servizi di gestione delle chiavi utilizzando l'argomento della risorsa ibm_iam_authorization_policy nel file main.tf.

Il seguente esempio crea una politica di autorizzazione tra il servizio Block e Key Protect quando viene applicato.

resource "ibm_iam_authorization_policy" "mypolicy4keyprotect" {
  source_service_name  = "server-protect"
  target_service_name  = "kms"
  roles                = ["Reader"]
}

Per ulteriori informazioni sugli argomenti e gli attributi, consulta la documentazione Terraform per le risorse di autorizzazione.

Creazione dell'autorizzazione da servizio a servizio per la crittografia tra account con Terraform

  1. Terraform supporta la configurazione di due account diversi perIBM fornitore. Il provider senza alias è considerato il provider predefinito. Si veda il seguente esempio, in cui sono specificati due account IBM e il secondo account utilizza l'alias team_account. Tale configurazione deve essere denominata ibm.team_account Dopo.

    terraform {
      required_providers {
        ibm = {
          source = "IBM-Cloud/ibm"
          version = ">= 1.12.0"
        }
      }
    }
    provider "ibm" {
      ibmcloud_api_key = var.ibmcloud_api_key
      region           = var.region
      ibmcloud_timeout = var.ibmcloud_timeout
    }
    provider "ibm" {
      alias = "team_account"
      ibmcloud_api_key = var.ibmcloud_api_key_second_account
      region           = var.region
      ibmcloud_timeout = var.ibmcloud_timeout
    }
    

    Per ulteriori informazioni su argomenti e attributi, vedere IBM Cloud fornitore.

  2. Per creare l'autorizzazione IAM tra il servizio di gestione delle chiavi da un account al servizio di archiviazione a blocchi in un account diverso, utilizza la risorsa ibm_iam_authorization_policy. L'esempio seguente crea un'autorizzazione tra il servizio Key Protect e il servizio file dei due account.

    resource "ibm_iam_authorization_policy" "policy" {
        source_service_name = "server-protect"
        source_service_account = "<volume-account-id>"
        target_service_name = "kms"
        target_resource_instance_id = ibm_kms_key.key.instance_id
        roles               = ["Reader", "Authorization Delegator"]
        description         = "Authorization Policy"
    }
    

    Questa risorsa terraform deve includere anche l'alias del provider (nel nostro esempio,ibm.team_account ) con il conto ibmcloud_api_key a cui appartiene la chiave di crittografia.

    Per ulteriori informazioni su argomenti e attributi, vedere ibm_iam_authorization_policy.

Creazione dell'autorizzazione da servizio a servizio per il ripristino di account incrociati Terraform

  1. Configurare i due account IBM per il provider IBM. Si veda l'esempio della sezione precedente.

  2. Per creare l'autorizzazione IAM per il servizio Block Storage di un account per utilizzare un'istantanea creata da un altro account per ripristinare i volumi, utilizzare la risorsa ibm_iam_authorization_policy.

    resource "ibm_iam_authorization_policy" "policy" {
        source_service_name = "server-protect"
        source_service_account = "<volume-account-id>"
        target_service_name = "ibm_is_snapshot"
        target_resource_instance_id = ibm_is_snapshot.snapshot.instance_id
        target_service_account = "<snapshot-account-id>"
        roles               = ["SnapshotRemoteAccountRestorer"]
        description         = "Authorization Policy"
    }
    

    Questa risorsa terraform deve includere anche l'alias del provider (nel nostro esempio,ibm.team_account ) con il conto ibmcloud_api_key a cui appartiene la chiave di crittografia.

    Per ulteriori informazioni su argomenti e attributi, vedere ibm_iam_authorization_policy.

Passi successivi