Este tutorial muestra cómo crear una instancia de base de datos federada en Atlas a partir de archivos de configuración de Kubernetes con Atlas Kubernetes Operator. La instancia de base de datos federada de este tutorial conecta un AWS CuboS y un clúster Atlas.3
Requisitos previos
Este tutorial requiere:
Un clúster de Kubernetes en ejecución con Atlas Kubernetes Operator desplegados, incluyendo un
AtlasProjectRecurso personalizado.Una cuenta de usuario de AWS con permisos para modificar roles de IAM.
La CLI Atlas.
Procedimiento
Importante
Las definiciones de recursos personalizados tienen prioridad
Atlas Kubernetes Operator utiliza archivos de configuración de recursos personalizados para administrar la configuración de Atlas. Cada definición de recurso personalizado anula la configuración especificada de otras maneras, como en la interfaz de usuario de Atlas. Si elimina un recurso personalizado, Atlas Kubernetes Operator elimina el objeto de Atlas a menos que utilice anotaciones para omitir la eliminación. Para obtener más información, consulte los procesos de creación y actualización y de eliminación.
Cree el rol AWS IAM en Atlas
Ejecute el siguiente comando de la CLI de Atlas para crear el nuevo rol de AWS IAM en Atlas. Reemplace el siguiente marcador de posición con su valor:
Marcador de posiciónDescripciónPROJECT-IDCadena hexadecimal única de 24caracteres que identifica el proyecto Atlas a utilizar.
atlas cloudProviders accessRoles aws create --projectId <PROJECT-ID> Tenga en cuenta los valores de campo devueltos
RoleID,Atlas AWS Account ARNyUnique External ID:AWS IAM role '<RoleID>' successfully created. Atlas AWS Account ARN: <AtlasAWSAccountARN> Unique External ID: <AtlasAssumedRoleExternalID>
Modifique su política de confianza del rol de AWS IAM.
Inicie sesión en su consola de administración de AWS.
Navegar hasta el Identity and Access Management (IAM) servicio.
Seleccione Roles en la navegación del lado izquierdo.
Haga clic en el rol de IAM existente que desea utilizar para acceder a Atlas de la lista de roles.
Seleccione la pestaña Trust Relationships.
Haga clic en el botón Edit trust relationship.
Edite el Policy Document. Agregue un nuevo objeto
Statementcon el siguiente contenido.Nota
Reemplace las líneas resaltadas con los valores devueltos en el paso anterior.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"<atlasAWSAccountArn>" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "sts:ExternalId":"<atlasAssumedRoleExternalId>" } } } ] } Haga clic en el botón Update Trust Policy.
Cree el AtlasDataFederation recurso personalizado.
Ejecute el siguiente comando para crear el AtlasDataFederation recurso personalizado.roleId El valor debe coincidir con el valor devuelto para RoleID en el paso anterior y spec.projectRef.name el valor debe coincidir con el nombre de su AtlasProject recurso personalizado:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasDataFederation metadata: name: my-federated-deployment spec: projectRef: name: my-project namespace: default cloudProviderConfig: aws: roleId: 12345678 testS3Bucket: my-bucket dataProcessRegion: cloudProvider: AWS region: OREGON_USA name: my-fdi storage: databases: - collections: - dataSources: - allowInsecure: false collection: my-collection collectionRegex: database: my-database databaseRegex: defaultFormat: ".avro" path: / provenanceFieldName: string storeName: my-data-store urls: - string: name: my-collection-mdb maxWildcardCollections: 100 name: my-database-mdb views: - name: my-view pipeline: source: my-source-collection stores: - name: my-store provider: S3 additionalStorageClasses: - STANDARD bucket: my-bucket delimiter: / includeTags: false prefix: data- public: false region: US_WEST_1 EOF
Verifique el estado de su instancia de base de datos federada.
Ejecute el siguiente comando hasta que reciba una respuesta True, que indica que el usuario de la base de datos está listo:
kubectl get atlasdatafederation my-federated-deployment -o=jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
Da los siguientes pasos
Para configurar puntos finales privados para su instancia de base de datos federada, consulte Administrar puntos finales privados.