Algunas funciones de Atlas, incluidas la federación de datos y el cifrado en reposo, se autentican con Roles de AWS IAMCuando Atlas accede a los servicios de AWS, asume un rol de IAM.
Puede configurar un rol de IAM asumido para su cuenta de Atlas para usar con la API de administración de Atlas o la interfaz de usuario de Atlas si tiene la
Rol Project Owner. Atlas admite acceso unificado solo para AWS.
Puede utilizar Atlas Kubernetes Operator para configurar el acceso unificado para una función de AWS IAM en AtlasProject Recurso personalizado.
Importante
Si opera Atlas Kubernetes Operator con un modelo CRD independiente, no podrá configurar la autenticación de AWS IAM mediante los atlasProject parámetros. Para configurar la autenticación de AWS IAM directamente para su proyecto Atlas, consulte Configurar la autenticación con AWS IAM.
Requisitos previos
Necesita la siguiente clave API pública, clave API privada y la información de ID de la organización para configurar el acceso del operador de Kubernetes de Atlas a Atlas.
Si desea que el operador de Kubernetes de Atlascree un nuevo proyecto de Atlas, otorgue acceso programático a unaorganización. Si su organización requiere una lista de acceso de IP para la API de administración de Atlas, también debe configurarla.
Importante
Debes asignar la clave API a la Organization Project Creator rol organizacional o superior.
Si desea trabajar con un proyecto de Atlas existente, agregue el acceso al proyecto desdeun proyecto. Si su organización requiere una lista de acceso IP para la API de administración de Atlas, también debe configurarla.
Importante
Debe asignar al clave API el rol de proyecto Project Owner.
Para obtener más información, consulte Configurar el acceso a Atlas.
Procedimiento
Agregue los spec.cloudProviderIntegrations campos al AtlasProject recurso personalizado.
Especifique un marcador de posición de valor vacío dentro del parámetro
spec.cloudProviderIntegrations.iamAssumedRoleArndelAtlasProjectrecurso personalizado.Especifique
AWSdentro del parámetrospec.cloudProviderIntegrations.providerNamedelAtlasProjectrecurso personalizado.
Ejemplo:
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
Complete todo este procedimiento para configurar el rol para el marcador de valor vacío antes de agregar cualquier rol de acceso adicional a su recurso personalizado AtlasProject.
Recupere los atlasAWSAccountArn y del atlasAssumedRoleExternalId proyecto.
Ejecute el comando para recuperar el
atlasAWSAccountArnque necesita para los siguientes pasos.kubectl get atlasprojects my-project -o=jsonpath='{.status.cloudProviderIntegrations.atlasAWSAccountArn.type}' arn:aws:iam::198765432109:root Ejecute el comando para recuperar el
atlasAssumedRoleExternalIdque necesita para los siguientes pasos.kubectl get atlasprojects my-project -o=jsonpath='{.status.cloudProviderIntegrations.atlasAssumedRoleExternalId.type}' 1a234b56-c789-0d12-345e-67f89012345a
Modifique su política de confianza del rol de AWS IAM.
Puede utilizar un rol de IAM existente o crear un nuevo rol de IAM para acceso unificado.
Modifique la política de confianza de su rol de AWS IAM con la siguiente política de confianza personalizada. Reemplace las líneas resaltadas con los valores obtenidos en un paso anterior.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"<atlasAWSAccountArn>" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "sts:ExternalId":"<atlasAssumedRoleExternalId>" } } } ] }
Cree el rol de AWS IAM con la siguiente política de confianza personalizada. Reemplace las líneas resaltadas con los valores obtenidos en un paso anterior.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"<atlasAWSAccountArn>" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "sts:ExternalId":"<atlasAssumedRoleExternalId>" } } } ] }
Autorice el acceso al rol de IAM mediante Atlas Kubernetes Operator.
Reemplace el marcador de posición de valor vacío dentro del spec.cloudProviderIntegrations.iamAssumedRoleArn parámetro del AtlasProject recurso personalizado con el ARN de AWS del rol de IAM del paso anterior.
Ejemplo:
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 el estado cloudProviderIntegrations del.
Ejecute el comando para recuperar el estado:
kubectl get atlasprojects my-project -o=jsonpath='{.status.cloudProviderIntegrations}' Verifique el estado
READY.Si el estado
CREATEDes, Atlas creó el rol pero no lo ha autorizado dentro de AWS.Si el estado es
EMPTY_ARN, Atlas creó el rol pero no ha especificadospec.cloudProviderIntegrations.iamAssumedRoleArn.Si el estado
READYes, Atlas ha creado el rol y usted lo ha autorizado dentro de AWS.