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:
iam- Identity and Access Managementgithub-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