O recurso personalizado do AtlasFederatedAuth configura aautenticação federada do para sua organização Atlas.
Quando você cria o recurso personalizado do AtlasFederatedAuth , o Atlas Kubernetes Operator utiliza o Recurso da API de Autenticação Federada para o atualizar a configuração da organização para a federação. Na configuração da organização , você especifica as configurações de federação para sua organização Atlas , como mapeamentos de organização e função.
Importante
Os Recursos Personalizados Não Excluem Mais Objetos por Padrão
O Atlas Kubernetes Operator utiliza arquivos de configuração de recurso personalizado para gerenciar sua configuração do Atlas , mas a partir do Atlas Kubernetes Operator,2.0 os recursos personalizados que você exclui no Kubernetes não são mais (por padrão) excluídos no Atlas. Em vez disso, o Atlas Kubernetes Operator simplesmente para de gerenciar estes recursos no Atlas. Por exemplo, se você excluir um
AtlasProjectRecurso Personalizado no Kubernetes, por padrão, o Atlas Kubernetes Operator não excluirá mais automaticamente o projeto correspondente do Atlas. Essa mudança no comportamento destina-se a ajudar a evitar exclusões acidentais ou inesperadas. Para saber mais, incluindo como reverter este comportamento para o padrão utilizado antes do Atlas Kubernetes Operator.,2 0consulte Novo padrão: Proteção de exclusão no Atlas Kubernetes 2 0Operator..Da mesma forma, o Atlas Kubernetes Operator não exclui equipes do Atlas se você as remover de um projeto do Atlas no Kubernetes com o Atlas Kubernetes Operator.
Defina explicitamente os detalhes de configuração desejados para evitar o uso implícito de valores de configuração padrão do Atlas . Em alguns casos, herdar os padrões do Atlas pode resultar em um loop de reconciliação que pode impedir que seu recurso personalizado atinja um estado
READY. Por exemplo, definir explicitamente o comportamento de autoscaling desejado em seu recurso personalizadoAtlasDeployment, conforme mostrado no exemplo incluído, garante que um tamanho de instância estática em seu recurso personalizado não esteja sendo aplicado repetidamente a um sistema do Atlas que tenha o autoscaling ativado.autoScaling: diskGB: enabled: true compute: enabled: true scaleDownEnabled: true minInstanceSize: M30 maxInstanceSize: M40
Para utilizar este recurso, você deve ter um fornecedor de identidade existente (IdP) vinculado à sua organização Atlas. Para saber mais, consulte Aproveite a autenticação federada do Kubernetes.
Exemplos
O exemplo abaixo configura um recurso personalizado do AtlasFederatedAuth que faz o seguinte:
Habilita a autenticação federada para a organização vinculada ao segredo especificado.
Adiciona
my-org-domain.comcomo um domínio aprovado.Habilita a restrição de domínio para a organização.
Desabilita a depuração para SSO.
Concede a função
Organization Memberaos usuários após a autenticação.Mapeia a função
Organization Ownerpara a organização e aplica o mapeamento de função a um grupo de IdP chamadoorg-admin.Mapeia as funções
Organization Project CreatoreProject Ownerpara um projeto na organização denominadodev-projecte aplica o mapeamento de role a um grupo de IdP denominadodev-team.
apiVersion: atlas.mongodb.com/v1 kind: AtlasFederatedAuth metadata: name: atlas-default-federated-auth namespace: mongodb-atlas-system spec: enabled: true dataAccessIdentityProviders: - 32b6e34b3d91647abb20e7b8 - 42d8v92k5a34184rnv93f0c1 connectionSecretRef: name: my-org-secret namespace: mongodb-atlas-system domainAllowList: - my-org-domain.com domainRestrictionEnabled: true ssoDebugEnabled: false postAuthRoleGrants: - ORG_MEMBER roleMappings: - externalGroupName: org-admin roleAssignments: - role: ORG_OWNER - externalGroupName: dev-team roleAssignments: - role: ORG_GROUP_CREATOR - projectName: dev-project role: GROUP_OWNER status: conditions: - type: Ready status: True - type: RolesReady status: True - type: UsersReady status: True
Observação
O exemplo anterior inclui a seção status , que descreve o processo de atualização. Para saber mais, consulte Criar e atualizar processo.
Parâmetros
Esta seção descreve os parâmetros disponíveis para o recurso personalizado do AtlasFederatedAuth . Para obter descrições detalhadas dos parâmetros, consulte o recurso da API de autenticação federada do Atlas.
Consulte essas descrições, o exemplo nesta página e a documentação da API para personalizar suas especificações.
metadata.nameTipo: string
Obrigatório
Nome que identifica o recurso personalizado do
AtlasFederatedAuthque o Atlas Kubernetes Operator utiliza para configurar a autenticação federada para a organização.
metadata.namespaceTipo: string
Opcional
namespace onde você deseja implantar o recurso personalizado do
AtlasFederatedAuth.
spec.enabledTipo: booleano
Obrigatório
Sinalizador que determina se a autenticação federada deve ser habilitada para a organização. Padrão é
false.
spec.dataAccessIdentityProvidersTipo: lista
Opcional
Lista de valores de string que identificam os fornecedores de identidade que o Atlas Kubernetes Operator utiliza para configurar a autenticação federada para a organização.
Observação
O parâmetro
dataAccessIdentityProvidersdefine um ou mais fornecedores de identidade que são utilizados para acesso aos dados. Isso significa que elas são usadas para acessar as instâncias reais do banco de dados do MongoDB , conforme configurado no recurso AtlasDatabaseUser. Isso é diferente das opções existentes no recurso AtlasFederatedAuth que é usado para configurar o uso de fornecedores de identidade para a UI do Atlas .
spec.connectionSecretRef.nameTipo: string
Obrigatório
Nome do segredo opaco que contém um único campo
passwordcom o ID da organização e as chaves de API que o Atlas Kubernetes Operator usa para se conectar ao Atlas. Ao criar o segredo, especifique os camposorgID,publicApiKeyeprivateApiKey.As chaves de API do segredo devem ter o role
Organization Owner. Você pode usar o mesmo segredo de um Recurso PersonalizadoAtlasProjectsomente se o segredo tiverOrganization Ownerpermissões.O Atlas Kubernetes
atlas.mongodb.com/type=credentialsOperator observa segredos apenas com a etiqueta para evitar a exibição de segredos desnecessários.O exemplo a seguir rotula um segredo:
kubectl label secret the-user-password atlas.mongodb.com/type=credentials Observação
Por padrão, o Atlas Kubernetes Operator mantém segredos de conexão no mesmo namespace que o recurso personalizado
AtlasProject. Para armazenar segredos em outro namespace, especifique o spec.connectionSecretRef. parâmetro do namespace .
spec.connectionSecretRef.namespaceTipo: string
Opcional
Namespace que contém o segredo com o ID da organização e as chaves de API que o Atlas Kubernetes Operator usa para se conectar ao Atlas. Se você omitir ou não especificar este parâmetro, o Atlas Kubernetes Operator manterá os segredos de conexão no mesmo namespace que o recurso personalizado
AtlasProject.
spec.domainAllowListTipo: array de strings
Opcional
Domínios aprovados que restringem os usuários que podem ingressar na organização com base em seus endereços de e-mail.
spec.domainRestrictionEnabledTipo: booleano
Obrigatório
Sinalizador que indica se a restrição de domínio está habilitada para a organização conectada. Padrão é
false.Se você definir esse parâmetro como
true, o Atlas retornará uma lista de usuários que pertencem a organizações fora da federação. Para saber mais, consulte Conflitos de usuários.
spec.ssoDebugEnabledTipo: booleano
Opcional
Sinalizador que indica se o fornecedor de identidade tem a depuração habilitada para SSO. O padrão é
false.
spec.postAuthRoleGrantsTipo: array de strings
Opcional
Funções do Atlas que são concedidas a um usuário nessa organização após a autenticação. Por exemplo:
ORG_MEMBERORG_READ_ONLYORG_BILLING_ADMINORG_GROUP_CREATORORG_OWNERORG_BILLING_READ_ONLYORG_TEAM_MEMBERS_ADMIN
Para obter uma lista completa dos valores aceitos, consulte o Recurso da API de autenticação federada.
spec.roleMappingsTipo : array de objetos
Opcional
Mapeamentos de role configurados nesta organização.
O spec.roleMappings.roleAssignments O parâmetro deve incluir pelo menos uma função da organização dentro da organização atual ou os projetos na organização.
spec.roleMappings.externalGroupNameTipo: string
Obrigatório
Rótulo legível único para humanos que identifica o grupo de fornecedores de identidade ao qual esse mapeamento de role se aplica.
spec.roleMappings.roleAssignmentsTipo : array de objetos
Opcional
Roles do Atlas e os identificadores exclusivos dos grupos e organizações associados a cada role. Este parâmetro deve incluir pelo menos uma role da organização dentro da organização atual ou dos projetos na organização.
spec.roleMappings.roleAssignments.projectNameTipo: string
Opcional
O projeto Atlas na mesma organização à qual associar o papel.
spec.roleMappings.roleAssignments.roleTipo: string
Opcional
Etiqueta legível para humanos que identifica a collection de privilégios que o Atlas concede a uma chave de API, usuário ou equipe específica. Essas funções incluem privilégios de nível de organização e projeto.
O Atlas Kubernetes Operator aceita os seguintes valores:
ORG_MEMBERORG_READ_ONLYORG_BILLING_ADMINORG_GROUP_CREATORORG_OWNERORG_BILLING_READ_ONLYORG_TEAM_MEMBERS_ADMINGROUP_AUTOMATION_ADMINGROUP_BACKUP_ADMINGROUP_MONITORING_ADMINGROUP_OWNERGROUP_READ_ONLYGROUP_USER_ADMINGROUP_BILLING_ADMINGROUP_DATA_ACCESS_ADMINGROUP_DATA_ACCESS_READ_ONLYGROUP_DATA_ACCESS_READ_WRITEGROUP_CHARTS_ADMINGROUP_CLUSTER_MANAGERGROUP_SEARCH_INDEX_EDITOR