Seguranca Empresarial: RBAC, SSO e Multi-Tenancy no CorePlexML
Por Que a Seguranca Empresarial Importa em ML
As plataformas de machine learning ocupam uma posicao unica no panorama de seguranca empresarial. Lidam com alguns dos ativos mais sensiveis que uma organizacao possui: dados de treinamento proprietarios que podem conter PII de clientes, propriedade intelectual de modelos que representa meses de investimento em P&D, e pipelines de predicao que influenciam diretamente decisoes de negocio.
O CorePlexML adota a abordagem de integrar seguranca nos alicerces, nao como adicao posterior.
Arquitetura Multi-Tenant
O CorePlexML implementa multi-tenancy em nivel de projeto. Cada recurso na plataforma pertence a um projeto, e projetos pertencem a usuarios. Isso cria um limite natural de isolamento.
from coreplexml import CorePlexClient
client = CorePlexClient(
base_url="https://api.coreplexml.io",
api_key="your-api-key"
)
project = client.projects.create(
name="Fraud Detection Pipeline",
description="Real-time fraud scoring for payment processing",
team_members=[
{"email": "alice@company.com", "role": "editor"},
{"email": "bob@company.com", "role": "viewer"},
{"email": "carol@company.com", "role": "editor"}
]
)
Controle de Acesso Baseado em Papeis
O CorePlexML implementa tres papeis com limites de permissao claramente definidos.
Owner
O papel de owner tem controle total sobre o projeto e todos os seus recursos. Owners podem criar, ler, atualizar e excluir qualquer recurso. Podem gerenciar a membresia da equipe e configurar o faturamento. Cada projeto tem exatamente um owner.
Editor
O papel de editor pode criar e modificar recursos dentro do projeto, mas nao pode gerenciar a membresia da equipe nem as configuracoes do projeto.
Viewer
O papel de viewer tem acesso somente leitura a todos os recursos. E apropriado para stakeholders que precisam de visibilidade sobre as operacoes de ML sem a capacidade de fazer mudancas, como product managers ou responsaveis de conformidade.
client.projects.update_member(
project_id="proj_abc123",
email="bob@company.com",
role="editor"
)
team = client.projects.list_members(project_id="proj_abc123")
for member in team:
print(f"{member.email}: {member.role} "
f"(joined: {member.joined_at.strftime('%Y-%m-%d')})")
Stack de Autenticacao
Sessoes Baseadas em Cookies para a UI
A interface web utiliza cookies HTTP-only, seguros e same-site para gestao de sessoes. A protecao CSRF se aplica a todas as solicitacoes que modificam estado.
Autenticacao Bearer Token para a API
O acesso programatico utiliza bearer tokens no header Authorization:
import requests
headers = {
"Authorization": "Bearer cpx_live_abc123def456",
"Content-Type": "application/json"
}
response = requests.get(
"https://api.coreplexml.io/api/projects",
headers=headers
)
Gestao de API Keys
api_key = client.api_keys.create(
name="CI/CD Pipeline - Production",
permissions=["deployments:read", "deployments:create",
"models:read", "predictions:create"],
project_ids=["proj_abc123"],
expires_at="2026-06-30T23:59:59Z",
description="Used by GitHub Actions for automated model deployment"
)
print(f"Key ID: {api_key.id}")
print(f"Key: {api_key.key}") # Only shown once at creation time
Integracao SSO e SAML
Configuracao SAML
saml_config = client.auth.configure_saml(
organization_id="org_enterprise_01",
config={
"idp_entity_id": "https://idp.company.com/saml/metadata",
"idp_sso_url": "https://idp.company.com/saml/sso",
"idp_certificate": "-----BEGIN CERTIFICATE-----\nMIIC...\n-----END CERTIFICATE-----",
"sp_entity_id": "https://api.coreplexml.io/saml/metadata",
"attribute_mapping": {
"email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress",
"first_name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname",
"last_name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname",
"groups": "http://schemas.xmlsoap.org/claims/Group"
},
"auto_provision_users": True,
"default_role": "viewer",
"group_role_mapping": {
"ml-admins": "owner",
"ml-engineers": "editor",
"ml-stakeholders": "viewer"
}
}
)
O parametro group_role_mapping mapeia os grupos do IdP para papeis do CorePlexML. Quando um usuario se autentica via SAML, a plataforma le suas membresias de grupo e atribui o papel correspondente.
Provedores OAuth
oauth_config = client.auth.configure_oauth(
provider="google",
config={
"client_id": "your-google-client-id.apps.googleusercontent.com",
"client_secret": "your-google-client-secret",
"allowed_domains": ["company.com", "subsidiary.com"],
"auto_provision_users": True
}
)
Row-Level Security no PostgreSQL
O CorePlexML aproveita o Row-Level Security (RLS) do PostgreSQL como mecanismo de defesa em profundidade para isolamento de dados. As politicas RLS sao definidas no nivel do banco de dados e aplicadas pelo PostgreSQL independentemente do codigo de aplicacao.
O RLS fornece protecao contra ataques de injecao SQL que contornam a logica de aplicacao, ferramentas internas que acidentalmente omitem filtros de propriedade, e operacoes de backup que restauram dados no ambiente errado.
Registro de Auditoria
O CorePlexML mantem um registro de auditoria abrangente que grava cada evento significativo na plataforma. O log e somente de adicao e imutavel.
events = client.audit.list_events(
project_id="proj_abc123",
event_types=["deployment.created", "deployment.rollback",
"model.stage_transition", "api_key.created"],
start_time="2026-02-01T00:00:00Z",
end_time="2026-03-01T00:00:00Z",
limit=50
)
for event in events:
print(f"[{event.timestamp}] {event.event_type}")
print(f" User: {event.user_email}")
print(f" IP: {event.ip_address}")
print(f" Details: {event.details}")
O registro captura eventos de autenticacao, autorizacao, ciclo de vida de recursos, implantacao e seguranca.
Conformidade GDPR
Para organizacoes sujeitas ao GDPR, o CorePlexML fornece ferramentas para cumprir os direitos-chave:
Direito de acesso. Usuarios podem exportar todos os dados associados a sua conta.
Direito de exclusao. Usuarios podem solicitar a exclusao de sua conta e todos os dados associados. As entradas do log de auditoria sao anonimizadas em vez de excluidas.
Direito a portabilidade de dados. Todas as exportacoes utilizam formatos abertos e padronizados.
export = client.compliance.export_user_data(
user_id="user_abc123",
format="archive",
include_predictions=True,
include_audit_events=True
)
Gestao de Sessoes
client.auth.configure_session_policy(
organization_id="org_enterprise_01",
config={
"max_idle_minutes": 30,
"max_lifetime_hours": 8,
"max_concurrent_sessions": 3,
"require_re_auth_for_sensitive_ops": True,
"sensitive_operations": [
"deployment.create",
"api_key.create",
"project.delete",
"model.stage_transition"
]
}
)
Melhores Praticas para Implantacoes Empresariais
Imponha SSO para todos os usuarios. Desabilite a autenticacao baseada em senha uma vez que o SSO esteja configurado.
Aplique o principio do minimo privilegio. Atribua a novos membros o papel de viewer e escale para editor apenas quando necessitarem acesso de escrita.
Rotacione API keys regularmente. Defina datas de expiracao em todas as API keys e estabeleca um calendario de rotacao.
Revise os logs de auditoria periodicamente. Agende revisoes mensais focando em tentativas de autenticacao falhadas e mudancas de permissoes.
Delimite as API keys estritamente. Crie API keys separadas para diferentes sistemas e restrinja cada key as permissoes minimas necessarias.
Habilite RLS e verifique o isolamento. Apos configurar multi-tenancy, verifique que as politicas RLS estao funcionando tentando acesso entre projetos com diferentes contas.
A seguranca empresarial para plataformas ML nao e uma unica funcionalidade, mas uma arquitetura em camadas. Cada camada aborda uma classe diferente de risco. Em conjunto, proporcionam a defesa em profundidade que organizacoes empresariais exigem para confiar em uma plataforma ML com seus dados mais sensiveis.