Protegendo os Serviços de Infraestrutura Privada (VPC) de Cloud Privada com restrições baseadas em contexto
As restrições baseadas no contexto permitem que os proprietários e administradores de contas definam e apliquem restrições de acesso aos recursos d IBM Cloud®, com base no contexto das solicitações de acesso. O acesso aos Serviços de Infraestrutura VPC pode ser controlado com restrições baseadas no contexto e políticas de gerenciamento de identidade e acesso (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 em contexto verificam se uma solicitação de acesso provém de um contexto permitido que você configurou. 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 nos Serviços de Infraestrutura VPC para criar, atualizar ou excluir regras direcionadas aos Serviços de Infraestrutura VPC. Um usuário deve ter a função de 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 Visualizador no serviço de restrições baseadas em contexto pode adicionar zonas de rede apenas a uma regra.
O serviço de restrição baseado em contexto gera registros de auditoria sempre que uma política baseada em contexto é aplicada. Para obter mais informações, consulte Monitorando restrições baseadas em contexto.
Para começar a proteger seus serviços de infraestrutura VPC com restrições baseadas em contexto, consulte o tutorial sobre como aproveitar as restrições baseadas em contexto para proteger seus recursos.
Como os Serviços de Infraestrutura de VPC se integram com restrições baseadas em contexto
Os Serviços de Infraestrutura VPC são um serviço composto por vários serviços secundários. Restrições baseadas no contexto podem ser criadas para o IBM Cloud VPC ou qualquer um de seus serviços filhos; por exemplo, sub-redes, instâncias de servidor virtual e volumes Block Storage.
Consulte a seção de criação de regras para obter detalhes sobre como você pode criar regras com os atributos necessários para cada serviço.
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
- Referências de serviço, que permitem o acesso a partir de outros serviços do IBM Cloud®
Referências de serviço
Uma referência de serviço, definida como parte de uma zona de rede, permite que o serviço especificado se comunique com os recursos ou APIs restritos que são alvo de uma política de restrição baseada em contexto. A tabela a seguir contém as referências de serviço que precisam ser incluídas quando restrições baseadas em contexto são usadas no contexto dos Serviços de Infraestrutura VPC. Você também pode consultar as autorizações IAM de serviço para serviço em sua conta ao deliberar quais referências de serviço adicionar em sua zona de rede. Você pode encontrar a autorização de serviço para serviço em sua conta acessando Gerenciar -> Acesso (IAM) e selecionando a guia Autorizações.
| Serviço com restrições baseadas em contexto | Serviço impactado | Referências de serviço necessárias na zona de rede |
|---|---|---|
| Cloud Object Storage | Serviços de infraestrutura VPC (is) |
|
| Key Protect | Cloud Block Storage (server-protect),File Storage for VPC ( is.share) |
|
| Hyper Protect Crypto Service | Cloud Block Storage (server-protect),File Storage for VPC ( is.share) |
|
| Instância de servidor virtual | Serviços de infraestrutura VPC (is) |
|
| Vários Serviços de Infraestrutura VPC- Block Storage Volume, Grupos de Segurança, Subnets | IBM Kubernetes Service (containers-kubernetes) |
|
| Secrets Manager | Serviços de infraestrutura VPC (is) |
Criação de zonas de rede usando a API
Você pode criar zonas de rede usando o comando create-zone. Para obter mais informações, consulte os Docs da API.
O serviceRef atributo para os Serviços de Infraestrutura VPC é is. Cloud Block Storage é server-protect, e File Storage for VPC é is.share.
{
"name": "Example zone 1",
"description": "",
"addresses": [
{
"type": "serviceRef",
"ref": {
"service_name": "is"
}
}
]
}
{
"name": "Example zone 1",
"description": "",
"addresses": [
{
"type": "serviceRef",
"ref": {
"service_name": "server-protect"
}
}
]
}
Criação de zonas de rede usando a CLI
-
Para criar zonas de rede a partir da CLI, instale o plug-in CBR CLI.
-
Use o
cbr-zone-createcomando para adicionar localizações de rede, VPCs e referências de serviço às zonas de rede. Para obter mais informações, consulte a referência da CLI do CBR.Para encontrar uma lista de destinos de referência de serviço disponíveis, execute o
ibmcloud cbr service-ref-targetscomando. O preçoservice_namedos Serviços de Infraestrutura VPC éis. Cloud Block Storage éserver-protect, e File Storage for VPC éis.share.O comando de exemplo a seguir adiciona o
isserviço, conhecido como Serviços de infraestrutura VPC no console do IBM Cloud®, a uma zona de rede.ibmcloud cbr zone-create --name example-zone-1 --description "Example zone 1" --service-ref service_name=isO comando de exemplo a seguir adiciona o
server-protectserviço, denominado* Cloud Block Storage* em IBM Cloud® console, para uma zona de rede.ibmcloud cbr zone-create --name example-zone-1 --description "Example zone 1" --service-ref service_name=server-protect
Criando zonas de rede a partir do console
- Determine quais recursos você deseja adicionar ao seu allowlist.
- Verifique a seção de referências de serviço para ver se você precisa adicionar alguma referência de serviço à sua zona de rede.
- Siga estas etapas para criar restrições baseadas em contexto no console.
Criando regras
Nos Serviços de Infraestrutura VPC, cada serviço filho precisa de determinados atributos em uma regra baseada em contexto.
Ao usar a API, o Terraform ou a CLI IBM Cloud para criar, atualizar ou excluir restrições baseadas no contexto IBM Cloud, você pode especificar o recurso de infraestrutura VPC de destino usando atributos de recurso.
Veja atributos de recursos de VPC para os atributos de recursos que correspondem com recursos de VPC individuais.
Você pode selecionar um recurso digitando o ID do objeto. Alternativamente, você pode usar o curinga * para selecionar todos os recursos aplicáveis. Por exemplo, o atributo vpcId:* configura as restrições baseadas em
contexto para aplicar em todos os VPCs na conta. Também é possível especificar a qual grupo de recursos a política é aplicada no comando.
Criando regras usando a API
Revise os seguintes pedidos de exemplo para criar regras. Para obter mais informações sobre o v1/rules API, veja os docs da API.
Depois de criar uma regra, ela pode levar até 10 minutes minutos antes de atualizar essa regra.
O exemplo de carga útil a seguir cria uma regra que protege as instâncias do servidor virtual e permite acesso somente da zona de rede especificada por meio de um ponto de extremidade privado.
{
"contexts": [
{
"attributes": [
{
"name": "endpointType",
"value": "private"
},
{
"name": "networkZoneId",
"value": "45ec64065b7c2bf84b3edec803335111"
}
]
}
],
"resources": [
{
"attributes": [
{
"name": "resourceGroupId",
"value": "1171749e3a8545069d04e6fca1ded18f"
},
{
"name": "serviceName",
"value": "is"
},
{
"name": "instanceId",
"value": "*"
}
]
}
]
}
Criação de regras usando a CLI
- Para criar regras a partir da CLI, instale o plug-in da CLI do CBR.
- Use o comando
ibmcloud cbr rule-createpara criar regras de CBR. Para obter mais informações, consulte a referência CLI do CBR .
Os exemplos a seguir são regras de aplicação. Você pode fazê-los relatar-apenas adicionando --enforcement-mode report.
O comando CLI exemplo a seguir cria uma regra de restrição baseada em contexto para todas as instâncias do servidor virtual na conta corrente:
ibmcloud cbr rule-create --zone-id a7eeb5dd8e6bdce670eba1afce18e37f --description "Test CBR for VSIs" --service-name is --resource-attributes "instanceId=*"
O comando CLI exemplo a seguir cria uma regra de restrição baseada em contexto para um volume de armazenamento de bloco específico na conta corrente:
ibmcloud cbr rule-create --zone-id a7eeb5dd8e6bdce670eba1afce18e37f --description "Test CBR for volume" --service-name is --resource-attributes "volumeId=UUID_OF_THE_VOLUME"
O comando CLI exemplo a seguir cria uma regra de restrição baseada em contexto para todas as instâncias do servidor virtual na conta corrente e restringe o acesso a terminais privados:
ibmcloud cbr rule-create --context-attributes 'endpointType=private' --zone-id a7eeb5dd8e6bdce670eba1afce18e37f --description "Test CBR for VSIs" --service-name is --resource-attributes "instanceId=*"
O comando CLI exemplo a seguir cria uma regra de restrição baseada em contexto para todas as instâncias do servidor virtual no grupo de recursos e restringe o acesso a terminais privados:
ibmcloud cbr rule-create --context-attributes 'endpointType=private' --zone-id a7eeb5dd8e6bdce670eba1afce18e37f --description "Test CBR for VSIs" --service-name is --resource-attributes "instanceId=*" --resource-group-id 1171749e3a8545069d04e6fca1ded18f
Criando regras no console
-
Vá em Gerenciar > restrições baseadas em contexto no console IBM Cloud®.
-
Selecione “Regras ” e clique em “Criar ”.
-
Selecione Serviços de Infraestrutura VPC e clique em Avançar.
-
Defina o escopo da regra como “Todos os recursos ” ou “Recursos específicos ”. Para obter mais informações, consulte Proteção dos recursos dos serviços de infraestrutura da VPC. Clique em Continuar.
-
Defina os tipos de terminais permitidos.
- Mantenha o conjunto de alternância para Não para permitir todos os tipos de terminais.
- Configure a alternância para Sim para permitir apenas tipos de terminais específicos, então escolha a partir da lista.
-
Selecione uma ou mais zonas de rede existentes ou crie uma zona de rede clicando em Criar.
Os contextos definem o local a partir do qual seus recursos podem ser acessados, ligando efetivamente a sua zona de rede à sua regra.
-
Clique em “Adicionar” para incluir sua configuração no resumo. Clique em Avançar.
-
Nomeia sua regra e selecione como você deseja impingá-lo. Em seguida, clique em Criar.
Monitoramento de restrições baseadas em contexto em Serviços de Infraestrutura VPC
O serviço de restrição baseado em contexto gera registros de auditoria sempre que uma política baseada em contexto é aplicada. O serviço de restrição baseado em contexto gera registros de auditoria sempre que uma política baseada em contexto é aplicada. Para mais informações, consulte Monitorando restrições baseadas em contexto.
Falhas de resolução de problemas devido a restrições baseadas em contexto
403 Mensagens de erro não autorizadas
Quando uma solicitação é negada devido a permissões de acesso inadequadas ou quando a solicitação se origina fora da zona de rede definida na regra de restrições baseadas no contexto, a resposta de erro é semelhante aos exemplos a seguir.
Erro 403 não autorizado na resposta da CLI
Error code: not_authorized and
Error message: the provided token is not authorized
Trace ID: b266a31c-b359-4ecb-8b81-a27c1b2cdb7b
Erro 403 não autorizado no console IBM Cloud
reference_id b266a31c-b359-4ecb-8b81-a27c1b2cdb7b
code not_authorized
message the provided token is not authorized
Erro 403 não autorizado na resposta da API
"code":"not_authorized",
"message":"the provided token is not authorized to list floating-ips in this account"
"trace":"b266a31c-b359-4ecb-8b81-a27c1b2cdb7b"
Localização de eventos de restrição baseados em contexto
Você pode usar o valor de Trace ID ou Reference ID para pesquisar em sua instância IBM Cloud Logs os eventos que são gerados pelo serviço de restrições baseadas em contexto. A seção requestData.environment mostra o endereço IP de origem da chamada e outras informações que podem ser usadas para verificar por que a autorização foi negada. Os campos requestData.action e requestData.resource podem ser usados determinam
qual recurso subjacente foi negado o acesso.
O exemplo a seguir é um evento de restrição baseado no contexto. Alguns campos foram removidos para melhorar a legibilidade.
{
"level": "critical",
"action": "context-based-restrictions.policy.eval",
"message": "Context based restriction rendered a deny",
"severity": "critical",
"correlationId": "TXID-b266a31c-b359-4ecb-8b81-a27c1b2cdb7b-df2f912c-80a1-422c-8b17-6092651fea00",
"requestData": {
"action": "is.vpc.vpc.create",
"reqOrder": 0,
"environment": {
"attributes": {
"ipAddress": "192.168.0.1",
"networkType": "public"
}
},
"resource": {
"attributes": {
"accountId": "67db3d7ff3f34220b40e2d81480754c9",
"resource": "NEWRESOURCE",
"vpcId": "NEWRESOURCE",
"resourceGroupId": "d272ce832535498e9142b557ff8638ed",
"region": "au-syd",
"serviceName": "is",
"resourceType": "vpc"
}
},
"subject": {
"attributes": {
"scope": "ibm openid",
"token.account.bss": "67db3d7ff3f34220b40e2d81480754c9",
"id": "IBMid-550009FB7N"
}
}
},
"responseData": {
"decision": "Deny",
"isEnforced": true
}
}
Em seguida, você pode usar a mesma ID de rastreamento ou ID de referência para examinar o evento específico do serviço de infraestrutura de VPC em sua instância IBM Cloud Logs.
{
"action": "is.vpc.vpc.create",
"outcome": "failure",
"message": "Virtual Private Cloud: create vpc -failure",
"severity": "critical",
"dataEvent": false,
"logSourceCRN": "crn:v1:bluemix:public:is:au-syd:a/67db3d7ff3f34220b40e2d81480754c9::vpc:",
"saveServiceCopy": true,
"initiator": {
"id": "IBMid-ABCDEFGH",
"typeURI": "service/security/account/user",
"name": "test@ibm.com",
"authnName": "test",
"authnId": "IBMid-ABCDEFGH",
"host": {
"address": "192.168.0.1",
"addressType": "IPv4"
},
"credential": {
"type": "token"
}
},
"target": {
"id": "crn:v1:bluemix:public:is:au-syd:a/67db3d7ff3f34220b40e2d81480754c9::vpc:",
"typeURI": "is.vpc/vpc",
"name": "",
"resourceGroupId": "crn:v1:bluemix:public:resource-controller::a/67db3d7ff3f34220b40e2d81480754c9::resource-group:d272ce832535498e9142b557ff8638ed"
},
"reason": {
"reasonCode": 403,
"reasonType": "Forbidden",
"reasonForFailure": "Your access token is invalid or does not have the necessary permissions to perform this task"
},
"requestData": {
"generation": "2",
"requestId": "b266a31c-b359-4ecb-8b81-a27c1b2cdb7b"
},
"responseData": {
"responseURI": "/v1/vpcs/"
}
}
Você também pode pesquisar eventos usando um identificador de recursos. Um ID de recurso é um UUID e é o último identificador em um CRN. Veja o exemplo a seguir
crn:v1:bluemix:public:is:au-syd:a/67db3d7ff3f34220b40e2d81480754c9::vpc:<resourceID>
Os pedidos de recursos de provisionamento não contêm um ID de recurso.
Se você não encontrar um evento de restrição baseado no contexto no IBM Cloud Logs, é possível que o acesso tenha sido negado devido às políticas de acesso do IAM. Para obter mais informações, consulte o guia de introdução ao VPC IAM.
Impacto do avião de dados VPN do cliente para site com restrições baseadas em contexto
Se você habilitar a ID do usuário e a senha na configuração de autenticação do cliente para uma VPN cliente-para-site e criar regras baseadas
em contexto nos recursos da VPC, a conexão do cliente com a VPN será afetada pelas restrições baseadas em contexto. Se o IP remoto do cliente VPN não estiver na Zona de Rede, a conexão com o servidor VPN retornará um erro
Auth Failed.
Depois que o cliente VPN se conecta ao servidor VPN, os pedidos para o terminal VPE ou o Cloud Service Endpoint (CSE) são controlados com restrições baseadas em contexto. Também, o IP de origem dos pedidos é o VPC endereços de origem do terminal de serviço em nuvem. Certise-se de que os endereços de origem do VPC CSE estão na Zona de Rede CBR; caso contrário, o pedido é negado.
Limitações
- As restrições baseadas no contexto protegem apenas as ações associadas às APIs dos Serviços de Infraestrutura VPC ou ao
isplug-in da CLI do IBM. As opções SDK e Terraform também são suportadas. As ações associadas às seguintes APIs da plataforma não são protegidas por restrições baseadas no contexto: - Quando você cria uma regra, pode levar até 10 minutos para que ela entre em vigor.
- Devido a uma limitação que está sendo tratada, as restrições baseadas em contexto não devem estar em vigor para APIs Secrets Manager quando você usa o serviço Load balancer for VPC. Porque isso resulta na falha na anexação dos certificados ao ouvinte associado ao balanceador de carga.