Segurança em camadas com restrições baseadas no contexto
Reduza sua superfície de ataque com restrições baseadas em contexto. Adicione o local da rede, o tipo de endpoint e os requisitos de MFA às suas políticas baseadas em identidade para obter um gerenciamento de acesso refinado.
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 nos critérios de uma regra. Os critérios incluem o local da rede das solicitações de acesso, o tipo de ponto de extremidade de onde a solicitação é enviada, o nível de autenticação multifatorial de uma identidade e, às vezes, a API que a solicitação tenta acessar. Essas restrições funcionam com as políticas tradicionais de IAM, que são baseadas em identidade, para fornecer outra camada de proteção. Como tanto as políticas de IAM quanto as restrições baseadas em contexto impõem o acesso, as restrições baseadas em contexto oferecem proteção mesmo diante de credenciais comprometidas ou mal gerenciadas.
Para obter um exemplo de cenário sobre a criação de restrições baseadas em contexto, siga o tutorial para Aproveitar restrições baseadas em contexto para proteger seus recursos.
Para obter mais informações sobre a implementação de restrições baseadas em contexto em sua estratégia de segurança, consulte o tutorial da solução Aprimore a segurança na nuvem aplicando restrições baseadas em contexto.
Regras
Uma regra associa um recurso IBM Cloud a um conjunto de contextos:
- O recurso de nuvem é especificado por atributos de recursos semelhantes às políticas de acesso do IAM.
- Um contexto é uma combinação de zonas de rede e tipos de endpoint.
Os contextos que você configura definem o limite para os recursos associados.
Os atributos de recursos necessários nas regras de restrições baseadas em contexto são accountId e serviceName. As regras devem ter como escopo uma conta e um serviço específico.
As regras de restrição baseadas em contexto são aplicadas pela lógica a seguir:
- O acesso é concedido por uma regra apenas quando pelo menos um dos contextos da regra permite o acesso.
- Se várias regras forem aplicáveis a um determinado recurso, o acesso será concedido apenas quando todas as regras aplicáveis permitirem o acesso.
- Se nenhuma regra for aplicável a um determinado recurso, o acesso será determinado exclusivamente pelas políticas do IAM.
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.
A interface que você usa para acessar um recurso, como o console, a CLI ou a API, não afeta a forma como uma regra se aplica a esse recurso. A regra se aplica da mesma forma em todas as interfaces e se baseia no endereço IP do cliente.
Aplicação da regra
Você pode decidir como deseja aplicar uma regra na criação e atualizar a aplicação da regra a qualquer momento.
- Ativado
- Aplique a regra. Dependendo do serviço que você selecionar, o monitoramento das tentativas de acesso negado por meio do site Activity Tracker Event Routing poderá estar disponível. Examine a documentação de cada serviço para saber como eles se integram às restrições baseadas em contexto.
- Desativado
- Nenhuma restrição se aplica aos recursos de sua conta. Selecione essa opção se você não estiver pronto para ativar a regra.
- Somente relatório
- Dependendo do serviço selecionado, você pode monitorar como uma regra afeta o acesso sem aplicá-la. Com o modo somente de relatório, todas as tentativas de acessar recursos na conta são registradas em Activity Tracker Event Routing. Se disponível, recomenda-se o monitoramento por 30 dias antes de aplicar uma regra.
O modo somente de relatório não está disponível para todos os serviços, portanto, examine a documentação de cada serviço para saber como eles se integram às restrições baseadas em contexto.
Você pode monitorar o impacto de suas regras ativadas e somente de relatório. Para obter mais informações, consulte Monitoramento de restrições baseadas em contexto.
Definição do escopo de uma regra
Defina as APIs que você deseja proteger para restringir o escopo das restrições de uma regra. Dessa forma, você pode especificar proteções granulares para diferentes APIs que tenham requisitos de acesso distintos.
Por exemplo, você pode criar uma regra que direcione uma API de plano de dados para que ela seja acessível somente a partir de um cluster Kubernetes ou onde quer que sua infraestrutura de computação exista. Em seguida, é possível criar uma regra que vise à API do plano de controle e a todas as APIs da plataforma para proteger as interações com o console de nuvem, de modo que ele só possa ser acessado por trás da VPN da sua organização.
Somente alguns serviços suportam a capacidade de escopo de uma regra por API.
Com alguns serviços, você pode restringir as ações de todas as APIs de serviço em seus recursos por padrão, o que inclui todas as APIs atuais e futuras que o serviço possa suportar. Ou selecione APIs específicas. Por exemplo, Kubernetes tem APIs de serviço personalizadas às quais você pode restringir o acesso com base no contexto da solicitação. Consulte a documentação de cada serviço para saber mais sobre como eles se integram às restrições baseadas em contexto.
Alguns serviços oferecem suporte à capacidade de definir o escopo de uma regra para proteger todas as APIs de plataforma, o que inclui todas as APIs de plataforma atuais e futuras que um serviço pode suportar. A adição de APIs da plataforma ao escopo de uma regra garante que as operações da plataforma, como provisionamento de recursos, gerenciamento de credenciais de serviço e anexação de tags, sejam acessíveis somente a partir dos locais que você definir.
Por padrão, as restrições baseadas em contexto protegem todas as APIs de serviço e plataforma compatíveis com o serviço de destino.
Contextos
Os contextos definem onde seu recurso pode ser acessado. Um contexto é formado pelos tipos de endpoint permitidos e zonas de rede que você configura.
- Se um contexto incluir zonas de rede, o acesso será concedido apenas quando a solicitação for criada em uma dessas zonas.
- Se um contexto incluir tipos de endpoint em serviço, o acesso será concedido apenas quando a solicitação for recebida por meio de uma conexão que corresponda a um desses tipos.
- Se um contexto incluir autenticação multifatorial (MFA), o acesso será concedido somente quando a identidade solicitante tiver um nível de MFA igual ou superior ao nível de MFA exigido.
- Se um contexto inclui várias restrições, por exemplo, zonas e tipos de endpoint, todas as restrições devem ser satisfeitas para que o acesso seja concedido.
Zona 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 acesso de outros serviços da IBM Cloud®.
Endereços IP
Os clientes podem especificar os endereços IP dos quais eles sabem que desejam enviar tráfego. Qualquer coisa fora dos endereços IP especificados é negado.
VPCs
Se você tiver aplicativos implementados em um VPC que precisam de acesso a um recurso restrito baseado em contexto, é possível incluir os endereços IP do VPC em sua zona de rede. Para fazer isso, selecione a VPC de destino em sua zona de rede e adicione essa zona de rede à sua regra. Dessa forma, você não precisa encontrar os endereços IP que a VPC usa. Os recursos que são contatados veem que a solicitação está vindo de um conjunto de endereços IP permitidos.
Referências de serviço
Uma referência de serviço representa os locais de rede de um serviço ou instância de serviço. A inclusão de uma referência de serviço em uma zona de rede adiciona os endereços IP associados ao serviço à sua lista de permissões sem que você precise conhecer os endereços IP subjacentes do serviço. As referências de serviço são úteis, pois os locais de rede dos serviços em nuvem são desconhecidos do administrador de restrições baseadas em contexto e podem mudar com o tempo.
A seguir, há uma lista de serviços que podem ser adicionados a uma zona de rede como referência de serviço:
| Serviço | Tipo de serviço | service_name |
|---|---|---|
| Todos os serviços de gerenciamento de contas | Gerenciamento de contas | iam-access-management |
| Serviço de grupos de acesso ao IAM | Gerenciamento de contas | iam-groups |
| Gerenciamento de usuários IAM | Gerenciamento de contas | user-management |
| Activity Tracker Event Routing | IAM-enabled | logdnaat |
| App Configuration | IAM-enabled | apprapp |
| Serviço de gerenciamento de catálogo | Habilitado para IAM | globalcatalog-collection |
| nuvem Block Storage for VPC | Habilitado para IAM | |
| Nuvem Object Storage | Habilitado para IAM | cloud-object-storage |
| Code Engine | IAM-enabled | codeengine |
| Databases for DataStax | IAM-enabled | databases-for-cassandra |
| Databases for EnterpriseDB | IAM-enabled | databases-for-enterprisedb |
| Databases for Elasticsearch | IAM-enabled | databases-for-elasticsearch |
| Databases for etcd | IAM-enabled | databases-for-etcd |
| Databases for MongoDB | IAM-enabled | databases-for-mongodb |
| Databases for MySQL | IAM-enabled | databases-for-mysql |
| Databases for PostgreSQL | IAM-enabled | databases-for-postgresql |
| Databases for Redis | IAM-enabled | databases-for-redis |
| Direct Link | Habilitado para IAM | directlink |
| Event Notifications | IAM-enabled | event-notifications |
| Event Streams | IAM-enabled | messagehub |
| Kubernetes Service / Red Hat OpenShift | IAM-enabled | containers-kubernetes |
| Messages for RabbitMQ | IAM-enabled | messages-for-rabbitmq |
| Secrets Manager | Habilitado para IAM | secrets-manager |
| Serviços de infraestrutura de VPC | ||
| Schematics | IAM-enabled | schematics |
| Toolchain | IAM-enabled | toolchain |
| Watsonx.data | Habilitado para IAM | lakehouse |
Na tabela 1, todos os serviços de gerenciamento de contas se referem ao agrupamento de serviços do tipo gerenciamento de contas listados na tabela. Por exemplo, se houver dois serviços de Gerenciamento de contas listados na tabela 1, Todos os serviços de Gerenciamento de contas inclui esses dois serviços. À medida que mais serviços de gerenciamento de contas se tornam disponíveis como referências de serviço, as zonas de rede que especificam todos os serviços de gerenciamento de contas como referência de serviço incluem automaticamente os serviços de gerenciamento de contas recém-adicionados.
Consulte a documentação de cada oferta de serviço para obter mais informações sobre quais serviços devem ser adicionados como referência de serviço para a oferta de serviço que você segmenta em uma regra.
Tipos de terminal
Um tipo de endpoint representa a conexão pela qual uma solicitação de acesso é recebida. Ele corresponde ao endpoint que recebe a conexão. É possível permitir o acesso de todos os tipos de endpoint que são suportados pelo serviço ou tipos de endpoint de serviço específicos.
Os três tipos de endpoint comuns são os seguintes:
- Os endpoints públicos podem aceitar solicitações de qualquer lugar.
- Os pontos de extremidade privados estão disponíveis para a maioria das solicitações originadas em IBM Cloud®.
- Os endpoints diretos são usados em cenários Bring-Your-Own-IP, geralmente para solicitações que se originam de recursos dentro de VPCs.
Alguns tipos de endpoint podem não ser suportados pelo serviço selecionado.
Para acessar os pontos de extremidade privados virtuais, os usuários da CLI devem fazer login usando o comando ibmcloud login -a private.cloud.ibm.com --vpc. Para obter mais informações, consulte Criação de um gateway de endpoint privado(necessário para uso de VPC).
Autenticação de de diversos fatores
A autenticação multifatorial (MFA) exige que as identidades se autentiquem usando outro fator de autenticação além de um ID e uma senha. Ao definir um requisito de nível de MFA menos rigoroso, você permite que os usuários que atendem ou excedem esse nível se autentiquem. Por exemplo, se a sua regra exigir que os usuários se autentiquem com MFA LEVEL1, os usuários que têm MFA LEVEL2 ainda estão em conformidade, pois LEVEL2 excede os critérios de segurança para LEVEL1. Os seguintes níveis de AMF indicam o fator mínimo de AMF para cada nível. Para obter mais informações, consulte IBM Cloud autenticação multifator.
- LEVEL1: MFA baseada em e-mail
- LEVEL2: TOTP MFA
- LEVEL3: Chave de segurança MFA
Além de LEVEL1, LEVEL2 e LEVEL3 MFA, a regra de restrições baseadas em contexto também suporta o valor IAM_ACCOUNT_SETTING, o que significa que o valor de MFA da regra corresponde ao que você definir como requisito de MFA para
a sua conta. Dessa forma, qualquer alteração nas configurações de MFA de sua conta se aplica automaticamente à regra. Para obter mais informações, consulte Opções de MFA.
Se uma opção for selecionada na seção MFA para usuários com um IBMid nas configurações de autenticação do IAM, o valor de MFA do IAM será mapeado para LEVEL2 MFA em restrições baseadas em contexto. A MFA é aplicada a usuários federados e não federados, mesmo se o usuário não federado for selecionado.
Apenas alguns serviços oferecem suporte à capacidade de especificar MFA em uma regra.
Requisitos de acesso
Para concluir as ações de regra, você deve receber uma política de IAM no serviço de destino. Para concluir as ações da zona de rede, você deve ser atribuído a uma política de IAM no serviço de restrições baseadas em contexto.
Para criar uma restrição baseada em contexto para um serviço, é necessário atribuir uma política de IAM com a função de Administrador ao serviço para o qual você está criando uma regra. Por exemplo, se você quiser criar uma regra para proteger uma instância Key Protect instância, você deverá receber a atribuição da função Administrador no serviço Key Protect e a função Viewer ou superior no serviço de restrições baseadas em contexto.
A função Viewer no serviço de restrições baseadas em contexto autoriza você a adicionar zonas de rede à sua regra.
Funções e ações de restrições baseadas no contexto
Para gerenciar as zonas de rede, você deve receber uma política de IAM com uma função específica para o serviço de gerenciamento de contas de restrições baseadas em contexto. A tabela a seguir mostra as possíveis funções de acesso e ações para o gerenciamento de contas.
| Funções | Ações |
|---|---|
| Visualizador | Visualizar zonas de rede |
| Editor | Visualizar zonas de rede
Criar zonas de rede Atualizar zonas de rede Remover zonas de rede |
| Administrador | Visualizar zonas de rede
Criar zonas de rede Atualizar zonas de rede Remover zonas de rede |
Para obter mais informações, consulte Ações e funções para serviços de gerenciamento de contas.
Também é possível usar zonas de rede para restringir o acesso no nível da conta. Para definir restrições no nível da conta usando zonas de rede, vá para Gerenciar > IAM > Configurações no console IBM Cloud e digite o nome da sua zona de rede.
Funções e ações do serviço-alvo
Para gerenciar regras, você deve receber uma política de IAM com a função de Administrador para o serviço em relação ao qual está criando a regra. A tabela a seguir mostra as possíveis funções e ações de acesso aos serviços.
| Funções | Ações |
|---|---|
| Visualizador | Visualizar regras |
| Editor | Visualizar regras |
| Administrador | Regras de visualização
Criar regras Atualizar regras Remover regras |
Serviços integrados com restrições baseadas em contexto
Os serviços específicos do IBM Cloud são integrados com restrições baseadas em contexto, e somente esses serviços podem aplicar regras aos seus recursos. A maneira como as regras se aplicam a serviços individuais é determinada pelo serviço, portanto, certifique-se de analisar a documentação de cada serviço para entender como as restrições baseadas no contexto se aplicam.
Você pode criar restrições baseadas em contexto para os seguintes serviços se tiver o acesso correto no serviço:
| Serviço | Tipo de serviço | Escopo para APIs | service_name |
|---|---|---|---|
| Activity Tracker Event Routing | Gerenciamento de conta | Não | atracker |
| App Configuration | Ativado para IAM | Não | apprapp |
| serviço de gerenciamento de catálogo | Ativado para IAM | True | globalcatalog-collection |
| IBM Cloud Logs | Ativado para IAM | Não | logs |
| IBM Cloud Monitoring | Ativado para IAM | Não | sysdig-monitor |
| Backup e Recuperação | Ativado para IAM | True | backup-recovery |
| Nuvem Object Storage | Ativado para IAM | Não | cloud-object-storage |
| Code Engine | Ativado para IAM | Não | codeengine |
| Container Registry | Ativado para IAM | Não | container-registry |
| Restrições baseadas em contexto Serviço | Gerenciamento de conta | Não | context-based-restrictions |
| Databases for DataStax | Ativado para IAM | True | databases-for-cassandra |
| Databases for EnterpriseDB | Ativado para IAM | True | databases-for-enterprisedb |
| Databases for Elasticsearch | Ativado para IAM | True | databases-for-elasticsearch |
| Databases for etcd | Ativado para IAM | True | databases-for-etcd |
| Databases for MongoDB | Ativado para IAM | True | databases-for-mongodb |
| Databases for MySQL | Ativado para IAM | True | databases-for-mysql |
| Databases for PostgreSQL | Ativado para IAM | True | databases-for-postgresql |
| Databases for Redis | Ativado para IAM | True | databases-for-redis |
| Direct Link | Ativado para IAM | Não | directlink |
| DNS Services | Ativado para IAM | Não | dns-svcs |
| Enterprise Application Service | Ativado para IAM | Não | enterprise-app-java |
| Event Notifications | Ativado para IAM | Não | event-notifications |
| Event Streams | Ativado para IAM | Não | messagehub |
| Hyper Protect Crypto Services | Ativado para IAM | True | hs-crypto |
| Serviço de grupos de acesso do IAM | Gerenciamento de conta | Não | iam-groups |
| IAM Access Management Service | Gerenciamento de conta | Não | iam-access-management |
| IAM Identity Service | Gerenciamento de conta | Não | iam-identity |
| Gerenciamento de usuários IAM | Gerenciamento de conta | Não | user-management |
| IBM Cloud® Virtual Private Cloud | Ativado para IAM | Não | is |
| Key Protect | Ativado para IAM | Não | kms |
| Kubernetes Service / Red Hat OpenShift | Ativado para IAM | True | containers-kubernetes |
| MQ | Ativado para IAM | True | mqcloud |
| Messages for RabbitMQ | Ativado para IAM | True | messages-for-rabbitmq |
| Schematics | Ativado para IAM | Não | schematics |
| Secrets Manager | Ativado para IAM | Não | secrets-manager |
| IBM Cloud Security and Compliance Center Workload Protection | Ativado para IAM | Não | sysdig-secure |
| Serviço de identificação | Gerenciamento de conta | Não | ghost-tags |
| Transit Gateway | Ativado para IAM | Não | transit |
| Watsonx.data | Ativado para IAM | Não | lakehouse |
As restrições baseadas em contexto que são definidas para serviços habilitados para IAM não se aplicam a ações de plataforma como criar ou excluir. Para obter mais informações, consulte Funções e ações do IAM.
Volte regularmente para ver quais serviços são adicionados à medida que mais serviços se integram às restrições baseadas em contexto.
Limites de restrições baseadas em contexto
A tabela a seguir lista os limites máximos para restrições baseadas em contexto. Esses limites se aplicam a qualquer usuário que possa criar regras de restrições baseadas em contexto ou zonas de rede. Para obter mais informações, consulte O que são restrições baseadas em contexto?.
Se você tiver um caso de uso específico que necessite de um limite estendido, poderá solicitar um aumento. Para obter mais informações, consulte Aumentando os limites da conta.
| Recurso | Máx. |
|---|---|
| Regras de restrição baseadas em contexto por conta [1] | 4020 |
| Zonas de rede por conta | 500 |
| Endereços IP por zona de rede | 1000 |
| Endereços IP por regra | 1000 |
Uma regra de restrição baseada em contexto que inclui várias zonas de rede pode ter um máximo de 1.000 endereços IP indiretamente associados a ele. Por exemplo, em uma regra que inclui duas zonas de rede, uma das zonas pode ter 800 endereços IP e a outra pode ter um máximo de 200 endereços IP.
Se quiser verificar o número de regras em sua conta, consulte Visualização do número total de regras por conta. Para solicitar um aumento no limite da conta, consulte Solicitação de aumento do limite compartilhado de políticas e regras.
Consistência eventual
As restrições baseadas em contexto seguem um padrão eventualmente consistente que é comum a muitos serviços nativos da nuvem. Como resultado, as restrições baseadas em contexto permanecem altamente disponíveis e com desempenho em várias regiões globais. As mudanças que são feitas em regras de restrições baseadas em contexto e zonas de rede são registradas e propagadas mundialmente. As mudanças de acesso podem não ser efetivadas até que o processo de propagação esteja concluído, geralmente dentro de alguns minutos.
-
As políticas de IAM e as regras de restrições baseadas em contexto compartilham um limite combinado de 4020. ↩︎