Partilhar via


Recomendações para proteger segredos das aplicações

Aplica-se a esta Power Platform recomendação de lista de verificação de segurança bem arquitetada:

SE:07 Proteja os segredos das aplicações protegendo o seu armazenamento e restringindo o acesso e a manipulação, além de auditar essas ações. Execute um processo de rotação fiável e regular que pode improvisar rotações para emergências.

Este guia descreve as recomendações para proteger informações confidenciais em cargas de trabalho. A gestão adequada dos segredos é crucial para manter a segurança e a integridade da sua aplicação, carga de trabalho e dados associados. O processamento inadequado de segredos pode levar a violações de dados, à interrupção do serviço, a violações regulamentares e a outros problemas.

Credenciais, como chaves de API, tokens Open Authorization (OAuth) e chaves Secure Shell (SSH) são segredos. Os requisitos de conformidade podem fazer com que as definições de configuração que normalmente não são consideradas secretas sejam tratadas como segredos das aplicações.

Definições

Termo Definição
Certificados Ficheiros digitais que possuem as chaves públicas para encriptação ou desencriptação.
Credentials Informações utilizadas para verificar a identidade do editor ou do consumidor num canal de comunicação.
Verificação de credenciais O processo de validação do código de origem para se certificar de que os segredos não estão incluídos.
Encriptação O processo pelo qual os dados são tornados ilegíveis e bloqueados com um código secreto.
Key Um código secreto que é utilizado para bloquear ou desbloquear dados encriptados.
Acesso com menor privilégio Um princípio Confiança Zero que visa minimizar um conjunto de permissões para concluir uma função da tarefa.
Identidade gerida Uma identidade atribuída aos recursos e gerida pela Azure.
Não secreto Informações que não comprometem a postura de segurança da carga de trabalho se vazarem.
Rotação O processo de atualizar regularmente os segredos para que, se estiverem comprometidos, estejam disponíveis apenas por um tempo limitado.
Segredo Um componente confidencial do sistema que facilita a comunicação entre os componentes da carga de trabalho. Se vazados, os segredos podem causar uma violação.
X.509 Uma norma que define o formato dos certificados de chave pública.

Importante

Não trate os não segredos como segredos. Os segredos exigem rigor operacional que é desnecessário para os não secretos e isso pode resultar em custos extras.

As definições da aplicação que não são segredos, como as URLs das APIs de que a aplicação precisa, devem ser mantidas separadas do código da aplicação ou dos segredos da aplicação. Para armazenar a configuração da aplicação, considere utilizar um conector personalizado ou variáveis de ambiente. Outra opção é utilizar uma tabela Dataverse para armazenar metadados sobre a configuração da aplicação. No entanto, terá de encontrar uma forma de preencher estes dados num novo ambiente, tal como transferir dados de configuração da programação para teste ou produção. Pode utilizar Fluxos de dados para realizar isto.

Principais estratégias de design

Considere as seguintes áreas de preocupação antes de armazenar e gerir segredos:

  • Os segredos criados devem ser mantidos em armazenamento seguro com controlos de acesso rigorosos.
  • A rotação secreta é uma operação proativa, enquanto a revogação é reativa.
  • Apenas as identidades fidedignas devem ter acesso aos segredos.
  • Deverá manter um registo de auditoria para inspecionar e validar o acesso aos segredos.

Crie uma estratégia em torno destes pontos para ajudar a evitar o roubo de identidade, evitar o repúdio e minimizar a exposição desnecessária a informações.

Práticas seguras para a gestão de segredos

Recomendamos que as chaves tenham três funções distintas: utilizador, administrador e auditor. A distinção de funções ajuda a garantir que apenas as identidades fidedignas têm acesso aos segredos com o nível de permissão apropriado. Instrua os programadores, administradores e outros funcionários relevantes sobre a importância da gestão de segredos e das melhores práticas de segurança.

Chaves pré-partilhadas

Pode controlar o acesso criando chaves distintas para cada consumidor. Por exemplo, um cliente, tal como uma aplicação ou um fluxo, comunica com uma API de terceiros utilizando uma chave pré-partilhada. Se outro cliente precisar de aceder à mesma API, deverá utilizar outra chave. Não partilhe chaves mesmo que dois consumidores tenham os mesmos padrões de acesso ou funções. Os âmbitos do consumidor podem mudar ao longo do tempo e não é possível atualizar permissões ou distinguir padrões de utilização de forma independente depois de uma chave ser partilhada. O acesso distinto também facilita a revogação. Se a chave de um consumidor estiver comprometida, é mais fácil revogá-la ou girá-la sem afetar outros consumidores.

Esta orientação aplica-se a diferentes ambientes. A mesma chave não deve ser utilizada para ambientes de pré-produção e de produção. Se for responsável pela criação de chaves pré-partilhadas, certifique-se de que cria várias chaves para suportar vários clientes.

Para obter mais informações, consulte Recomendações para gestão de identidades e acessos.

Armazenamento de segredos

Use um sistema de gerenciamento secreto, como o Azure Key Vault, para armazenar segredos em um ambiente protegido, criptografar em repouso e em trânsito e auditar o acesso e as alterações nos segredos. Se precisar de armazenar segredos das aplicações, mantenha-os fora do código de origem para facilitar a rotação.

Um sistema de gestão de segredos dedicado facilita o armazenamento, a distribuição e o controlo de acesso aos segredos das aplicações. Apenas as identidades e os serviços autorizados devem ter acesso a arquivos secretos. O acesso ao sistema pode ser restringido através de permissões. Aplique sempre a abordagem de privilégios mínimos ao atribuir permissões.

Também precisa de controlar o acesso ao nível secreto. Cada segredo só deve ter acesso a um único âmbito de recurso. Crie limites de isolamento para que um componente só possa utilizar os segredos necessários. Se um componente isolado estiver comprometido, não pode obter o controlo de outros segredos e, potencialmente, de toda a carga de trabalho. Uma forma de isolar segredos é utilizar vários cofres de chaves. Não há custos adicionais para a criação de cofres de chaves extras.

Implemente a auditoria e a monitorização para um acesso secreto. Registe quem acede aos segredos e quando identifica atividades não autorizadas ou suspeitas. Para obter informações sobre o registo de uma perspetiva de segurança, consulte Recomendações para monitorização e deteção de ameaças.

Rotação secreta

Tenha um processo em vigor que mantenha a higiene secreta. A longevidade de um segredo influencia a gestão desse segredo. Para reduzir os vetores de ataque, os segredos devem ser retirados e substituídos por novos segredos com a maior frequência possível.

Lide com OAuth tokens de acesso com cuidado, levando em consideração seu tempo de vida. Pondere se a janela de exposição necessita de ser ajustada para um período mais curto. Os tokens de atualização têm de ser armazenados de forma segura com exposição limitada à aplicação. Os certificados renovados também devem utilizar uma nova chave. Para obter informações sobre tokens de atualização, consulte Secure OAuth 2.0 On-Behalf-Of refresh tokens.

Substitua os segredos depois de chegarem ao fim da vida útil, depois de já não serem utilizados pela carga de trabalho ou se tiverem sido comprometidos. Por outro lado, não retire os segredos ativos, a menos que seja uma emergência. Pode determinar o estado de um segredo visualizando os registos de acesso. Os processos de rotação secretos não devem afetar a fiabilidade nem o desempenho da carga de trabalho. Utilize estratégias que criem redundância em segredos, consumidores e métodos de acesso para uma rotação suave.

Práticas seguras para a utilização de segredos

Como um gerador ou operador secreto, deve ser capaz de distribuir segredos de maneira segura. Muitas organizações utilizam ferramentas para partilhar segredos com segurança dentro da organização e externamente aos parceiros. Na ausência de uma ferramenta, tenha um processo para distribuir corretamente as credenciais para destinatários autorizados. Os seus planos de recuperação após desastre devem incluir procedimentos secretos de recuperação. Tenha um processo para situações em que uma chave está comprometida ou vazada e precisa de ser regenerada a pedido. Considere as seguintes melhores práticas de segurança ao utilizar segredos:

Impedir a codificação rígida

Não codifice segredos como texto estático em artefatos de código, como fluxos de nuvem e aplicativos de tela, arquivos de configuração e pipelines de implantação de compilação. Esta prática de alto risco torna o código vulnerável porque os segredos são expostos a todos com acesso de leitura.

Use ferramentas que detetam periodicamente segredos expostos no código do aplicativo e criam artefatos. Pode adicionar estas ferramentas como parte dos seus pipelines de implementação para procurar credenciais antes de o código de origem consolidar a implementação. Reveja e limpe os registos de aplicações regularmente para ajudar a garantir que nenhum segredo é registado inadvertidamente. Também pode reforçar a deteção através de revisões por pares.

Nota

Se as ferramentas de digitalização detetarem um segredo, esse segredo deve ser considerado comprometido. Deve ser revogado.

Responder à rotação secreta

Como proprietário da carga de trabalho, precisa de compreender o plano de rotação secreto e as políticas para poder incorporar novos segredos com o mínimo de perturbação para os utilizadores. Quando um segredo é rodado, pode haver uma janela quando o segredo antigo não é válido, mas o novo segredo não foi colocado. Durante essa janela, o componente que a carga de trabalho está a tentar alcançar não confirma os pedidos. Pode minimizar estes problemas criando uma lógica de repetição no código. Também pode utilizar padrões de acesso simultâneos que lhe permitem ter várias credenciais que podem ser alteradas em segurança sem se afetarem mutuamente.

Trabalhe com a equipa de operações e faça parte do processo de gestão de alterações. Deve informar os proprietários de credenciais quando encerrar uma parte da carga de trabalho que utiliza credenciais que já não são necessárias.

Integre a obtenção e a configuração secretas no seu pipeline de implementação automatizada. A obtenção de segredos ajuda a garantir que os segredos são obtidos automaticamente durante a implementação. Também pode utilizar padrões de injeção secretos para inserir segredos no código da aplicação ou na configuração em runtime, o que impede que os segredos sejam acidentalmente expostos a registos ou ao controlo de versão.

Facilitação do Power Platform

As seguintes secções descrevem as funcionalidades e capacidades do Power Platform que pode utilizar para gerir segredos das aplicações.

Utilizar segredos do Azure Key Vault

As variáveis de ambiente permitem a referência aos segredos armazenados no Azure Key Vault. Estes segredos são então disponibilizados para utilização em fluxos e conectores personalizados do Power Automate. Tenha em atenção que os segredos não estão disponíveis para utilização noutras personalizações ou, geralmente, através da API.

Os segredos reais só são armazenados no Azure Key Vault e a variável de ambiente referencia a localização do segredo do Key Vault. A utilização de segredos do Azure Key Vault com variáveis de ambiente requer que configure o Azure Key Vault para que o Power Platform possa ler os segredos específicos que pretende referenciar. Para obter mais informações, consulte Utilizar variáveis de ambiente em soluções e Utilizar variáveis de ambiente em conectores personalizados da solução.

Utilizar o Verificador de Soluções

Com a funcionalidade do verificador de soluções pode executar uma análise estática avançada em soluções contra um conjunto de regras de práticas recomendadas e rapidamente identificar estes padrões problemáticos. Quando a verificação estiver concluída, recebe um relatório detalhado que lista os problemas identificados, os componentes e código afetados e ligações para a documentação que descreve como resolvê-los. Reveja as regras do verificador de soluções disponíveis na categoria Segurança. Para mais informações, consulte Utilizar o verificador de soluções para validar as suas soluções.

Utilizar ações do CyberArk

CyberArk oferece uma plataforma de segurança de identidade que protege identidades humanas e de máquinas de ponta a ponta. Os fluxos de ambiente de trabalho do Power Automate permitem-lhe obter credenciais a partir do CyberArk. Para mais informações, consulte Ações do CyberArk.

Lista de verificação de segurança

Consulte o conjunto completo de recomendações.