Criando uma Instância

É possível criar uma instância de IBM® Key Protect for IBM Cloud® usando o console do IBM Cloud ou a CLI do IBM Cloud.

Visão geral

No Key Protect, uma instance (às vezes referida como uma service instance) é um namespace.

Um namespace organiza chaves em grupos lógicos e fornece isolamento e proteção entre namespaces.

  • Por exemplo, é possível optar por definir duas instâncias do Key Protect - uma para o departamento financeiro e uma para manufatura. As duas instâncias fornecem isolamento para que as chaves em uma unidade de negócios não sejam acessíveis por meio de outras unidades de negócios.

O termo instance às vezes é usado para descrever recursos de computação, como servidores virtuaisou instâncias de servidor virtual para VPC Uma instância no Key Protect não deve ser equiparada com recursos de cálculo. A instância do Key Protect é um namespace.

Provisionamento da instância Key Protect Standard ou Dedicated no console IBM Cloud

Para provisionar uma instância do Key Protect por meio do console do IBM Cloud, conclua as etapas a seguir.

  1. Efetue login na conta do IBM Cloud.

  2. Clique em Catálogo para visualizar a lista de serviços que estão disponíveis no IBM Cloud.

  3. Procure por " Key Protect " no campo Search the catalog... (Pesquisar no catálogo) e clique em Key Protect.

  4. Selecione um plano Standard ou Dedicated e clique em Create para provisionar uma instância do Key Protect na conta, na região e no grupo de recursos em que você está conectado. Para obter mais informações sobre preços, consulte a seção Preços para Key Protect em IBM Cloud.

Se você precisar repetir a mesma configuração entre contas ou ambientes, poderá automatizá-la com o curador Terraform IBM Módulos. O módulo Key Protect All-Inclusive é uma opção que pode fornecer uma instância juntamente com chaves e chaveiros. Para obter uma visão geral, consulte Terraform IBM Modules.

Provisionando o Key Protect por meio da CLI da IBM Cloud

Também é possível provisionar uma instância do Key Protect usando a CLI do IBM Cloud.

Embora os exemplos a seguir usem o plano tiered-pricing, você também pode implementar recursos em regiões selecionadas usando o plano cross-region-resiliency, que oferece suporte adicional a failover. As regiões em que esse plano está disponível são us-south (localizada em Dallas, Estados Unidos), jp-tok (localizada em Tóquio, Japão) e eu-de (localizada em Frankfurt, Alemanha). Você não pode usar esse plano para implantar em outras regiões.

Efetuar login usando a CLI

Efetue login no IBM Cloud por meio da IBM Cloud CLI. Esta é a conta usada para esta instância do Key Protect.

Login

Efetue login com o comando login. Se isso falhar, será necessário testar a opção --sso para efetuar login com um ID federado (consulte a próxima seção).

Este exemplo falha porque o endereço de e-mail pertence a um ID federado.

ibmcloud login

Exemplo

$ 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

Efetuar login com um ID federado

Efetuar login com a opção --sso abre uma janela do navegador (requer um login) e cria uma senha descartável. A senha é usada para concluir o processo de login.

ibmcloud login --sso

Exemplo

$ 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:

Selecionar uma região e um grupo de recursos

Selecione a região e o grupo de recursos no qual deseja criar uma instância do Key Protect.

A <resource_group_name> pode ser Default (com distinção entre maiúsculas e minúsculas).

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

Exemplo

$ 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:

Provisionar uma instância pública

Provisione uma instância pública do Key Protect. A próxima seção tem um exemplo de fornecimento de uma instância private.

  • Os terminais públicos estão fora da IBM Cloud.

  • Os terminais privados estão dentro da IBM Cloud.

Uma instância pública aceita solicitações de API de ambos os terminais, public and private. O acesso à rede pública é a configuração padrão a ser usada se uma política não for configurada.

Uma instância privada aceita solicitações de API somente de terminais private.

Consulte Gerenciando políticas de acesso à rede para aprender mais sobre o acesso público e privado.

Nota: o GUID é o ID da instância. Neste exemplo, o ID da instância é ea557753-a15b-4570-a9a3-1efefbd2d382.

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

Exemplo

# 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

Provisionar uma instância privada

Provisione uma instância privada do Key Protect.

Lembre-se de que uma instância privada aceita solicitações de API somente de terminais privados, que estão dentro da IBM Cloud. Não é possível usar a CLI com uma instância privada caso se esteja fora do IBM Cloud.

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

Exemplo

Após a criação de uma instância privada, é feita uma solicitação para criar uma chave. A solicitação falha porque o usuário não tem acesso à instância private de fora da IBM Cloud.

A opção -p especifica um arquivo JSON ou uma sequência JSON de parâmetros usados para criar a instância de serviço.

# 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

Excluindo uma instância com as chaves existentes

Não é possível excluir uma instância de serviço que contém chaves.

Exemplo

$ 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

O que vem a seguir

Para saber mais sobre como gerenciar suas chaves de forma programática,consulte o documento de referência da API Key Protect