Estabelecendo autorizações de serviço a serviço para Block Storage for VPC
Crie autorizações entre serviços no Block Storage for VPC e no Key Protect para criptografia gerenciada pelo cliente ou com o serviço de backup para instantâneos automatizados. Configure as autorizações do IAM para conceder as permissões de acesso necessárias.
Visão geral
Em uma autorização, o serviço de origem é o serviço com acesso concedido ao serviço de destino. As funções que você seleciona definem o nível de acesso para o serviço de origem. O serviço de destino é o serviço ao qual você está concedendo permissão para ser acessado pelo serviço de origem com base nas funções que você atribui. Geralmente, um serviço de origem pode estar na mesma conta em que a autorização é criada ou em outra conta. A autorização deve ser criada na conta que possui o serviço de destino.
Para poder criar um volume criptografado com CRKs gerenciados pelo cliente, é necessário estabelecer a autorização de serviço a serviço entre o serviço de Bloco e o Serviço de Gerenciamento de Chaves de sua escolha.
As funções Hyper Protect Crypto Services estão obsoletas. Os clientes podem usar as instâncias existentes até 20 de março de 2027. Para obter mais informações, consulte “Descontinuação do IBM Cloud Hyper Protect Crypto Services ”. Para garantir proteção contínua, considere migrar suas chaves de criptografia existentes para uma instância dedicada do Key Protect. Para obter mais informações, consulte o Guia de migração.
Se você desejar criar capturas instantâneas de backup de seus volumes Block Storage for VPC, o serviço de backup precisará ser autorizado a trabalhar com os serviços Block Storage for VPC, Snapshots for VPC e Virtual Server for VPC. Para obter mais informações, consulte Estabelecendo autorizações de serviço para serviço para o serviço de Backup
Para obter mais informações sobre autorizações, consulte “Usando autorizações para conceder acesso entre serviços e funções de usuário ”.
Criando autorização entre serviços para criptografia gerenciada pelo cliente no console
Quando a autorização é necessária para a criptografia entre contas, ela deve ser criada na conta de destino que possui a chave de criptografia.
- No console do IBM Cloud, acesse Gerenciar > Acesso (IAM).
- No painel lateral, clique em Gerenciar acesso e selecione Autorizações.
- Na página Gerenciar autorizações, clique em Criar.
- Na seção Origem, selecione a Conta de origem A conta de origem é onde os volumes de armazenamento em bloco devem ser criados.
- Se o objetivo for permitir que outra conta use um CRK da conta de destino, selecione Specific account (Conta específica ) e digite o ID da conta com 32 caracteres. Em seguida, clique em Avançar.
- Caso contrário, selecione Esta conta Em seguida, clique em Avançar.
- Para o serviço de origem, selecione Cloud Block Storage na lista. Clique em Avançar.
- Selecione o escopo clicando em Todos os recursos.
- Clique em Avançar.
- Para o serviço de destino, selecione KeyProtect na lista.
- Selecione a função “
Reader”. - Marque a caixa para permitir que a autorização seja delegada pelos serviços de origem e dependentes
- Clique em Revisar e inspecione suas opções..
- Clique em Autorizar.
Criação de autorização de serviço a serviço para restauração entre contas no console
As etapas a seguir autorizam o serviço Block Storage de uma conta a usar um instantâneo criado por outra conta para restaurar volumes. As etapas precisam ser executadas pela conta proprietária do snapshot a ser compartilhado. A conta receptora
deve garantir que o usuário administrador tenha a função SnapshotRemoteAccountRestorer no IAM antes de iniciar uma restauração de volume com o CRN do snapshot compartilhado.
- Na página Gerenciar autorizações, clique em Criar.
- Na página “Conceder autorização de serviço ”, selecione a conta de origem.
- Como o objetivo é permitir o uso de um instantâneo de outra conta, selecione uma conta específica.
- Digite o ID da conta, composto por 32 caracteres.
- Clique em Avançar.
- Para o serviço de origem, selecione Serviços de infraestrutura VPC na lista. Clique em Avançar.
- Selecione o escopo clicando em Recursos específicos.
- Selecione o tipo de recurso e Block Storage for VPC.
- Clique em Avançar.
- Para o serviço de destino, selecione VPC Infrastructure Services na lista.
- Selecione o escopo clicando em Recursos específicos.
- Clique em “Selecionar um atributo ”.
- Na lista, selecione Tipo de recurso.
- No próximo campo, selecione Block Storage Snapshots for VPC.
- Se você quiser restringir a autorização a um instantâneo específico, clique em Adicionar uma condição.
- Clique em Select an attribute e selecione Snapshot ID.
- Insira o ID do snapshot. Clique em Avançar
- Selecione a função “
Snapshot Remote Account Restorer”. - Clique em Revisar e inspecione suas opções..
- Clique em Autorizar.
Criando autorização de serviço para serviço para a criptografia gerenciada pelo cliente a partir da CLI
Execute o comando ibmcloud iam authorization-policy-create para criar políticas de autorização para que o serviço Block interaja com os Serviços de Gerenciamento de Chaves ( Key Protect ). O serviço de origem é server-protect e o serviço de destino é kms. A função que você precisa atribuir é Reader. O exemplo a seguir cria uma política de autorização entre o serviço 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
Para listar as autorizações de serviço já em vigor para a conta, execute o comando ibmcloud iam authorization-policies. O exemplo a seguir mostra que o serviço Block pode ser criptografado com um CRK armazenado em Key Protect ou
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
Para obter mais informações sobre todos os parâmetros disponíveis para esse comando, consulte ibmcloud iam authorization-policy-create.
Criando autorização entre serviços para criptografia entre contas a partir da CLI
Quando a autorização é necessária para a criptografia entre contas, ela deve ser criada na conta de destino que possui a chave de criptografia. Execute o comando ibmcloud iam authorization-policy-create para criar
políticas de autorização para que o serviço Block da conta de origem possa interagir com os Serviços de Gerenciamento de Chaves ( Key Protect ) da conta de destino. O serviço de origem é server-protect e o serviço de destino é
kms. A função que você precisa atribuir é Reader. O exemplo a seguir cria uma política de autorização entre o serviço Block e Key Protect.
- Crie um arquivo JSON com as seguintes informações para as políticas de autorização em sua pasta local Documentos.
'{ "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", }' - Em seguida, use os arquivos JSON para executar o comando CLI a seguir.
A autorização entre contas é unidirecional e específica para a chave e o serviço. Quando a Conta A autoriza que sua chave seja usada pelo serviço de arquivos da Conta B, a Conta B pode usar o CRK da Conta A para criptografar os compartilhamentos da Conta B. No entanto, a conta A não pode usar as chaves raiz da conta B para criptografar os compartilhamentos da conta A.ibmcloud iam authorization-policy-create --file ~/Documents/policy.json
Criação de autorização de serviço a serviço para restauração entre contas a partir da CLI
Quando a autorização for necessária para a restauração de dados entre contas, ela deverá ser criada na conta de destino que possui o snapshot. Execute o comando ibmcloud iam authorization-policy-create para autorizar o serviço Block
Storage da conta de origem a usar um instantâneo que foi criado pela conta de destino para restaurar volumes. A conta receptora deve garantir que seu usuário administrador tenha a função SnapshotRemoteAccountRestorer no IAM antes
de iniciar uma restauração de volume com o CRN do instantâneo compartilhado.
- Crie um arquivo JSON com as seguintes informações para as políticas de autorização em sua pasta local Documentos.
'{ "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":"*"}]}], }' - Em seguida, use os arquivos JSON para executar o comando CLI a seguir.
ibmcloud iam authorization-policy-create --file ~/Documents/policy.json
Criando autorização de serviço a serviço para criptografia gerenciada pelo cliente com a API
Envie uma solicitação à API de Gerenciamento de Políticas do IAM para criar a autorização de serviço para serviço, permitindo que o serviço Block do volume de origem interaja com uma instância do Serviço de Gerenciamento de Chaves.
-
O exemplo a seguir mostra como é possível autorizar o serviço de bloco
is.server-protect(origem) a interagir com o serviço Key Protectkms(destino) com a função 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"}]}] }'
Criação de autorização entre serviços para criptografia entre contas com a API
Envie uma solicitação à API de Gerenciamento de Políticas do IAM para criar a autorização entre serviços, de modo que o serviço “ Block Storage ” da conta de origem possa interagir com uma instância do Serviço de Gerenciamento de Chaves da conta de destino. A solicitação deve ser feita a partir da conta que possui a chave raiz do cliente em seu KMS.
-
O exemplo a seguir mostra como você pode autorizar o serviço Block
is.server-protectde uma conta (fonte) para interagir com oHyper Protect Crypto Services serviçohs-cryptode outra conta (alvo) com o_ Leitor_ e_ Delegador de Autorização_ papéis.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"}]}], }'
A autorização entre contas é unidirecional e específica para a chave e o serviço. Quando a Conta A autoriza que sua chave seja usada pelo serviço de arquivos da Conta B, a Conta B pode usar o CRK da Conta A para criptografar os compartilhamentos da Conta B. No entanto, a conta A não pode usar as chaves raiz da conta B para criptografar os compartilhamentos da conta A.
Criação de autorização de serviço a serviço para restauração entre contas com a API
A solicitação de API a seguir autoriza o serviço Block Storage da conta de origem a usar um instantâneo que foi criado pela conta de destino para restaurar volumes. Essa chamada precisa ser emitida pela conta que possui o instantâneo. A conta
de origem receptora deve garantir que o usuário administrador tenha a função SnapshotRemoteAccountRestorer no IAM antes de iniciar uma restauração de volume com o CRN do snapshot compartilhado.
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 você quiser restringir o acesso a um instantâneo específico, use o ID do instantâneo em vez de * ao definir seus recursos.
Criando autorização de serviço a serviço para criptografia gerenciada pelo cliente com o Terraform
Crie uma política de autorização entre o serviço de Bloco e os serviços de gerenciamento de chave usando o argumento de recurso ibm_iam_authorization_policy em seu arquivo main.tf
O exemplo a seguir cria uma política de autorização entre o serviço Block e o Key Protect quando aplicado.
resource "ibm_iam_authorization_policy" "mypolicy4keyprotect" {
source_service_name = "server-protect"
target_service_name = "kms"
roles = ["Reader"]
}
Para obter mais informações sobre os argumentos e atributos, consulte a documentação do Terraform para recursos de autorização..
Criação de autorização serviço a serviço para criptografia entre contas com Terraform
-
Terraform suporta a configuração de duas contas diferentes paraIBM fornecedor. O provedor sem um alias é considerado o provedor padrão. Veja o exemplo a seguir, em que duas contas IBM são especificadas, e a segunda conta usa o alias
team_account. Essa configuração deve ser chamada deibm.team_accountmais tarde.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 }Para obter mais informações sobre os argumentos e atributos, consulte IBM Cloud fornecedor.
-
Para criar a autorização IAM entre o serviço de gerenciamento de chaves de uma conta para o serviço de armazenamento em bloco em uma conta diferente, use o recurso
ibm_iam_authorization_policy. O exemplo a seguir cria uma autorização entre o serviço Key Protect e o serviço de arquivos das duas contas.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" }Este recurso terraform também deve incluir o alias do provedor (em nosso exemplo,
ibm.team_account) com a contaibmcloud_api_keyonde a chave de criptografia pertence.Para obter mais informações sobre os argumentos e atributos, consulte ibm_iam_authorization_policy.
Criação de autorização de serviço a serviço para restauração entre contas Terraform
-
Configure as duas contas IBM para o provedor IBM. Veja o exemplo da seção anterior.
-
Para criar a autorização IAM para o serviço Block Storage de uma conta para usar um instantâneo criado por outra conta para restaurar volumes, use o recurso
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" }Este recurso terraform também deve incluir o alias do provedor (em nosso exemplo,
ibm.team_account) com a contaibmcloud_api_keyonde a chave de criptografia pertence.Para obter mais informações sobre os argumentos e atributos, consulte ibm_iam_authorization_policy.