Configurar integrações unificadas do fornecedor de nuvem
Nesta página
Algumas funcionalidades do Atlas , incluindo Data Federation e Encryption at Rest, autenticam com Funções do Amazon Web ServicesAmazon Web Services IAM . Quando o Atlas acessa Amazon Web Services os serviços do Amazon Web Services, ele assume uma função do 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
Pré-requisitos
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.
Procedimento
Adicione os spec.cloudProviderIntegrations
campos ao AtlasProject
recurso personalizado.
Especifique um espaço reservado de valor vazio dentro do parâmetro
spec.cloudProviderIntegrations.iamAssumedRoleArn
do Recurso Personalizado doAtlasProject
.Especifique
AWS
dentro do parâmetrospec.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
.
Recupere o atlasAWSAccountArn
e o do atlasAssumedRoleExternalId
projeto.
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 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
Modifique sua política Amazon Web Services de confiança de role do Amazon Web ServicesIAM.
Você pode usar uma role IAM existente ou criar uma nova role IAM para acesso unificado.
Modifique a política de confiança para sua Amazon Web Services função IAM do 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>" } } } ] }
Criar a Amazon Web Services função IAM do 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>" } } } ] }
Autorize o acesso da função do IAM usando o Atlas Kubernetes Operator.
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
Verifique o status do cloudProviderIntegrations
.
Execute o comando para recuperar o status:
kubectl get atlasprojects my-project -o=jsonpath='{.status.cloudProviderIntegrations}' 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 ospec.cloudProviderIntegrations.iamAssumedRoleArn
.Se o status for
READY
, o Atlas criou a role e você a autorizou na AWS .