O recurso personalizado do AtlasIPAccessList configura uma lista de acesso IP para um projeto do Atlas. Uma lista de acesso IP permite proteger seu projeto usando uma política de acesso mínimo.
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
AtlasProjectRecurso Personalizado em 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 2 0Operator., consulte 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
O Atlas Kubernetes Operator realiza uma das seguintes ações usando o recurso de API Lista de acesso IP do Projeto Atlas :
Cria uma nova lista de acesso IP.
Substituir uma lista de acesso IP existente .
Exemplos
Exemplo básico
O exemplo seguinte mostra um recurso personalizado do AtlasIPAccessList que permite acesso ao projeto do my-project a partir das seguintes fontes:
cidrBlock
192.168.1.0/24Endereço IP
10.0.0.1
O acesso de 10.0.0.1 expira após 31de março, 2025.
apiVersion: atlas.mongodb.com/v1 kind: AtlasIPAccessList metadata: name: atlasipaccesslist-sample spec: projectRef: name: my-project namespace: my-operator-namespace entries: - cidrBlock: 192.168.1.0/24 - ipAddress: 10.0.0.1 deleteAfterDate: 2025-03-31T23:59:59+02:00 - awsSecurityGroup: sg-1234 comment: "AWS Access to my network peering"
Exemplo de CRD independente
O exemplo a seguir mostra um AtlasIPAccessList CRD independente que permite o acesso a partir do mesmo bloco CIDR e endereço IP permitidos pelo Exemplo Básico. Esta definição de recurso personalizado permite a você criar uma lista de acesso IP em um projeto que você gerencia fora da instância do Atlas Kubernetes Operator com o qual você define este recurso. Para habilitar a operação independente, você deve usar um externalProjectRef em vez de um projectRef e deve fornecer um connectionSecret diretamente, pois esse recurso não pode herdar credenciais de API de seu projeto pai.
apiVersion: atlas.mongodb.com/v1 kind: AtlasIPAccessList metadata: name: atlasipaccesslist-sample spec: externalProjectRef: projectId: 66e2f2b621571b7e69a89b66 connectionSecret: name: atlas-connection-secret entries: - cidrBlock: 192.168.1.0/24 - ipAddress: 10.0.0.1 deleteAfterDate: 2025-03-31T23:59:59+02:00 - awsSecurityGroup: sg-1234 comment: "AWS Access to my network peering"
Parâmetros
Esta seção descreve os parâmetros de recurso personalizado AtlasIPAccessList disponíveis.
metadata.nameTipo: string
Obrigatório
Nome que o
AtlasIPAccessListRecurso Personalizado usa para adicionar esta lista de acesso IP a um projeto.
metadata.namespaceTipo: string
Opcional
Namespace diferente do
defaultque você deseja que contenha o recurso personalizado doatlasIPAccessList.
spec.connectionSecret.nameTipo: string
Condicional
Nome do segredo opaco segredo que contém o ID da organização e as chaves de API que o Atlas Kubernetes Operator usa para se conectar ao Atlas. Se não for especificado, o Atlas Kubernetes Operator padronizará para uma das seguintes opções:
O parâmetro
spec.connectionSecretRef.namedoatlasProjectpaiO segredo
globalpadrão, sespec.connectionSecretRef.nameestiver indefinido para oatlasProjectpai
Esse parâmetro é necessário para CRDs independentes.
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
spec.entriesTipo: array
Obrigatório
Conjunto de fontes de conexão a partir dos quais permitir acesso ao projeto.
spec.entries.[n].awsSecurityGroupTipo: string
Condicional
Identificador exclusivo do grupo de segurança da Amazon Web Services a partir do qual conceder acesso ao projeto.
Cada entrada em
spec.entriesdeve ter um e apenas um deawsSecurityGroup,cidrBlockouipAddress.
spec.entries.[n].cidrBlockTipo: string
Condicional
Faixa de endereços IP na notação de bloco CIDR a partir da qual conceder acesso ao projeto.
Cada entrada em
spec.entriesdeve ter um e apenas um deawsSecurityGroup,cidrBlockouipAddress.
spec.entries.[n].deleteAfterDateTipo: string
Opcional
Data e hora após as quais o Atlas exclui a entrada temporária da lista de acesso.
Para criar uma entrada de lista de acesso permanente, omita este parâmetro.
spec.entries.[n].ipAddressTipo: string
Opcional
Endereço IP único a partir do qual conceder acesso ao projeto.
Cada entrada em
spec.entriesdeve ter um e apenas um deawsSecurityGroup,cidrBlockouipAddress.
spec.externalProjectRef.idTipo: string
Condicional
ID do projeto ao qual pertence a lista de acesso IP . Você deve especificar o ID do projeto de um Atlas Project existente. Esse parâmetro é necessário para listas de acesso IP que pertencem a projetos gerenciados por:
Uma instância diferente do Atlas Kubernetes Operator
Ferramentas diferentes do Atlas Kubernetes Operator
Para implantações que pertencem a projetos gerenciados pela mesma instância do Atlas Kubernetes Operator, utilize o
spec.projectRef.namese você não utilizar ospec.externalProjectRef.id.Uma lista de acesso IP pode pertencer a somente um projeto. Para definir a mesma lista de acesso IP para vários projetos, crie definições de recursos personalizadas para cada projeto.
spec.projectRef.nameTipo: string
Condicional
Nome do projeto ao qual pertence a lista de acesso IP . Você deve especificar um
AtlasProjectRecurso Personalizado existente. Este parâmetro se aplica somente a listas de acesso IP que pertencem a projetos gerenciados pela mesma instância do Atlas Kubernetes Operator.Para implementações que pertencem a projetos gerenciados por:
uma instância diferente do Atlas Kubernetes Operator
ferramentas diferentes do Atlas Kubernetes Operator
usar
spec.externalProjectRef.id.Uma lista de acesso IP pode pertencer somente a um projeto. Para definir a mesma lista de acesso IP para vários projetos, crie definições de recursos personalizadas para cada projeto.
spec.projectRef.namespaceTipo: string
Condicional
Namespace no qual o
AtlasProjectRecurso Personalizado especificadospec.projectRef.nameno existe.Não defina este parâmetro para implantações que pertencem a projetos gerenciados por:
uma instância diferente do Atlas Kubernetes Operator
ferramentas diferentes do Atlas Kubernetes Operator