Data Federation 및 미사용 데이터 암호화를 포함한 일부 Atlas 기능은 Amazon Web Services IAM 역할로 인증합니다. When Atlas Amazon Web Services 서비스에 액세스할 때 IAM 역할맡습니다.
Project Owner 역할 있는 경우 Atlas 계정에 대해 가정된 IAM 역할 설정하다 하여 Atlas 관리 API 또는 Atlas UI 와 함께 사용할 수 있습니다. Atlas AWS에 대해서만 통합 액세스 지원합니다.
Atlas Kubernetes Operator 사용하여 AtlasProject Custom Resource(사용자 지정 리소스)에서 AWS IAM 역할 에 대한 통합 액세스 설정하다 수 있습니다.
중요
독립적인 CRD 모델로 Atlas Kubernetes Operator 운영하는 경우, atlasProject 매개변수를 사용하여 AWS IAM 인증 구성할 수 없습니다. Atlas 프로젝트 에 대한 AWS IAM 인증 직접 구성하려면 AWS IAM으로 인증 설정을 참조하세요.
전제 조건
Atlas에 대한 Atlas Kubernetes Operator 액세스 권한을 구성하려면 다음의 공개 API 키, 비공개 API 키 및 조직 ID 정보가 필요합니다.
Atlas Kubernetes Operator 가 새 Atlas 프로젝트 를 생성하도록 하려면Grant Programmatic Access to an Organization(조직에 프로그래밍 방식 액세스 권한을 부여합니다)을 클릭합니다. 조직 에서 Atlas 관리 API 에 대한 IP 액세스 목록 이 필요한 경우 API 액세스 목록도 구성해야 합니다.
중요
API 키를 Organization Project Creator 조직 역할 이상으로 할당해야 합니다.
기존 Atlas 프로젝트 로 작업하려면 프로젝트에서 프로젝트액세스를 추가합니다. 조직 에서 Atlas 관리 API 에 대한 IP 액세스 목록 이 필요한 경우 API 액세스 목록도 구성해야 합니다.
중요
API 키에 Project Owner 프로젝트 역할을 할당해야 합니다.
API 키 대신 서비스 계정 도 사용할 수 있습니다.
자세히 알아보려면 Atlas에 대한 액세스 구성을 참조하세요.
절차
spec.cloudProviderIntegrations 필드를 AtlasProject 사용자 지정 리소스에 추가합니다.
spec.cloudProviderIntegrations.iamAssumedRoleArn 내에 빈 값 자리 표시자를 지정합니다.
AtlasProjectCustom Resource(사용자 지정 리소스)의 매개변수입니다.spec.cloudProviderIntegrations.providerName 내에
AWS를 지정합니다.AtlasProjectCustom Resource(사용자 지정 리소스)의 매개변수입니다.
예시:
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
중요
AtlasProject 사용자 지정 리소스에 추가 액세스 역할을 추가하기 전에 이 전체 절차를 완료하여 빈 값 자리 표시자에 대한 역할을 구성하세요.
프로젝트의 atlasAWSAccountArn 및 atlasAssumedRoleExternalId를 조회합니다.
명령을 실행하여 다음 단계에 필요한
atlasAWSAccountArn을 검색합니다.kubectl get atlasprojects my-project -o=jsonpath='{.status.cloudProviderIntegrations.atlasAWSAccountArn.type}' arn:aws:iam::198765432109:root 명령을 실행하여 다음 단계에 필요한
atlasAssumedRoleExternalId을 검색합니다.kubectl get atlasprojects my-project -o=jsonpath='{.status.cloudProviderIntegrations.atlasAssumedRoleExternalId.type}' 1a234b56-c789-0d12-345e-67f89012345a
AWS IAM 역할 신뢰 정책을 수정합니다.
기존 IAM 역할을 사용하거나 통합 액세스를 위한 새 IAM 역할을 생성할 수 있습니다.
다음 사용자 지정 신뢰 정책을 사용하여 Amazon Web Services IAM 역할에 대한 신뢰 정책을 수정합니다. 강조 표시된 줄을 이전 단계에서 검색한 값으로 바꿉니다.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"<atlasAWSAccountArn>" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "sts:ExternalId":"<atlasAssumedRoleExternalId>" } } } ] }
다음 사용자 지정 신뢰 정책을 사용하여 Amazon Web Services IAM 역할 생성 합니다. 강조 표시된 줄을 이전 단계에서 검색한 값으로 바꿉니다.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"<atlasAWSAccountArn>" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "sts:ExternalId":"<atlasAssumedRoleExternalId>" } } } ] }
Atlas Kubernetes Operator 사용하여 IAM 역할의 액세스 부여합니다.
spec.cloudProviderIntegrations.iamAssumedRoleArn 내의 빈 값 자리 표시자를 바꿉니다. AtlasProject 사용자 지정 리소스 의 매개변수를 이전 단계의 IAM 역할의 AWS ARN 을(를) 사용하세요.
예시:
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
cloudProviderIntegrations의 상태를 확인합니다.
명령을 실행하여 상태를 검색합니다.
kubectl get atlasprojects my-project -o=jsonpath='{.status.cloudProviderIntegrations}' READY상태를 확인합니다.상태가
CREATED인 경우 Atlas에서 역할을 생성했지만 Amazon Web Services 내에서 권한을 부여하지 않은 것입니다.상태가
EMPTY_ARN인 경우 Atlas에서 역할을 생성했지만spec.cloudProviderIntegrations.iamAssumedRoleArn을 지정하지 않은 경우입니다.상태가
READY인 경우 Atlas가 역할을 생성한 것이며 Amazon Web Services 내에서 권한을 부여한 것입니다.