Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ /
Atlas Kubernetes Operator
/

Configurar integrações unificadas do fornecedor de nuvem

Algumas funcionalidades do Atlas , incluindo Data Federation e Encryption at Rest, autenticam com AWS IAM roles. Quando o Atlas acessa serviços AWS, ele assume uma role IAM.

Você pode configurar uma role presumida do IAM para sua conta Atlas usar com a API de administração do Atlas ou a UI do Atlas se tiver a role Project Owner . O Atlas oferece suporte ao acesso unificado apenas para Amazon Web Services.

Você pode usar Atlas Kubernetes Operator para configurar o acesso unificado para uma função do Amazon Web Services IAM no AtlasProject Recurso personalizado.

Importante

Se você operar o Atlas Kubernetes Operator em um modelo CRD independente, não poderá configurar a autenticação do Amazon Web Services IAM usando atlasProject parâmetros. Para configurar a autenticação IAM do Amazon Web Services para seu projeto Atlas diretamente, consulte Configurar a autenticação com o Amazon Web Services IAM.

Você precisa das seguintes informações da chave de API pública, chave de API privada e ID da organização para configurar o acesso do Atlas Kubernetes Operator ao Atlas.

  • Se você quiser que o Atlas Kubernetes Operator crie um novo projeto do Atlas , concedaacesso programático a uma organização. Se sua organização exigir uma lista de acesso IP para a API Atlas Administration, você também deverá configurar a lista de acesso da API.

    Importante

    Você deve atribuir a chave API ao role da organização Organization Project Creator ou superior.

  • Se você quiser trabalhar com um projeto Atlas existente, adicione acesso a um projeto. Se sua organização exigir uma lista de acesso IP para a API Atlas Administration, você também deverá configurar a lista de acesso da API.

    Importante

    Você deve atribuir à chave de API ao role de projeto Project Owner .

Para saber mais, consulte Configurar Acesso ao Atlas.

1
  1. Especifique um espaço reservado de valor vazio dentro do parâmetro spec.cloudProviderIntegrations.iamAssumedRoleArn do Recurso Personalizado doAtlasProject .

  2. Especifique AWS dentro do parâmetro spec.cloudProviderIntegrations.providerName do Recurso PersonalizadoAtlasProject .

Exemplo:

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasProject
metadata:
name: my-project
spec:
name: Test Project
projectIpAccessList:
- ipAddress: "192.0.2.15"
comment: "IP address for Application"
cloudProviderIntegrations:
- providerName: "AWS"
iamAssumedRoleArn: ""
EOF

Importante

Conclua todo este procedimento para configurar o papel para o espaço reservado de valor vazio antes de adicionar quaisquer papéis de acesso adicionais ao seu recurso personalizado do AtlasProject .

2
  1. Execute o comando para recuperar o atlasAWSAccountArn, que você precisa para as próximas etapas.

    kubectl get atlasprojects my-project -o=jsonpath='{.status.cloudProviderIntegrations.atlasAWSAccountArn.type}'
    arn:aws:iam::198765432109:root
  2. Execute o comando para recuperar o atlasAssumedRoleExternalId, que você precisa para as próximas etapas.

    kubectl get atlasprojects my-project -o=jsonpath='{.status.cloudProviderIntegrations.atlasAssumedRoleExternalId.type}'
    1a234b56-c789-0d12-345e-67f89012345a
3

Você pode usar uma role IAM existente ou criar uma nova role IAM para acesso unificado.

Modifique a política de confiança do seu perfil AWS IAM utilizando a seguinte política de confiança personalizada. Substitua as linhas destacadas pelos valores que você recuperou em uma etapa anterior.

{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Principal":{
"AWS":"<atlasAWSAccountArn>"
},
"Action":"sts:AssumeRole",
"Condition":{
"StringEquals":{
"sts:ExternalId":"<atlasAssumedRoleExternalId>"
}
}
}
]
}

Crie a função AWS IAM usando a seguinte política de confiança personalizada. Substitua as linhas destacadas pelos valores que você recuperou em uma etapa anterior.

{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Principal":{
"AWS":"<atlasAWSAccountArn>"
},
"Action":"sts:AssumeRole",
"Condition":{
"StringEquals":{
"sts:ExternalId":"<atlasAssumedRoleExternalId>"
}
}
}
]
}
4

Na seção Roles do Console de Gerenciamento Amazon Web Services , clique no papel IAM que você editou ou criou para acesso do Atlas. A Amazon Web Services exibe o ARN na seção Summary .

5

Substitua o espaço reservado de valor vazio no parâmetro spec.cloudProviderIntegrations.iamAssumedRoleArn do AtlasProject Recurso personalizado pelo AWS ARN da função IAM da etapa anterior.

Exemplo:

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasProject
metadata:
name: my-project
spec:
name: Test Project
projectIpAccessList:
- ipAddress: "192.0.2.15"
comment: "IP address for Application"
cloudProviderIntegrations:
- providerName: "AWS"
iamAssumedRoleArn: "arn:aws:iam::123456789012:role/aws-service-role/support.amazonaws.com/myRole"
EOF
6
  1. Execute o comando para recuperar o status:

    kubectl get atlasprojects my-project -o=jsonpath='{.status.cloudProviderIntegrations}'
  2. Verifique o status READY .

    • Se o status for CREATED, o Atlas criou o role, mas você não o autorizou na Amazon Web Services.

    • Se o status for EMPTY_ARN, o Atlas criou o role, mas você não especificou o spec.cloudProviderIntegrations.iamAssumedRoleArn.

    • Se o status for READY , o Atlas criou a role e você a autorizou na AWS .

Voltar

Federado

Nesta página