AtlasFederatedAuth
Recurso personalizado
Nesta página
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 usa 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
AtlasProject
Recurso 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.,0 consulte Novo padrão: proteção de exclusão no Atlas Kubernetes 2 Operator.0.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.com
como 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 Member
aos usuários após a autenticação.Mapeia a função
Organization Owner
para a organização e aplica o mapeamento de função a um grupo de IdP chamadoorg-admin
.Mapeia as funções
Organization Project Creator
eProject Owner
para um projeto na organização denominadodev-project
e 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.name
Tipo: string
Obrigatório
Nome que identifica o recurso personalizado do
AtlasFederatedAuth
que o Atlas Kubernetes Operator utiliza para configurar a autenticação federada para a organização.
metadata.namespace
Tipo: string
Opcional
namespace onde você deseja implantar o recurso personalizado do
AtlasFederatedAuth
.
spec.enabled
Tipo: booleano
Obrigatório
Sinalizador que determina se a autenticação federada deve ser habilitada para a organização. Padrão é
false
.
spec.dataAccessIdentityProviders
Tipo: lista
Opcional
List of string values that identify the identity providers that Atlas Kubernetes Operator uses to configure federated authentication for the organization.
Observação
The
dataAccessIdentityProviders
parameter defines one or more identity providers that are used for data access. This means that they are used to access the actual MongoDB database instances, as configured in the AtlasDatabaseUser resource. This is different from the existing options in the AtlasFederatedAuth resource which is used to configure using identity providers for the Atlas UI.
spec.connectionSecretRef.name
Tipo: string
Obrigatório
Nome do segredo opaco que contém um único
password
campo com 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
,publicApiKey
eprivateApiKey
.As chaves de API do segredo devem ter o role
Organization Owner
. Você pode usar o mesmo segredo de um Recurso PersonalizadoAtlasProject
somente se o segredo tiverOrganization Owner
permissões.Atlas Kubernetes Operator observa segredos apenas com a etiqueta
atlas.mongodb.com/type=credentials
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 como o
AtlasProject
Recurso Personalizado. Para armazenar segredos em outro namespace, especifique o parâmetro spec.connectionSecretRef.namespace .
spec.connectionSecretRef.namespace
Tipo: 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á segredos de conexão no mesmo namespace como o
AtlasProject
recurso personalizado .
spec.domainAllowList
Tipo: 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.domainRestrictionEnabled
Tipo: 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.ssoDebugEnabled
Tipo: booleano
Opcional
Sinalizador que indica se o fornecedor de identidade tem a depuração habilitada para SSO. O padrão é
false
.
spec.postAuthRoleGrants
Tipo: 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_MEMBER
ORG_READ_ONLY
ORG_BILLING_ADMIN
ORG_GROUP_CREATOR
ORG_OWNER
ORG_BILLING_READ_ONLY
ORG_TEAM_MEMBERS_ADMIN
Para obter uma lista completa dos valores aceitos, consulte o Recurso da API de autenticação federada.
spec.roleMappings
Tipo : 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.externalGroupName
Tipo: 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.roleAssignments
Tipo : 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.projectName
Tipo: string
Opcional
O projeto Atlas na mesma organização à qual associar o papel.
spec.roleMappings.roleAssignments.role
Tipo: 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_MEMBER
ORG_READ_ONLY
ORG_BILLING_ADMIN
ORG_GROUP_CREATOR
ORG_OWNER
ORG_BILLING_READ_ONLY
ORG_TEAM_MEMBERS_ADMIN
GROUP_AUTOMATION_ADMIN
GROUP_BACKUP_ADMIN
GROUP_MONITORING_ADMIN
GROUP_OWNER
GROUP_READ_ONLY
GROUP_USER_ADMIN
GROUP_BILLING_ADMIN
GROUP_DATA_ACCESS_ADMIN
GROUP_DATA_ACCESS_READ_ONLY
GROUP_DATA_ACCESS_READ_WRITE
GROUP_CHARTS_ADMIN
GROUP_CLUSTER_MANAGER
GROUP_SEARCH_INDEX_EDITOR