Skip to content

Ambiente Global

Este diretório contém a configuração do ambiente global que afeta todos os outros ambientes. Este ambiente é utilizado para gerenciar recursos compartilhados entre todos os ambientes.

Visão Geral

O ambiente global inclui os seguintes componentes:

  • IAM (Identity and Access Management): Gerenciamento de políticas, grupos e permissões para acesso aos recursos da OCI
  • GitHub Runner: Executores auto-hospedados do GitHub Actions para CI/CD

Estrutura de Diretórios

infrastructure/environments/global/ ├── github-runner/ └── iam/

Configuração

Configuração do Ambiente

O arquivo env.hcl define as configurações específicas deste ambiente:

terraform inputs = { suffix = "GLOBAL" env = "global" }

  • suffix: Sufixo usado para nomear recursos (GLOBAL)
  • env: Identificador do ambiente (global)

Módulos

IAM (Identity and Access Management)

Visão Geral

O módulo IAM gerencia políticas, grupos e permissões para acesso aos recursos da Oracle Cloud Infrastructure.

Arquivo de Configuração

Localização: config/global/iam/

Componentes

  • Políticas: Definições de políticas de acesso à OCI
  • Grupos: Grupos de usuários para diferentes níveis de acesso
  • Dinâmicas de Grupo: Regras para pertencimento a grupos

Recursos Gerenciados

  • Políticas para acesso a compartimentos
  • Políticas para acesso a serviços OCI (OKE, KMS, etc.)
  • Políticas para acesso ao Oracle Cloud Shell

GitHub Runner

Visão Geral

O módulo GitHub Runner provisiona executores auto-hospedados do GitHub Actions para executar pipelines CI/CD.

Arquivo de Configuração

Localização: config/global/github-runner/

Componentes

  • Runner VM: Máquina virtual para executar jobs do GitHub Actions
  • Autoscaler: Ajuste automático da quantidade de runners baseado na demanda
  • Permissões: Configuração de permissões para acesso aos recursos OCI

Dependências

  • IAM (iam)

Como Implantar o Ambiente

Para implantar todo o ambiente global:

bash terramate run --terragrunt --tags="global" -- terragrunt apply -input=false -auto-approve

Para implantar um módulo específico:

bash terramate run --terragrunt --tags="global:nome-do-módulo" -- terragrunt apply -input=false -auto-approve

Ordem de Implantação

A implantação do ambiente deve seguir esta ordem para garantir que as dependências sejam atendidas:

  1. iam - Identity and Access Management
  2. github-runner - Runners auto-hospedados do GitHub Actions

Impacto nos Outros Ambientes

O ambiente global afeta todos os outros ambientes da seguinte forma:

  • IAM: Controla o acesso a recursos em todos os ambientes
  • GitHub Runner: Fornece recursos para executar pipelines de CI/CD para todos os ambientes

Considerações de Segurança

Este ambiente contém configurações críticas de segurança:

  • Políticas de Menor Privilégio: Todas as políticas seguem o princípio do menor privilégio
  • Segregação de Funções: Permissões diferenciadas para ambientes de produção e não-produção
  • Auditoria de Acesso: Registros de auditoria habilitados para todas as operações