Atlas Administration API 시작하기
이 페이지의 내용
- Atlas 에 대한 프로그래밍 방식의 액세스 를 위한 OAuth 2.0 인증 은 Preview 기능 으로 제공됩니다.
- 기능 및 해당 설명서는 미리 보기 기간에 언제든지 변경될 수 있습니다. OAuth 2.0 인증 을 사용하려면 Atlas 관리 API 에 대한 요청에 사용할서비스 계정을 만듭니다.
중요
각 Atlas 관리 API에는 고유한 리소스가 있으며 초기 설정이 필요합니다.
공용 인터넷을 통해서만 Atlas Administration API 서버에 액세스할 수 있습니다. 네트워크 피어링 또는 비공개 엔드포인트를 사용하는 연결에서는 Atlas Administration API를 사용할 수 없습니다.
자세히 보려면 Atlas Programmatic Access참조합니다.
Atlas Administration API는 REST 아키텍처 스타일의 원칙을 따라 Atlas의 기능에 프로그래밍 방식으로 액세스할 수 있는 여러 내부 리소스를 노출합니다. 자세한 내용은 Atlas Administration API 참조를 확인하세요.
Atlas에 프로그래밍 방식 액세스 권한 부여
다음 두 가지 인증 방법 중 하나를 사용하여 조직 또는 프로젝트에 프로그래밍 방식으로 액세스할 수 있습니다.
API 키 | 서비스 계정(미리 보기) |
---|---|
HTTP Digest 인증을 사용하는 Atlas 인증의 레거시 방식입니다. | |
API 키는 공개 키와 비공개 키의 두 부분으로 구성됩니다. 이 두 부분은 Atlas 에 API 요청을 할 때 사용자 이름 및 비밀번호와 동일한 기능을 제공 합니다. | 서비스 계정을 사용하면 권한을 관리 하고 액세스 토큰을 만들 수 있습니다. 서비스 계정에는 액세스 토큰을 생성하기 위한 사용자 이름 및 비밀번호 역할을 하는 클라이언트 ID 와 시크릿이 있습니다. 액세스 토큰을 사용하면 Atlas 에 API 요청을 할 수 있습니다. |
Atlas는 논스라고 하는 고유한 값을 사용하여 공개 키와 개인 키를 해시합니다. 논스는 HTTP Digest Authentication 사양에 따라 단시간 동안만 유효합니다. 이는 리플레이 공격을 방지하기 위한 것이므로 논스를 캐시하여 영구적으로 사용할 수 없습니다. | 서비스 계정을 만든 후에는 클라이언트 ID와 비밀번호를 사용하여 API 요청을 인증하는 액세스 토큰을 생성합니다. 액세스 토큰은 OAuth 2.0 사양에 따라 1시간(3600 초) 동안만 유효합니다. 액세스 토큰이 만료되면 유출된 액세스 토큰을 시간 제한 없이 사용할 수 있는 리플레이 공격을 방지할 수 있습니다. |
Atlas 역할은 API 키가 수행할 수 있는 작업을 제한합니다. API 키가 오류 없이 API 엔드포인트를 호출할 수 있도록 하려면 사용자에 대한 역할과 마찬가지로 API 키에 역할을 부여해야 합니다. | Atlas 역할은 서비스 계정이 액세스 토큰으로 수행할 수 있는 작업을 제한합니다. 액세스 토큰이 오류 없이 API 엔드포인트를 호출할 수 있도록 하려면 사용자 역할과 마찬가지로 서비스 계정에도 역할을 부여해야 합니다. |
Atlas 는 많은 리소스를 프로젝트 에 바인딩합니다. 대부분의 API 리소스 URL | Atlas 는 많은 리소스를 프로젝트 에 바인딩합니다. 대부분의 API 리소스 URL |
각 API 키는 하나의 조직에만 속하지만, 해당 조직의 프로젝트 수에 상관없이 API 키에 액세스 권한을 부여할 수 있습니다. | 각 서비스 계정은 하나의 조직에만 속하지만, 해당 조직의 프로젝트 수에 관계없이 서비스 계정에 대한 액세스 권한을 부여할 수 있습니다. |
Atlas UI를 통해 Atlas에 로그인하는 데 API 키를 사용할 수 없습니다. | 서비스 계정 또는 액세스 토큰을 사용하여 Atlas UI를 통해 Atlas에 로그인할 수 없습니다. |
선택 사항은 다음과 같습니다. Atlas Administration API에 대한 IP 액세스 목록이 필요합니다.
Atlas에서는 IP 액세스 목록이 필요하지 않은 경우 인터넷의 모든 주소에서 Atlas 관리 API 요청을 할 수 있으며, 이 경우 API 요청은 IP 액세스 목록에 지정한 위치 기반 IP 또는 CIDR 주소의 요청으로만 제한됩니다.
각 인증 방법에는 고유한 IP 액세스 목록이 있습니다. 모든 Atlas 관리 API 요청에 대해 IP 액세스 목록이 필요한 경우, API 키 또는 서비스 계정에 대해 하나 이상의 IP 액세스 목록 항목을 정의해야 API 요청에 사용할 수 있습니다.
Atlas UI를 사용하여 새 조직을 만들면 Atlas는 기본적으로 API 액세스 목록 요구 사항을 허용합니다. 비활성화하려면 조직을 생성할 때 Require IP Access List for the Atlas Administration API를 OFF로 전환합니다.
조직을 만든 후 모든 Atlas Administration API 요청에 대해 IP 액세스 목록이 필요하도록 조직을 설정하려면 다음 단계를 따르세요.
Atlas에서 Organization Settings 페이지로 이동합니다.
아직 표시되지 않은 경우 다음 목록에서 원하는 조직 을 선택하세요. 탐색 표시줄의 Organizations 메뉴.
1} 메뉴 옆에 있는 아이콘을 클릭합니다.Organization Settings Organizations
조직 설정 페이지가 표시됩니다.
조직에 프로그래밍 방식 액세스 권한 부여
다음과 같은 절차를 사용하여 API 키 또는 서비스 계정을 통해 조직에 프로그래밍 방식의 액세스 권한을 부여합니다. 이 두 가지 인증 방법에 대해 자세히 알아보려면 Atlas Administration API 인증을 참조하세요.
중요
서비스 계정은 현재 미리 보기로 제공됩니다. 자세히 알아보려면 서비스 계정 개요를 참조하세요.
필요한 액세스 권한
다음 조치를 수행하려면 Atlas에 대한 Organization Owner
액세스 권한이 있어야 합니다.
API 키 만들기
Atlas CLI를 사용하여 조직에서 API 키를 생성하려면 다음 명령을 실행하십시오.
atlas organizations apiKeys create [options]
명령 구문과 매개 변수에 관한 자세한 내용은 Atlas CLI 설명서의 Atlas 조직 apiKeys 만들기를 참조하세요.
API 키에 대한 API 액세스 목록 항목 추가
Atlas CLI를 사용하여 API 키에 대한 IP 액세스 목록 항목을 생성하려면 다음 명령을 실행하십시오.
atlas organizations apiKeys accessLists create [options]
명령 구문과 매개 변수에 관한 자세한 내용은 Atlas CLI 설명서의 Atlas 조직 apiKeys accessLists 만들기를 참조하세요.
Atlas에서 Organization Access Manager 페이지로 이동합니다.
아직 표시되지 않은 경우 다음 목록에서 원하는 조직 을 선택하세요. 탐색 표시줄의 Organizations 메뉴.
다음 단계 중 하나를 수행합니다.
탐색 표시줄의 Access Manager 메뉴에서 Organization Access 을 선택합니다.
사이드바에서 Access Manager를 클릭합니다.
조직 액세스 관리자 페이지가 표시됩니다.
API Key Information를 입력합니다.
Description을(를) 입력합니다.
Organization Permissions 메뉴에서 API 키에 대한 새 역할을 선택합니다.
Atlas에서 Organization Access Manager 페이지로 이동합니다.
아직 표시되지 않은 경우 다음 목록에서 원하는 조직 을 선택하세요. 탐색 표시줄의 Organizations 메뉴.
다음 단계 중 하나를 수행합니다.
탐색 표시줄의 Access Manager 메뉴에서 Organization Access 을 선택합니다.
사이드바에서 Access Manager를 클릭합니다.
조직 액세스 관리자 페이지가 표시됩니다.
서비스 계정 정보를 입력합니다.
Name을(를) 입력합니다.
Description을(를) 입력합니다.
Client Secret Expiration 메뉴에서 기간을 선택합니다.
조직 권한 메뉴에서 서비스 계정에 대한 새 역할을 선택합니다.
Atlas Administration API를 사용하여 조직의 서비스 계정을 생성할 수 있습니다.
서비스 계정을 만든 후 출력에서 {CLIENT-ID}
와 {CLIENT-SECRET}
를 복사하고 저장하면 다음 예시와 유사하게 표시됩니다. 오직 이 때만 전체 클라이언트를 볼 수 있는 때입니다. API를 요청할 때 이 정보가 필요합니다.
{ "createdAt" : "2024-04-23T17:47:17Z", "description" : "Service account for my organization.", "clientId" : "{CLIENT-ID}", "name" : "My Service Account", "roles" : [ "ORG_MEMBER" ], "secrets" : [ { "createdAt" : "2024-04-23T17:47:17Z", "expiresAt" : "2024-12-01T00:00:00Z", "id" : "6627f7259d39d858378c9e30", "lastUsedAt" : null, "secret" : "{CLIENT-SECRET}" } ] }%
프로젝트에 프로그래밍 방식 액세스 권한 부여
API 키나 서비스 계정을 통해 프로젝트에 프로그래밍 방식 액세스 권한을 부여하려면 다음 절차를 따르세요. 이 두 가지 인증 방법에 대해 자세히 알아보려면 Atlas Administration API 인증을 참조하세요.
중요
서비스 계정은 현재 미리 보기로 제공됩니다. 자세히 알아보려면 서비스 계정 개요를 참조하세요.
필요한 액세스 권한
API 키에 프로젝트에 대한 액세스 권한을 부여하려면 해당 프로젝트에 대한 Project Owner
액세스 권한이 있어야 합니다.
서비스 계정에 프로젝트에 대한 액세스 권한을 부여하려면 프로젝트를 소유한 조직에 대한 Organization Owner
액세스 권한이 있어야 합니다.
프로젝트에 기존 조직 액세스 권한 할당
조직의 API 키 또는 서비스 계정을 이미 생성한 경우 이를 프로젝트에 할당하여 해당 프로젝트에 Atlas Administration API에 대한 액세스 권한을 부여할 수 있습니다.
Atlas CLI를 사용하여 프로젝트에 API 키를 할당하려면 다음 명령을 실행하십시오.
atlas projects apiKeys assign <ID> [options]
명령 구문과 매개 변수에 관한 자세한 내용은 Atlas CLI 설명서의 Atlas 프로젝트 apiKeys 할당를 참조하세요.
Atlas UI를 사용하여 프로젝트에 조직 API 키를 할당하는 방법을 다음과 같습니다.
Atlas에서 Project Access Manager 페이지로 이동합니다.
아직 표시되지 않은 경우 다음 목록에서 원하는 조직 을 선택하세요. 탐색 표시줄의 Organizations 메뉴.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
다음 단계 중 하나를 수행합니다.
탐색 표시줄의 Access Manager 메뉴에서 Project Access 을 선택합니다.
Projects 메뉴 옆의 Options 메뉴를 확장하고 Project Settings을 클릭한 다음 사이드바에서 Access Manager를 클릭합니다.
프로젝트 액세스 관리자 페이지가 표시됩니다.
프로젝트에 API 키를 추가합니다.
필드에 공개 키를 입력하세요.
Project Permissions 메뉴에서 API 키에 대한 새 역할을 선택합니다.
경고
프로젝트에 조직 서비스 계정을 할당하면 Project Owner
가 비밀 순환 및 IP 액세스 목록 업데이트를 포함하여 서비스 계정을 관리할 수 있습니다.
Atlas에서 Project Access Manager 페이지로 이동합니다.
아직 표시되지 않은 경우 다음 목록에서 원하는 조직 을 선택하세요. 탐색 표시줄의 Organizations 메뉴.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
다음 단계 중 하나를 수행합니다.
탐색 표시줄의 Access Manager 메뉴에서 Project Access 을 선택합니다.
Projects 메뉴 옆의 Options 메뉴를 확장하고 Project Settings을 클릭한 다음 사이드바에서 Access Manager를 클릭합니다.
프로젝트 액세스 관리자 페이지가 표시됩니다.
서비스 계정에 프로젝트 역할을 할당합니다.
표시되는 메뉴에서 서비스 계정의 새 역할을 선택합니다.
Atlas Administration API를 사용하여 기존 서비스 계정에 프로젝트에 대한 액세스 권한을 부여할 수 있습니다.
프로젝트에서 프로젝트 액세스 추가
조직의 API 키 또는 서비스 계정을 아직 생성하지 않은 경우 프로젝트에 API 키 또는 서비스 계정을 생성해서 해당 프로젝트에 Atlas Administration API에 대한 액세스 권한을 부여할 수 있습니다. 프로젝트에 대해 생성한 API 키 또는 서비스 계정은 Organization Member
권한이 있는 상위 조직에 자동으로 추가됩니다.
Atlas CLI를 사용하여 프로젝트에 대한 API 키를 생성하려면 다음 명령어를 실행하세요.
atlas projects apiKeys create [options]
명령 구문과 매개 변수에 관한 자세한 내용은 Atlas CLI 설명서의 Atlas 프로젝트 apiKeys 만들기를 참조하세요.
프로젝트의 API 키를 생성한 후 Atlas UI를 사용하여 API 액세스 목록 항목을 추가합니다. API 액세스 목록을 설정할 때까지 프로젝트에 API 키를 사용할 수 없습니다.
참고
Atlas CLI 제한 사항
Atlas CLI를 사용하여 프로젝트 API 키에 대한 API 액세스 목록을 편집할 수 없습니다.
Atlas UI를 사용하여 API 액세스 목록 항목을 추가하려면,
Atlas UI를 사용하여 프로젝트에 대한 API 키를 생성하려면 다음 안내를 따르세요.
Atlas에서 Project Access Manager 페이지로 이동합니다.
아직 표시되지 않은 경우 다음 목록에서 원하는 조직 을 선택하세요. 탐색 표시줄의 Organizations 메뉴.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
다음 단계 중 하나를 수행합니다.
탐색 표시줄의 Access Manager 메뉴에서 Project Access 을 선택합니다.
Projects 메뉴 옆의 Options 메뉴를 확장하고 Project Settings을 클릭한 다음 사이드바에서 Access Manager를 클릭합니다.
프로젝트 액세스 관리자 페이지가 표시됩니다.
API Key Information를 입력합니다.
Create API Key 페이지에서:
Description을(를) 입력합니다.
Project Permissions 메뉴에서 API 키에 대한 새 역할을 선택합니다.
Atlas UI를 사용하여 프로젝트에 대한 서비스 계정을 생성하려면 다음 안내를 따르세요.
Atlas에서 Project Access Manager 페이지로 이동합니다.
아직 표시되지 않은 경우 다음 목록에서 원하는 조직 을 선택하세요. 탐색 표시줄의 Organizations 메뉴.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
다음 단계 중 하나를 수행합니다.
탐색 표시줄의 Access Manager 메뉴에서 Project Access 을 선택합니다.
Projects 메뉴 옆의 Options 메뉴를 확장하고 Project Settings을 클릭한 다음 사이드바에서 Access Manager를 클릭합니다.
프로젝트 액세스 관리자 페이지가 표시됩니다.
서비스 계정 정보를 입력합니다.
Name을(를) 입력합니다.
Description을(를) 입력합니다.
Client Secret Expiration 메뉴에서 기간을 선택합니다.
프로젝트 권한 메뉴에서 서비스 계정에 대한 새 역할을 선택합니다.
Atlas Administration API를 사용하여 프로젝트에 대한 서비스 계정을 생성할 수 있습니다.
서비스 계정을 만든 후 출력에서 {CLIENT-ID}
와 {CLIENT-SECRET}
를 복사하고 저장하면 다음 예시와 유사하게 표시됩니다. 오직 이 때만 전체 클라이언트를 볼 수 있는 때입니다. API를 요청할 때 이 정보가 필요합니다.
{ "createdAt" : "2024-04-23T17:47:17Z", "description" : "Service account for my organization.", "clientId" : "{CLIENT-ID}", "name" : "My Service Account", "roles" : [ "ORG_MEMBER" ], "secrets" : [ { "createdAt" : "2024-04-23T17:47:17Z", "expiresAt" : "2024-12-01T00:00:00Z", "id" : "6627f7259d39d858378c9e30", "lastUsedAt" : null, "secret" : "{CLIENT-SECRET}" } ] }%
API 요청하기
Atlas Administration API는 API 키 또는 서비스 계정이라는 두 가지 인증 방법 중 하나를 사용하여 요청을 인증합니다. 다음 절차를 완료하려면 기본 인증 방법을 구성할 때 저장한 키나 암호가 필요합니다.
중요
서비스 계정은 현재 미리 보기로 제공됩니다. 자세히 알아보려면 서비스 계정 개요를 참조하세요.
모든 Atlas Administration API의 기본 URL은 다음과 같습니다.
https://cloud.mongodb.com/api/atlas/<version>
요청은 다음 예시와 유사해야 하며, 여기서 {PUBLIC-KEY}
는 API 공개 키이고 {PRIVATE-KEY}
는 해당 개인 키입니다. MongoDB의 Postman 작업 공간을 사용하면 Atlas Administration API를 통해 사용 가능한 엔드포인트를 탐색할 수 있습니다.
다음 샘플 GET
요청은 조직의 모든 프로젝트를 반환합니다.
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Content-Type: application/json" \ --header "Accept: application/vnd.atlas.2024-08-05+json" \ --include \ --request GET "https://cloud.mongodb.com/api/atlas/v2/groups"
다음 샘플 POST
요청은 요청 본문을 사용하여 조직에 MyProject
라는 이름의 프로젝트를 생성합니다.
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Content-Type: application/json" \ --header "Accept: application/vnd.atlas.2024-08-05+json" \ --include \ --request POST "https://cloud.mongodb.com/api/atlas/v2/groups" \ --data ' { "name": "MyProject", "orgId": "5a0a1e7e0f2912c554080adc" }'
서비스 계정을 사용하여 API 요청을 하려면 서비스 계정을 사용하여 액세스 토큰을 생성한 다음 요청에 액세스 토큰을 사용하세요.
서비스 계정의 클라이언트 비밀을 조회합니다.
서비스 계정을 생성한 직후에 저장한 mdb_sa_sk_
로 시작하는 클라이언트 비밀을 찾습니다. 오직 이 때만 전체 클라이언트 비밀을 볼 수 있습니다. 클라이언트 비밀을 저장하지 않은 경우 새 클라이언트 비밀을 생성해야 합니다.
액세스 토큰을 요청합니다.
다음 예시의 {BASE64-AUTH}
를 이전 단계의 출력으로 바꾼 후 실행합니다.
1 curl --request POST \ 2 --url https://cloud.mongodb.com/api/oauth/token \ 3 --header 'accept: application/json' \ 4 --header 'cache-control: no-cache' \ 5 --header 'authorization: Basic {BASE64-AUTH}' \ 6 --header 'content-type: application/x-www-form-urlencoded' \ 7 --data 'grant_type=client_credentials'
{"access_token":"eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCIsImtpZCI6ImYyZjE2YmE4LTkwYjUtNDRlZS1iMWYwLTRkNWE2OTllYzVhNyJ9.eyJpc3MiOiJodHRwczovL2Nsb3VkLWRldi5tb25nb2RiLmNvbSIsImF1ZCI6ImFwaTovL2FkbWluIiwic3ViIjoibWRiX3NhX2lkXzY2MjgxYmM2MDNhNzFhNDMwYjkwNmVmNyIsImNpZCI6Im1kYl9zYV9pZF82NjI4MWJjNjAzYTcxYTQzMGI5MDZlZjciLCJhY3RvcklkIjoibWRiX3NhX2lkXzY2MjgxYmM2MDNhNzFhNDMwYjkwNmVmNyIsImlhdCI6MTcxMzkwNTM1OSwiZXhwIjoxNzEzOTA4OTU5LCJqdGkiOiI4ZTg1MTM3YS0wZGU1LTQ0N2YtYTA0OS1hMmVmNTIwZGJhNTIifQ.AZSFvhcjwVcJYmvW6E_K5UnDmeiX2sJgL27vo5ElzeBuPawRciKkn6ervZ6IpUTx2HHllGgAAMmhaP9B66NywhfjAXC697X9KcOzm81DTtvDjLrFeRSc_3vFmeGvfUKKXljEdWBnbmwCwtBlO5SJuBxb1V5swAl-Sbq9Ymo4NbyepSnF","expires_in":3600,"token_type":"Bearer"}%
중요
액세스 토큰은 1시간(3600초) 동안 유효합니다. 액세스 토큰은 새로 고칠 수 없습니다. 이 액세스 토큰이 만료되면 이 단계를 반복하여 새 토큰을 생성하세요.
API 호출을 실행합니다.
다음 예시의 {ACCESS-TOKEN}
을 이전 단계의 출력으로 바꿉니다.
다음 샘플 GET
요청은 조직의 모든 프로젝트를 반환합니다.
curl --request GET \ --url https://cloud.mongodb.com/api/atlas/v2/groups \ --header 'Authorization: Bearer {ACCESS-TOKEN}' \ --header 'Accept: application/vnd.atlas.2023-02-01+json' \ --header 'Content-Type: application/json'
다음 샘플 POST
요청은 요청 본문을 사용하여 조직에 MyProject
라는 이름의 프로젝트를 생성합니다.
curl --header 'Authorization: Bearer {ACCESS-TOKEN}' \ --header "Content-Type: application/json" \ --header "Accept: application/vnd.atlas.2023-02-01+json" \ --include \ --request POST "https://cloud.mongodb.com/api/atlas/v2/groups" \ --data ' { "name": "MyProject", "orgId": "5a0a1e7e0f2912c554080adc" }'
또한 OpenAPI v3 사양을 지원하는 모든 도구를 사용해 코드 샘플 또는 모의 서버를 생성할 수 있습니다. 예를 들어, Atlas Admin API 사양을 Postman으로 가져와서 curl
명령을 생성할 수 있습니다. Postman을 사용해 curl
명령을 생성하려면 다음을 수행하세요.
MongoDB Atlas 관리 API 설명서에서 다운로드 버튼을 마우스 오른쪽 버튼으로 클릭하고 링크를 복사합니다.
다음 단계
Atlas 관리 API에 대해 자세히 알아보려면 Atlas 관리 API 참고 자료를 확인하세요.
Atlas 관리 API에 대한 프로그래밍 방식의 액세스를 관리하려면 다음 절차 중 하나를 참조하세요.