Code Engine e segurança

A arquitetura do IBM Cloud® Code Engine é construída com a mentalidade de segurança em primeiro lugar. Os componentes do Code Engine são gerenciados e pertencem à IBM. Os clientes e suas cargas de trabalho são isolados uns dos outros usando projetos, que são baseados em namespaces de Kubernetes. Os controles de acesso baseados em função são executados em um nível de recurso para permitir que apenas usuários autorizados executem determinadas operações em recursos do projeto. O acesso do usuário é controlado por Cloud Identity and Access Management (IAM). Os aplicativos implantados ficam disponíveis em HTTPS, e o Code Engine cria e gerencia automaticamente as certificações subjacentes do TLS para você. O Code Engine oferece proteção imediata contra DDoS para o seu aplicativo. O DDoS proteção do Code Engine é fornecido pelo Cloud Internet Services (CIS) sem nenhum custo adicional para você.

Code Engine as tarefas não podem ser acessados externamente por definição. As tarefas ainda podem fazer solicitações externas e podem chamar Code Engine aplicativos internamente. Para ver um exemplo de tarefa que chama um aplicativo internamente, consulte o repositório “Samples for Code Engine ” em GitHub.

É possível usar os seguintes recursos de segurança para aprimorar a sua segurança.

Recursos de segurança
Recurso de segurança Descrição
Autorize o acesso com o IAM Conceder acesso a outros usuários para o Code Engine usando o Cloud Identity and Access Management (IAM). O IBM Cloud IAM fornece autenticação segura com a plataforma IBM Cloud, Code Engine, e todos os recursos em sua conta. A configuração de funções e permissões adequadas do usuário é fundamental para limitar quem pode acessar os seus recursos. Consulte Gerenciando o acesso do usuário.
Desativar terminais externos Implemente seu aplicativo com um terminal externo desativado que não esteja exposto ao tráfego externo usando a opção --visibility=private ou visibility=project. Veja Opções de visibilidade para um aplicativo Code Engine.
Armazene imagens em registros de imagem privada Configure um registro de imagem privada, como o fornecido por IBM Cloud Container Registry para controlar o acesso ao registro e as imagens que podem ser implementadas em Code Engine. Digitalize suas imagens automaticamente com o IBM Cloud Container Registry Vulnerability Advisor. É possível também incluir acesso ao seu próprio registro privado personalizado. Consulte Acessando registros de contêineres.
Crie o código a partir de um repositório privado Armazene seu código-fonte em um repositório privado e, em seguida, construa no IBM Cloud Container Registry. Consulte Acessando repositórios de código privado.
Use segredos para armazenar informações confidenciais É possível armazenar informações, como senhas e chaves SSH em um segredo. Para obter mais informações, consulte Trabalhando com segredos..
Incluir recursos de autenticação e autorização Se você estiver expondo seu aplicativo ou função em Code Engine em uma API pública ou website, talvez você queira restringir o acesso a determinados usuários ou locais (intervalos de endereços IP). Enquanto Code Engine fornece recursos para restringir o acesso para APIs que podem ser usadas para gerenciar projetos Code Engine e suas entidades, é responsabilidade do proprietário da origem do código incluir recursos de autenticação e autorização adequados para proteger o código que é executado ao atingir os terminais. Por exemplo, é possível usar IBM Cloud App ID para incluir recursos de autenticação e autorização para seu código.
Renovar regularmente os certificados d TLS Se você estiver usando mapeamentos de domínio personalizados para disponibilizar seus aplicativos ou funções, certifique-se de que seus certificados do TLS tenham uma data de validade; por exemplo, 90 dias. Deve-se girar periodicamente seu certificado com um certificado atualizado (que tenha sua própria data de validade)... Idealmente, use a automação para girar os certificados Por exemplo, você pode usar uma tarefa do Code Engine, acionada por uma assinatura do cron, para fazer a rotação do certificado. Se você armazenar segredos no IBM Cloud Secrets Manager, considere usar o IBM Cloud Event Notifications para que seu projeto Code Engine seja informado sobre as rotações de certificados. Você pode encontrar um aplicativo de exemplo que utiliza notificações de eventos acessando nosso repositório de exemplos do Code Engine em GitHub.

Versões do TLS e conjuntos de criptografia compatíveis

A API e os endpoints de aplicativos do Code Engine oferecem suporte à segurança da camada de transporte ( TLS ), ao protocolo 1.2 (ou superior) e aos seguintes conjuntos de criptografia.

TLS conjuntos de criptografia

  • ECDHE-ECDSA-AES128-GCM-SHA256
  • ECDHE-ECDSA-AES256-GCM-SHA384
  • ECDHE-RSA-AES128-GCM-SHA256
  • ECDHE-RSA-AES256-GCM-SHA384
  • ECDHE-ECDSA-CHACHA20-POLY1305
  • ECDHE-RSA-CHACHA20-POLY1305

Proteção contra DDoS

Code Engine oferece proteção imediata contra o DDoS para o seu aplicativo. A proteção contra o DDoS do site Code Engine é fornecida pelo Cloud Internet Services (CIS) sem nenhum custo adicional para você.

DDoS A proteção abrange ataques a protocolos das Camadas 3 e 4 do Modelo de Interconexão de Sistemas (OSI) ( TCP/IP ), mas não ataques à Camada 7 ( HTTP ).

Para endereçar ataques da Camada 7, é possível executar as etapas a seguir para que seu tráfego seja executado por meio de uma rota segura usando seu domínio customizado e não esteja mais disponível para a Internet pública por meio do domínio fornecido pelo Code Engine.

  1. Obtenha o seu domínio customizado
  2. No Code Engine, crie um mapeamento de domínio customizado para seu app.
  3. Configure uma instância do Cloud Internet Services (CIS) para gerenciar seu domínio customizado.
  4. Inclua o domínio customizado na instância do CIS.
  5. Configurar um balanceador de carga global no CIS.
  6. Ative o modo de proxy “ HTTP ” para o balanceador de carga em CIS. Isso ativa a proteção “ DDoS ” na Camada 7 e outros recursos de segurança “ CIS ”.
  7. No Code Engine, desative os mapeamentos de domínio fornecidos pelo sistema público de seu aplicativo. Acesse seu aplicativo, na guia Mapeamentos de domínio para seu app, selecione Nenhum mapeamento de domínio do sistema externo.
  8. Clique em Criar para salvar a revisão do aplicativo..

Para obter mais informações sobre DDoS em CIS, consulte Lidando com ataques de Negação de Serviço Distribuída em CIS... Para obter mais maneiras de abordar ataques da Camada 7, consulte Mitigando ataques da camada 7 no CIS.