Como desenvolver políticas para clientes de startups

Este artigo mostra como projetar um conjunto de políticas que permitem que sua empresa, um cliente de inicialização hipotético chamado StartupExampleOrganization, use o Google Cloud.

As startups são iniciadas com infraestrutura mínima: somente conectividade de rede e laptops, sem investimento em servidores locais. As equipes das startups são pequenas, autônomas, ágeis e tomam as próprias decisões sobre quais serviços e ferramentas usar. As startups são sensíveis ao risco de que o IP da empresa seja inadvertidamente divulgado antes do desejado.

Nesse ambiente, como administrador da startup, inicialmente você pretende implementar um conjunto de regras gerais que abordem faturamento e violação de controles de segurança.

As políticas permitem que sua empresa use o Google Cloud de uma maneira que atenda aos seguintes requisitos:

  • Use o Google Workspace para gerenciar identidades e fornecer ferramentas de produtividade no escritório.
  • Otimizar para proporcionar autonomia e velocidade à equipe.
  • Permitir que os desenvolvedores escolham as próprias ferramentas, criem os próprios recursos e ambientes, façam testes e assim por diante.
  • Usar repositórios e registros particulares.
  • Implementar proteções para manter a segurança, a conformidade e assim por diante.
  • Alertar sobre despesas acima de um limite.
  • Pressupor boa intenção, mas ter controles e alertas de alto nível em caso de violação dos controles de segurança iniciais.
  • Conceder aos desenvolvedores acesso a um conjunto compartilhado de recursos.
  • Projete o ambiente do Google Cloud para crescer com o mínimo de problemas.

Governança e visibilidade

As seções a seguir mostram várias abordagens do Google Cloud que a StartupExampleOrganization pode usar para atender à lista de requisitos.

Gerenciamento de identidade

Requisito da "StartupExampleOrganization" abordado:

  • Use o Google Workspace para gerenciar identidades e fornecer ferramentas de produtividade no escritório.

O gerenciamento de identidade e acesso (IAM) permite que você possibilite o acesso aos recursos do Google Cloud concedendo acesso aos membros. Os membros podem ser dos seguintes tipos:

  • Conta do Google
  • Conta de serviço
  • Grupo do Google
  • Domínio do Google Workspace. Se você tiver uma conta do Google Workspace, isso implica a existência de um domínio do Google Workspace. Para mais informações, consulte este tópico da ajuda.

Uma conta do Google Workspace tem uma relação intrínseca com a hierarquia de recursos do Google Cloud, conforme mostrado no diagrama a seguir:

hierarquia de recursos

Para usar o Google Cloud, não é necessário ter um recurso Organização. No entanto, é aconselhável que qualquer empresa, independentemente do tamanho, comece a configurar os recursos do Google Cloud no recurso Organização. Como administrador, você tem total visibilidade e controle dos recursos da empresa.

Como administrador da "StartupExampleOrganization", você é um cliente do Google Workspace e, por isso, tem o pré-requisito para começar a usar o recurso Organização. É possível conceder permissões a contas do Google Workspace para acessar recursos do Google Cloud.

Configuração organizacional

Requisitos da "StartupExampleOrganization" abordados:

  • Permitir que os desenvolvedores escolham as próprias ferramentas, criem os próprios recursos e ambientes, façam testes e assim por diante.
  • Conceder aos desenvolvedores acesso a um conjunto compartilhado de recursos.
  • Projete o ambiente do Google Cloud para crescer com o mínimo de problemas.

Com um recurso da organização disponível, você mapeia sua organização para a hierarquia de recursos. Como parte desta organização hierárquica, você usa o Cloud Folders como contêiner para projetos e outras pastas. O Cloud Folders permite aos usuários agrupar projetos em pastas para fazer o gerenciamento de recursos e políticas em escala. Essa estrutura sincroniza as equipes e os aplicativos (associados aos projetos) que trabalham agrupados. Veja uma visão geral no diagrama a seguir.

configuração organizacional

Com o Cloud Folders, você administra políticas de gerenciamento de acesso no nível da pasta. A política de determinada pasta é herdada pelos projetos que ela contém.

O objetivo da "StartupExampleOrganization" é que os desenvolvedores consigam realizar os jobs rapidamente. Também faz parte desse objetivo a implantação de uma biblioteca que a faça expandir e satisfazer os requisitos básicos de segurança e conformidade necessários para os negócios, como proteger as informações de identificação pessoal (PII, na sigla em inglês). Ao usar o recurso "Organização", confira se há uma supervisão central e se cada equipe tem as próprias pastas e projetos. Por exemplo, cada equipe decide, de modo independente, como implantar aplicativos e implementar o monitoramento.

Para compartilhar recursos com projetos, crie um projeto de recurso compartilhado que também será um projeto de serviço para um projeto host de "Nuvem Privada Virtual" (VPC, na sigla em inglês) compartilhada. Para mais informações, consulte Configuração de rede e controles de segurança.

Use o projeto de recurso para hospedar contas de serviço que são usadas em processos de automação como uma integração contínua e pipelines de implantação (CI/CD). Os recursos compartilhados como scripts de configuração e conjuntos de dados compartilhados também podem ser localizados neste projeto. Restrinja quem pode gerenciar o projeto de recursos.

Implemente a proteção por meio das políticas organizacionais, em que você proíbe as opções de configuração que não estejam de acordo com o padrão da empresa. Por exemplo, impeça que IPs externos usem qualquer máquina virtual (VM, na sigla em inglês), independentemente de quem a criou. Substitua por projeto, conforme necessário. Ao implementar contas de serviços cujas permissões são concedidas no nível organizacional da hierarquia, você executa trabalhos de um projeto dedicado para monitorar ou alertar sobre riscos ou agregar inventário e métricas.

Operações do sistema

Requisitos da "StartupExampleOrganization" abordados:

  • Otimizar para proporcionar autonomia e velocidade à equipe.
  • Permitir que os desenvolvedores escolham as próprias ferramentas, criem os próprios recursos e ambientes, façam testes e assim por diante.
  • Usar repositórios e registros particulares.
  • Conceder aos desenvolvedores acesso a um conjunto compartilhado de recursos.

Os fundadores da StartupExampleOrganization sabem que precisam proteger o IP. A implementação de repositórios particulares e registros de contêineres pode ajudar. O Google Cloud fornece repositórios Git particulares totalmente hospedados e acesso restrito por meio do IAM. O Container Registry é um registro particular que usa o Cloud Storage para imagens do Docker. Use esse registro e conceda permissões apropriadas para garantir que seus contêineres sejam restritos aos membros da organização.

As contas de serviço facilitam os processos de automação. A automatização é sempre importante, mas especialmente quando a agilidade é essencial. Quanto mais você automatizar, mais recursos estarão voltados para o desenvolvimento de aplicativos.

Ao adotar o conceito de infraestrutura como código para automatizar ambientes em nuvem, você consegue configurar projetos e controles associados de modo programático e repetido. Além disso, é possível controlar a versão dos scripts e modelos que você usa para tratar a configuração do ambiente do Google Cloud enquanto faz o código, com todos os benefícios que o controle de versão oferece.

Com o Cloud Deployment Manager, você cria projetos automaticamente com os recursos e as políticas de IAM adequados. Use os modelos como parte de um sistema de autoatendimento.

Com o crescimento da organização, esses processos repetitivos permitem que novas equipes sejam criadas e produzam rapidamente.

Controles de segurança organizacional

Requisito da "StartupExampleOrganization" abordado:

  • Implementar proteções para manter a segurança, a conformidade e assim por diante.
  • Pressupor boa intenção, mas ter controles e alertas de alto nível em caso de violação dos controles de segurança iniciais.

O serviço Política de organização oferece controle central e programático sobre os recursos de nuvem da "StartupExampleOrganization", Ele oferece um mecanismo simples para restringir configurações permitidas na hierarquia do Cloud Resource. Neste contexto, as políticas se referem às políticas da organização, que permitem a você controlar a configuração dos recursos da nuvem no nível da organização.

As políticas da organização oferecem os seguintes benefícios:

  • Controle centralizado para configurar restrições sobre o uso dos recursos da organização.
  • As políticas podem ser definidas por projeto, pasta ou organização.
  • As políticas são herdadas na hierarquia de recursos e o administrador da política pode modificá-las em qualquer nível em que uma política organizacional for configurada.
  • Quem gerencia as políticas é o administrador de políticas da organização, não o proprietário do recurso. Isso significa que cada usuário e os proprietários do projeto não podem modificar as políticas da organização.

Controle de recursos

É possível implementar políticas da organização para reforçar quais recursos estarão disponíveis em um limite de confiança do Google Cloud (pasta, projeto ou outro nível organizacional).

  • O IAM permite que você gerencie o controle de acesso definindo quem (identidade) tem qual acesso (papel) a qual recurso. Para atribuir papéis aos usuários, crie uma política do IAM, que é um conjunto de instruções que definem o tipo de acesso de cada usuário. Anexe uma política a um recurso e, sempre que ele for acessado, a política restringirá o controle de acesso.
  • O Resource Manager fornece pontos de anexação e herança para controle de acesso e políticas da organização. Usando a API do Resource Manager você interage com a organização, as pastas e os projetos.
  • De qualquer modo, pense cuidadosamente sobre os controles de acesso a serem implementados para definir quem precisa ter acesso e onde aplicar privilégios mínimos.

Inicialmente, configure um framework que permita o fortalecimento dos controles conforme eles crescem. Configure permissões restritas para o projeto de recursos compartilhados e limite o acesso aos papéis de administrador organizacional, rede e segurança.

Papéis funcionais

Você precisa mapear os papéis funcionais da StartupExampleOrganization aos papéis do IAM apropriados.

Ao utilizar grupos para gerenciar os usuários, é possível modificar quem consegue desempenhar uma função específica. Em vez de atualizar a política, é possível editar a inscrição no grupo. Você nomeia os grupos para refletir os papéis funcionais usando a terminologia da "StartupExampleOrganization". Com o crescimento da organização, é possível reduzir os membros desse grupo criando uma equipe dedicada de administradores de rede e segurança.

Veja a seguir um exemplo de política do IAM que ajuda a atender aos requisitos da "StartupExampleOrganization":

Descrição da política de IAM Funcionalidade
O recurso no qual aplicar a política: Organização

Funções a serem concedidas: Administrador de rede, VPC compartilhada, Administrador de segurança

Membros a serem vinculados: equipe de administração de segurança e rede
Uma equipe central gerencia os controles de rede e de segurança. Todos os projetos compartilham uma única rede VPC.

O papel de administrador de rede com o de administrador de VPC compartilhada permite a administração central de recursos de rede.

O papel de administrador de segurança fornece as permissões necessárias para gerenciar regras de firewall e certificados SSL.

Denominar convenções e rotulagem

Requisitos da "StartupExampleOrganization" abordados:

  • Distribuir a cobrança cruzada entre equipes e os produtos que elas desenvolvem
  • Monitorar a atividade que ocorre na conta do Google Cloud na OurStartupOrg

Rótulos são pares de chave-valor compatíveis com vários recursos do Google Cloud. A "OurStartupOrg" pode usar usa rótulos para rastrear os gastos em dados de faturamento exportados entre as equipes e os produtos que elas desenvolvem. Com o uso de marcadores para filtrar e agrupar, a "OurStartupOrg" usa grupos de recursos do Cloud Monitoring para monitorar as atividades por equipe ou aplicativo.

Como rastrear e entender gastos

Requisitos da "StartupExampleOrganization" abordados:

  • Alertar sobre despesas acima de um limite.

Uma única conta de faturamento, implementada com o Resource Manager e os recursos de faturamento, atende aos requisitos da "StartupExampleOrganization". Veja os recursos de faturamento:

  • Projetos para organizar recursos. O custo é mostrado por projeto. Os códigos do projeto estão incluídos na exportação do faturamento.
  • Anotação de projetos com rótulos que representam informações extras de agrupamento, por exemplo, environment=test. Os rótulos são incluídos em exportações de faturamento para permitir que os custos sejam mais detalhados. Mesmo que estejam sujeitos à alteração, os rótulos ainda são úteis.
  • Codificação de um centro de custo em Project Name ou ID para facilitar o rastreamento dos custos para o centro de custo.
  • Relatórios do Cloud Billing para visualizar rapidamente os custos de uso e analisar tendências.
  • Exportação dos dados de faturamento diretamente para o BigQuery, a fim de permitir análises detalhadas.

No diagrama a seguir, é apresentada uma única conta de cobrança implementada com o Resource Manager.

estrutura de cobrança

A "StartupExampleOrganization" tem um único responsável pelo pagamento de contas. Com esta política em vigor, os desenvolvedores utilizam a conta de faturamento, mas sem configurar outras contas. Usando papéis e faturamento do IAM, os desenvolvedores configuram as permissões apropriadas para esse cenário.

As exportações de faturamento oferecem uma forma de analisar os custos. A princípio, talvez esse não seja um requisito prioritário para a "StartupExampleOrganization". No entanto, o crescimento futuro provavelmente exigirá análise de custos e assim a implementação de algumas regras básicas de configuração a partir daí facilitará uma posterior implementação.

Para alertar sobre as métricas de faturamento, defina orçamentos e alertas na conta de faturamento ou para projetos individuais. Você define orçamentos com um valor específico ou faz a correspondência com os gastos do mês anterior. Também é possível criar alertas para notificar os administradores de faturamento quando os gastos excederem uma porcentagem do orçamento. Para clientes startups, os orçamentos são flexíveis. Portanto, exceder o orçamento não afeta o uso.

Você aplica um orçamento a cada projeto. Com esse orçamento por projeto, você tem flexibilidade para alocar mais fundos para alguns projetos, conforme necessário e pode definir alertas para cada projeto. Por exemplo, para um projeto que usa o BigQuery, talvez seja necessário um orçamento maior do que para aqueles que usam apenas instâncias.

Proposta de política de gestão organizacional e de identidade

O diagrama a seguir mostra propostas das políticas de organização da "StartupExampleOrganization".

política da organização

No diagrama anterior, há seis características principais:

  1. Política da organização para definir proteções.

  2. Contas de serviço que executam a coleta e o monitoramento em toda a organização.

  3. Pasta para departamentos com recursos.

  4. Projetos para equipes, aplicativos, ambientes e casos de teste.

  5. Use o IAM para o gerenciamento de identidade.

  6. Recursos de infraestrutura compartilhada gerenciados por equipes da administração central e compartilhados com outros departamentos com privilégio mínimo.

Configurar rede e controles de segurança

Requisitos da "StartupExampleOrganization" abordados:

  • Conceder aos desenvolvedores acesso a um conjunto compartilhado de recursos.

  • Projete o ambiente do Google Cloud para crescer com o mínimo de problemas.

A princípio, a "StartupExampleOrganization" não tem um escritório permanente. Ao encontrar um local de escritório, se as cargas de trabalho exigirem menos latência do que o roteamento pela Internet, elas poderão usar o Cloud Interconnect para se conectar ao Google Cloud.

VPC compartilhada

A VPC compartilhada permite gerenciar recursos de rede comuns, como redes e sub-redes VPC, em um projeto de host central. Outros projetos também podem acessar esses recursos. Com essa configuração e os controles de IAM, fica fácil administrar a rede central.

Com a VPC compartilhada, você tem uma rede VPC, como um espaço privado de IP RFC 1918 comum, que abrange múltiplos projetos. è possível adicionar instâncias de qualquer projeto a essa rede VPC ou às respectivas sub-redes.

Ao implementar a VPC compartilhada, centralize o gerenciamento da rede VPC mantendo tudo simples por meio da configuração de uma VPN dos escritórios da "StartupExampleOrganization" para o host da VPC compartilhada. Com a VPN, os projetos de serviço são facilmente acessados no host.

Ao configurar uma biblioteca flexível desde o início, os recursos da rede são compartilhados e a rede central é administrada à medida que a empresa cresce.

Papéis do IAM para rede

Funcionalidade Descrição das políticas de IAM necessárias
Um número restrito de usuários gerencia os controles de rede e de segurança. Uma única rede VPC é compartilhada por todos os projetos.
  • Seguindo as melhores práticas, configure um grupo que contenha as identidades dos usuários que gerenciam de maneira centralizada a rede e a segurança. Utilize este grupo nas políticas de IAM necessárias para cumprir este requisito.
  • Com o uso da VPC compartilhada você mapeia equipes centralizadas para gerenciar a configuração da rede.
  • Atribua o papel de administrador de rede com o papel de administrador de VPC compartilhada (XPNAdmin) ao grupo no nível da organização da hierarquia de recursos da nuvem. Além disso, a concessão do papel Administrador de segurança no nível da organização a este grupo de administradores fornece as permissões necessárias para gerenciar as regras de firewall e os certificados SSL.

No diagrama abaixo, há um modelo de rede que atende aos requisitos da "StartupExampleOrganization".

Modelo de rede que fornece aos desenvolvedores acesso a um conjunto compartilhado de recursos.

No diagrama anterior, há duas características principais:

  1. Administradores centrais e contas de serviço fazendo todas as alterações de recursos padronizadas.

  2. Recursos compartilhados em uma sub-rede separada.

Regras de firewall

O tráfego entre sub-redes de origem e de destino e/ou as instâncias que são marcadas ou usam contas de serviço específicas é gerenciado pelas regras de firewall. Essas regras fornecem os controles necessários para garantir a existência de limites suficientes entre os ambientes de desenvolvimento, teste e produção.

Referências

Requisito Referências
Gerenciamento de identidade
Configuração organizacional
Operações de sistemas
Cobrança
Rede e controles de segurança

A seguir