IBM Cloud Docs
Restrições baseadas em contexto

Este documento descreve o processo de uso de restrições baseadas em contexto para proteger seus recursos Cloud Databases. Use este documento para preparar seus recursos para restrições baseadas em contexto. Cloud Databases não oferece regras de escopo para o plano de controle nesta fase atual de implementação.

Restrições baseadas em contexto

As restrições baseadas em contexto permitem que os proprietários e administradores de contas definam e apliquem restrições de acesso aos recursos do site IBM Cloud® com base no contexto das solicitações de acesso. O acesso aos recursos Cloud Databases pode ser controlado com restrições baseadas em contexto e políticas Identity and Access Management (IAM).

Essas restrições funcionam com as políticas tradicionais do IAM, que são baseadas na identidade, para fornecer uma camada extra de proteção. Ao contrário das políticas do IAM, as restrições baseadas no contexto não atribuem acesso. As restrições baseadas no contexto verificam se uma solicitação de acesso vem de um contexto permitido que você configura. Uma vez que o acesso do IAM e as restrições baseadas no contexto impõem o acesso, as restrições baseadas no contexto oferecem proteção mesmo em face de credenciais comprometidas ou mal gerenciadas. Para obter mais informações, consulte Quais são as restrições baseadas em contexto.

Um usuário deve ter a função de Administrador no serviço Cloud Databases para criar, atualizar ou excluir regras. Um usuário também deve ter a função Editor ou Administrador no serviço de restrições baseadas em contexto para criar, atualizar ou excluir zonas de rede. Um usuário com a função Viewer no serviço de restrições baseadas em contexto pode adicionar zonas de rede a uma regra.

Todos os eventos de registro de auditoria ou IBM Cloud Activity Tracker gerados são provenientes do serviço de restrições baseadas em contexto, e não de Cloud Databases. Cloud Databases suporta eventos de auditoria somente para interações do cliente com chamadas de endpoint de plataforma protegidas por restrições baseadas em contexto. Cloud Databases não oferece suporte a eventos de auditoria quando você ativa regras de restrições baseadas em contexto na API do plano de controle para suas instâncias. Para obter mais informações, consulte Monitoramento de restrições baseadas em contexto.

Para começar a proteger seus recursos Cloud Databases com restrições baseadas em contexto, consulte o tutorial Aproveitamento de restrições baseadas em contexto para proteger seus recursos.

Como Cloud Databases se integra às restrições baseadas em contexto

Você pode criar restrições baseadas em contexto para o serviço Cloud Databases, recursos específicos e APIs específicas.

Proteção de recursos Cloud Databases

Você pode criar regras de restrições baseadas em contexto para proteger regiões, grupos de recursos e instâncias específicas.

Região
Protege os recursos Cloud Databases em uma região específica. Se você incluir uma região em sua regra de restrições baseadas em contexto, os recursos nas zonas de rede que você associar à regra poderão interagir com os recursos somente nessa região. Se você usar a CLI, poderá especificar a opção --region para proteger os recursos em uma região específica. Se você usar a interface do usuário, poderá especificar Region nos atributos do recurso.
Grupos de recursos
Protege um grupo de recursos específico. Se você incluir um grupo de recursos em sua regra de restrições baseadas em contexto, os recursos nas zonas de rede que você associar à regra poderão interagir somente com os recursos desse grupo de recursos. O escopo de uma regra para um grupo de recursos específico está disponível somente para regras que protegem o tipo de API de cluster. Se você usar a CLI, poderá especificar a opção --resource-group-id para proteger os recursos em um grupo de recursos específico. Se você usar a interface do usuário, poderá especificar o grupo de recursos nos atributos do recurso.
Instância
Protege uma instância específica. Se você incluir uma instância em sua regra de restrições baseadas em contexto, os recursos nas zonas de rede que você associar à regra poderão interagir somente com os recursos dessa instância. O escopo de uma regra para uma instância específica está disponível somente para regras que protegem o tipo de API de cluster. Se você usar a CLI, poderá especificar a opção --service-instance para proteger as instâncias em um grupo de recursos específico. Se você usar a interface do usuário, poderá especificar a instância do serviço nos atributos do recurso.

Uso da interface de linha de comando (CLI)

Você pode criar e gerenciar restrições baseadas em contexto com o IBM Cloud CLI instalando o plug-in CLI de restrições baseadas em contexto.

Criando zonas de rede

Uma zona de rede representa uma lista de permissões de endereços IP onde uma solicitação de acesso é criada. Ele define um conjunto de um ou mais locais de rede que são especificados pelos atributos a seguir:

  • Endereços IP, que incluem endereços individuais, intervalos ou sub-redes.
  • VPCs.

Criação de zonas de rede na interface do usuário

  1. Vá para Gerenciar > Restrições baseadas em contexto no console IBM Cloud®.

  2. Selecione Zonas de rede.

  3. Clique em Criar.

  4. Dê um nome à sua zona de rede e forneça uma descrição.

  5. Digite seus endereços IP permitidos. Você pode inserir um único endereço IP, um intervalo de endereços IP ou um único CIDR.

    O campo Denied IP addresses (Endereços IP negados ) é opcional e deve incluir apenas as exceções contidas nos intervalos de IP que você fornecer no campo allowed IP addresses (Endereços IP permitidos).

  6. Escolha suas VPCs permitidas, selecionando quantas quiser.

  7. Fazer referência a um serviço: Você pode selecionar Cloud Databases como um serviço de origem para restrições baseadas em contexto, mas não como um serviço de destino. Por exemplo, você pode provisionar uma instância Cloud Databases usando BYOK de IBM® Key Protect for IBM Cloud®. Neste exemplo, Cloud Databases é a formação de origem e IBM® Key Protect for IBM Cloud® é a formação de destino. Em seguida, você criaria uma zona de rede com uma referência de serviço Cloud Databases e criaria uma regra associada à zona de rede que tem como alvo o serviço IBM® Key Protect for IBM Cloud®. Para adicionar uma referência de serviço Cloud Databases, para o Tipo de serviço, os serviços IAM são selecionados automaticamente. No menu suspenso Serviço, selecione um serviço específico Cloud Databases. Se a zona que você criar estiver associada a uma regra que tenha como alvo Cloud Databases, não será permitida uma referência de serviço.

As referências de serviço funcionam somente do serviço Key Protect para Cloud Databases.

Criar zonas de rede na CLI

Para criar zonas de rede na CLI, use o comando cbr-zone-create para adicionar recursos às zonas de rede. Para obter mais informações, consulte a referência da CLI sobre restrições baseadas em contexto.

Crie uma zona usando um comando como:

ibmcloud cbr zone-create --addresses=1.1.1.1,5.5.5.5 --name=<NAME>

Criação de zonas de rede no Terraform

Para criar zonas no Terraform, siga as instruções na documentação do provedor doIBM Cloud Terraform.

Exemplo de script do Terraform para criar uma zona CBR:

resource "ibm_cbr_zone" "cbr_zone" {
  account_id = "12ab34cd56ef78ab90cd12ef34ab56cd"
  addresses {
    type = "ipAddress"
    value = "169.23.56.234"
  }
  addresses {
    type = "ipRange"
    value = "169.23.22.0-169.23.22.255"
  }
  excluded {
    type  = "ipAddress"
    value = "169.23.22.10"
  }
  excluded {
    type  = "ipAddress"
    value = "169.23.22.11"
  }
  description = "this is an example of zone"
  excluded {
        type = "ipAddress"
        value = "value"
  }
  name = "an example of zone"
}

Atualizar zonas de rede na CLI

Atualize uma zona usando um comando como:

ibmcloud cbr zone-update <ZONE-ID> --addresses=1.2.3.4 --name=<NAME>

A atualização requer o ZONE-ID, não o nome da zona. Use o seguinte comando para listar suas zonas e recuperar o ZONE-ID relevante:

ibmcloud cbr zones

O comando zone-update é uma substituição. Inclua todos os campos obrigatórios como se estivesse criando a regra do zero. Se você omitir algum campo obrigatório, a regra substituirá os campos ausentes como vazios, e a regra poderá falhar porque alguns desses campos são obrigatórios, independentemente de estarem alterando a regra.

Excluir zonas de rede na CLI

Exclua uma zona usando um comando como:

ibmcloud cbr zone-delete <ZONE-ID>

Criando regras

As regras restringem o acesso a recursos de nuvem específicos com base em atributos e contextos de recursos. Uma regra criada pode aceitar até 2.000 valores de IP/CIDR para pontos de extremidade privados e até 2.000 valores de IP/CIDR para pontos de extremidade públicos. Esse limite é específico para Cloud Databases. Outros limites de serviço IBM Cloud® podem variar.

Cloud Databases não é compatível com endereços IPv6. Se um endereço IPv6 for incluído, ele será ignorado.

Fechamento total do acesso a pontos de extremidade não listados: Para oferecer uma estrutura de segurança mais robusta, implementamos uma mudança significativa no controle de acesso para endpoints públicos e privados. No futuro, o acesso a pontos de extremidade públicos e privados que não estejam explicitamente na lista de permissões será totalmente fechado. Essa restrição garante apenas o acesso autorizado aos seus endpoints, minimizando o risco de acesso não autorizado.

Criando regras na IU

  1. Vá para Gerenciar > Restrições baseadas em contexto no console IBM Cloud®.

  2. Selecione Regras.

  3. Clique em Criar.

  4. Em Service (Serviço), selecione o serviço que você deseja direcionar com sua regra.

  5. Em APIs, selecione Data plane. Atualmente, qualquer outra seleção resulta em um erro.

    0 ações são esperadas para o tipo de API Data Plane.

    atualmente, Cloud Databases não oferece suporte ao Plano de controle como uma opção.

  6. Em Recursos, defina o escopo da regra para Todos os recursos ou Recursos específicos. Para obter mais informações, consulte Proteção de recursos Cloud Databases.

  7. Clique em Continuar.

  8. Defina os tipos de endpoint permitidos.

    • Mantenha o botão de alternância definido como No (Não) para permitir todos os tipos de endpoint.
    • Defina a opção Yes (Sim ) para permitir apenas tipos de endpoint específicos e, em seguida, escolha na lista.
  9. Selecione uma zona ou zonas de rede que você já tenha criado ou crie uma nova zona de rede clicando em Criar.

    Os contextos definem de onde os seus recursos podem ser acessados, vinculando efetivamente a sua zona de rede à sua regra.

  10. Clique em Add para adicionar sua configuração ao resumo.

  11. Clique em Avançar.

  12. Dê um nome à sua regra.

  13. Selecione como você deseja aplicar a regra.

    Report-only não está disponível para Cloud Databases.

Criar regras na CLI

Para criar uma regra na CLI, você precisa do Cloud Databases service_name apropriado:

  • databases-for-postgresql
  • databases-for-mongodb
  • databases-for-redis
  • databases-for-elasticsearch
  • database-for-mysql
  • messages-for-rabbitmq
  • databases-for-enterprisedb
  • databases-for-etcd

Todos os outros parâmetros a seguir são explicados no guia de referência do plug-in CBR.

Exemplo de comando para criar uma regra CBR:

ibmcloud cbr rule-create --enforcement-mode enabled --context-attributes "networkZoneId=<ZONE-ID>" --resource-group-id <RESOURCE_GROUP_ID> --service-name <SERVICE-NAME> --service-instance <SERVICE-INSTANCE> --api-types crn:v1:bluemix:public:context-based-restrictions::::api-type:data-plane --description <DESCRIPTION>

A única api-type opção atualmente suportada por Cloud Databases é o Data plane.

Report-only não está disponível para Cloud Databases.

Atualizar regras na CLI

Exemplo de comando para atualizar uma regra CBR:

ibmcloud cbr rule-update <RULE-ID> --enforcement-mode disabled --context-attributes="networkZoneId=<ZONE-ID>" --resource-group-id   <RESOURCE_GROUP_ID> --service-name <SERVICE_NAME> --api-types crn:v1:bluemix:public:context-based-restrictions::::api-type:data-plane --description    <DESCRIPTION>

O comando rule-update é uma substituição. Inclua todos os campos obrigatórios como se estivesse criando a regra do zero. Se você omitir algum campo obrigatório, a regra substituirá os campos ausentes como vazios, e a regra poderá falhar porque alguns desses campos são obrigatórios, independentemente de estarem alterando a regra.

A atualização requer o RULE-ID, não o nome da regra. Use o seguinte comando para listar suas regras e recuperar o RULE-ID relevante:

ibmcloud cbr rules

Excluir regras na CLI

Exclua uma regra usando um comando como:

ibmcloud cbr rule-delete <RULE-ID>

Use ibmcloud cbr <command> — help para obter uma lista completa de opções e parâmetros. Por exemplo, ibmcloud cbr rule-create — help gera parâmetros para a criação de regras.

Criação de regras no Terraform

Para criar regras no Terraform, siga as instruções na documentação do provedor doIBM Cloud Terraform.

Para criar uma regra, você precisa do Cloud Databases service_name apropriado:

  • databases-for-postgresql
  • databases-for-mongodb
  • databases-for-redis
  • databases-for-elasticsearch
  • database-for-mysql
  • messages-for-rabbitmq
  • databases-for-enterprisedb
  • databases-for-etcd

Crie uma regra usando um comando como:

resource "ibm_cbr_rule" "cbr_rule" {
  contexts {
        attributes {
            name = "networkZoneId"
            value = "559052eb8f43302824e7ae490c0281eb"
        }
        attributes {
               name = "endpointType"
               value = "private"
    }
  }
  description = "this is an example of a rule with one context one zone"
  enforcement_mode = "enabled"
  operations {
        api_types {
            api_type_id = "api_type_id"
        }
  }
  resources {
        attributes {
            name = "accountId"
            value = "12ab34cd56ef78ab90cd12ef34ab56cd"
        }
        attributes {
              name = "serviceName"
              value = "network-policy-enabled"
        }
        tags {
              name     = "tag_name"
              value    = "tag_value"
        }
  }
}

Verificação de sua regra

Para verificar se sua regra foi aplicada, acesse o IBM Cloud® E selecione a instância relevante em sua lista de recursos. Em Recent Tasks (Tarefas recentes), você vê o status da sua regra.

A tarefa de criar ou modificar uma regra vai para a fila de tarefas de sua instância. Dependendo da carga de trabalho, pode levar algum tempo para que a aplicação da regra seja concluída.