FuncionalidadesCasos de UsoBlogReferência APIPor Que CorePlexMLPreços
Começar Grátis
← Voltar ao Blog
Engenharia ML5 min read

Seguranca Empresarial: RBAC, SSO e Multi-Tenancy no CorePlexML

Equipe 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.