Creare un'istanza

Puoi creare un'istanza di IBM® Key Protect for IBM Cloud® utilizzando la console IBM Cloud o la CLI IBM Cloud.

Panoramica

In Key Protect, un instance (a volte indicato come service instance) è un namespace.

Un namespace organizza chiavi in gruppi logici e fornisce isolamento e protezione tra i namespace.

  • Ad esempio, si può scegliere di avere due Key Protect istanze - una per il reparto finanza e una per la manifattura. Due istanze forniscono l'isolamento in modo che le chiavi in una sola unità aziendale non siano accessibili da altre unità aziendali.

Il termine instance è a volte utilizzato per descrivere risorse compatte, come server virtuali o istanze server virtuali per VPC. Un'istanza, in Key Protect dovrebbe non essere equiparata alle risorse compatte. A Key Protect istanza è un namespace.

Provisioning Key Protect Istanza standard o dedicata dalla console IBM Cloud

Per eseguire il provisioning di un'istanza di Key Protect dalla console IBM Cloud, completa la seguente procedura.

  1. Accedi al tuo account IBM Cloud.

  2. Fare clic su Catalogo per visualizzare l'elenco dei servizi disponibili su IBM Cloud.

  3. Cerca "Key Protect" nel campo Cerca il catalogo ... e clicca su Key Protect.

  4. Selezionare un piano Standard o Dedicato e fare clic su Crea per eseguire il provisioning di un'istanza di Key Protect nell'account, nella regione e nel gruppo di risorse in cui si è effettuato l'accesso. Per ulteriori informazioni sui prezzi, consultare la pagina Prezzi per Key Protect su IBM Cloud.

Se è necessario ripetere la stessa configurazione tra gli account o gli ambienti, è possibile automatizzarla con i moduli Terraform IBM. Il modulo Key Protect All-Inclusive è un'opzione che può fornire un'istanza insieme a chiavi e portachiavi. Per una panoramica, vedere Terraform IBM Modules.

Provisioning Key Protect dal IBM Cloud CLI

Puoi anche eseguire il provisioning di un'istanza di Key Protect utilizzando la CLI IBM Cloud.

Sebbene gli esempi seguenti utilizzino il piano " tiered-pricing ", è anche possibile distribuire le risorse in regioni selezionate utilizzando il piano " cross-region-resiliency ", che offre un ulteriore supporto di failover. Le regioni in cui questo piano è disponibile sono: us-south (situato a Dallas, Stati Uniti), jp-tok (situato a Tokyo, Giappone) e eu-de (situato a Francoforte, Germania). Non è possibile utilizzare questo piano per dispiegarsi in altre regioni.

Accesso tramite CLI

Accedere a IBM Cloud attraverso la IBM Cloud CLI. Questo è il conto utilizzato per questa ricorrenza di Key Protect.

Accedi

Effettuare il login con il comando login. Se questo non dovesse avere esito positivo, provare l'opzione --sso per effettuare il login con un ID federato (vedere la sezione successiva).

Questo esempio fallisce perché l'indirizzo email appartiene ad un ID federato.

ibmcloud login

Esempio

$ ibmcloud login
API endpoint: https://cloud.ibm.com
Region: us-south

Email> <email address>

Password>
Authenticating...
You are using a federated user ID, please use one time passcode ( ibmcloud login --sso ), or use API key ( ibmcloud --apikey key or @key_file ) to authenticate.

API endpoint:   https://cloud.ibm.com
Region:         us-south
Not logged in.
FAILED

Login con un ID federato

La registrazione con l'opzione --sso apre una finestra del browser (richiede un login) e crea un codice di accesso univoco. Il codice di accesso viene utilizzato per completare il processo di login.

ibmcloud login --sso

Esempio

$ ibmcloud login --sso
API endpoint: https://cloud.ibm.com
Region: us-south

Get One Time Code from https://identity-2.us-south.iam.cloud.ibm.com/identity/passcode to proceed.
Open the URL in the default browser? [Y/n] > Y
One Time Code > <paste the one-time passcode from your browser>
Authenticating...
OK

Select an account:
1. Account name (ea988d3289c24739a0977651b46fb145)
Enter a number> 1
Targeted account Account name (ea988d3289c24739a0977651b46fb145)

API endpoint:      https://cloud.ibm.com
Region:            us-south
User:              <email address>
Account:           Account name (ea988d3289c24739a0977651b46fb145)
Resource group:    No resource group targeted, use 'ibmcloud target -g RESOURCE_GROUP'
CF API endpoint:
Org:
Space:

Selezionare una regione e un gruppo di risorse

Selezionate la regione e il gruppo di risorse in cui desiderate creare un Key Protect istanza.

Il <resource_group_name> può essere Default (sensibile al maiuscolo).

ibmcloud target -r <region_name> -g <resource_group_name>

Esempio

$ ibmcloud target -r us-south -g Default
Targeted resource group Default

Switched to region us-south

API endpoint:      https://cloud.ibm.com
Region:            us-south
User:              <email address>
Account:           Account name (ea988d3289c24739a0977651b46fb145)
Resource group:    Default
CF API endpoint:
Org:
Space:

Fornitura di un'istanza pubblica

Fornitura di un'istanza pubblica Key Protect. La sezione successiva ha un esempio di provisioning di un'istanza private.

  • Gli endpoint pubblici sono fuori il IBM Cloud.

  • Gli endpoint privati sono all'interno il IBM Cloud.

Un'istanza pubblica accetta le richieste API da entrambi gli endpoint public and private. L'accesso alla rete pubblica è l'impostazione predefinita e viene utilizzato se una politica non è impostata.

Un'istanza privata accetta le richieste API da solo private endpoint.

Vedi Gestione delle politiche di accesso alla rete per saperne di più sull'accesso pubblico e privato.

Nota il GUID è l'ID istanza. In questo esempio, l'ID istanza è ea557753-a15b-4570-a9a3-1efefbd2d382.

ibmcloud resource service-instance-create <instance_name> kms tiered-pricing <region>

Esempio

# create a public service instance
$ ibmcloud resource service-instance-create <instance_name> kms tiered-pricing us-south
Creating service instance <instance_name> in resource group Default of account <account name> as <email address>...
OK
Service instance <instance_name> was created.

Name:             <instance_name>
ID:               crn:v1:bluemix:public:kms:us-south:a/ea988d3289c24739a0977651b46fb145:ea557753-a15b-4570-a9a3-1efefbd2d382::
GUID:             ea557753-a15b-4570-a9a3-1efefbd2d382
Location:         us-south
State:            active
Type:             service_instance
Sub Type:         kms
Allow Cleanup:    false
Locked:           false
Created at:       2020-05-31T15:04:50Z
Updated at:       2020-05-31T15:04:50Z
Last Operation:
                  Status    create succeeded
                  Message   Completed create instance operation

# list the service instances
$ ibmcloud resource service-instances
Retrieving instances with type service_instance in resource group Default in all locations under account <account name> as <email address>...
OK
Name                 Location   State    Type
<instance_name>      us-south   active   service_instance

# delete the public service instance
$ ibmcloud resource service-instance-delete <instance_name>
Deleting service instance <instance_name> in resource group Default under account <account name> as <email address>...
Really delete the service instance <instance_name> with ID crn:v1:bluemix:public:kms:us-south:a/ea988d3289c24739a0977651b46fb145:ea557753-a15b-4570-a9a3-1efefbd2d382::? [y/N] > y
OK
Service instance <instance_name> with ID crn:v1:bluemix:public:kms:us-south:a/ea988d3289c24739a0977651b46fb145:ea557753-a15b-4570-a9a3-1efefbd2d382:: is deleted successfully

Fornitura di un'istanza privata

Fornitura di un'istanza privata Key Protect.

Ricordiamo che un'istanza privata accetta le richieste API da soli endpoint privati, che sono all'interno del IBM Cloud. Non è possibile utilizzare CLI con istanza privata se si è al di fuori della IBM Cloud.

ibmcloud resource service-instance-create <instance_name> kms tiered-pricing <region> -p '{"allowed_network": "private-only"}'

Esempio

Una volta creata l'istanza privata, viene fatta una richiesta per creare una chiave. La richiesta non riesce perché l'utente non ha accesso all'istanza private dall'esterno del IBM Cloud.

L'opzione -p specifica un file JSON o una stringa JSON di parametri utilizzati per creare l'istanza di servizio.

# create a private service instance
$ ibmcloud resource service-instance-create <service-name> kms tiered-pricing us-south -p '{"allowed_network": "private-only"}'
Creating service instance <service-name> in resource group Default of account <account name> as <email address>...
OK
Service instance <service-name> was created.

Name:             <service-name>
ID:               crn:v1:bluemix:public:kms:us-south:a/ea988d3289c24739a0977651b46fb145:a152eee4-262e-4a39-ae13-a71b9882dcb6::
GUID:             a152eee4-262e-4a39-ae13-a71b9882dcb6
Location:         us-south
State:            active
Type:             service_instance
Sub Type:         kms
Allow Cleanup:    false
Locked:           false
Created at:       2020-05-31T15:10:23Z
Updated at:       2020-05-31T15:10:23Z
Last Operation:
                  Status    create succeeded
                  Message   Completed create instance operation

# list the service instances
$ ibmcloud resource service-instances
Retrieving instances with type service_instance in resource group Default in all locations under account <account name> as <email address>...
OK
Name                  Location   State    Type
<service-name>        us-south   active   service_instance

# list the private service instance
$ ibmcloud resource service-instance <service-name>
Retrieving service instance <service-name> in resource group Default under account <account name> as <email address>...
OK

Name:                  <service-name>
ID:                    crn:v1:bluemix:public:kms:us-south:a/ea988d3289c24739a0977651b46fb145:a152eee4-262e-4a39-ae13-a71b9882dcb6::
GUID:                  a152eee4-262e-4a39-ae13-a71b9882dcb6
Location:              us-south
Service Name:          kms
Service Plan Name:     tiered-pricing
Resource Group Name:   Default
State:                 active
Type:                  service_instance
Sub Type:              kms
Created at:            2020-05-31T15:10:23Z
Created by:            <email address>
Updated at:            2020-05-31T15:10:23Z
Last Operation:
                  Status    create succeeded
                  Message   Completed create instance operation

# list keys in the private service instance
$ ibmcloud kp keys -i a152eee4-262e-4a39-ae13-a71b9882dcb6
Retrieving keys...

FAILED

kp.Error: correlation_id='59578794-2b5b-48ca-9074-bbe23760d94a', msg='Unauthorized: The user does not have access to the specified resource'

# delete the private service instance
$ ibmcloud resource service-instance-delete <service-name>
Deleting service instance <service-name> in resource group Default under account <account name> as <email address>...
Really delete the service instance <service-name> with ID crn:v1:bluemix:public:kms:us-south:a/ea988d3289c24739a0977651b46fb145:a152eee4-262e-4a39-ae13-a71b9882dcb6::? [y/N] > y
OK
Service instance <service-name> with ID crn:v1:bluemix:public:kms:us-south:a/ea988d3289c24739a0977651b46fb145:a152eee4-262e-4a39-ae13-a71b9882dcb6:: is deleted successfully

Eliminazione di un'istanza con le chiavi esistenti

Non è possibile cancellare un'istanza di servizio che contiene chiavi.

Esempio

$ ibmcloud resource service-instance-delete <instance_name>
Deleting service instance <instance_name> in resource group Default under account <account name> as <email address>...
Really delete the service instance <instance_name> with ID crn:v1:bluemix:public:kms:us-south:a/ea988d3289c24739a0977651b46fb145:a152eee4-262e-4a39-ae13-a71b9882dcb6::? [y/N] > y
FAILED
Error Code: RC-ServiceBrokerErrorResponse
Message: [409, Conflict] Conflict: Instance contains 2 active keys. Remove all keys before de-provisioning

Operazioni successive

Per saperne di più sulla gestione programmatica delle chiavi,consultare il documento di riferimento dell'API Key Protect