IBM Cloudant에 대한 액세스 관리
IBM Cloud® Identity and Access Management는 사용자 ID, 서비스 및 액세스 제어를 관리하는 통합된 접근 방식을 제공합니다.
다음 텍스트는 IBM® Cloudant® for IBM Cloud® 과 IBM Cloud Identity and Access Management의 통합을 설명합니다. 다음과 같은 항목을 논의합니다.
- IBM Cloudant 레거시 액세스 제어 및 IBM Cloud IAM 액세스 제어의 차이점
- 사용할 것을 결정하는 데 도움이 되는 각각의 장단점
- HTTP 호출을 사용하여 IBM Cloudant의 클라이언트 라이브러리 내에서 IAM을 사용하는 방법
- IBM Cloudant에서 사용할 수 있는 IAM 작업 및 역할에 대한 설명
자세한 정보는 다음 주제를 포함하는 IAM 의 개요를 참조하십시오.
- 사용자 및 서비스 ID를 관리합니다.
- 사용 가능한 인증 정보를 관리합니다.
- IBM Cloudant 서비스 인스턴스에 대한 액세스를 허용하거나 취소하는 IAM 액세스 정책을 사용합니다.
IBM Cloudant 레거시 액세스 제어 및 IAM 액세스 제어의 차이점
다음 절에서는 IBM Cloudant 간의 차이점에 대한 간략한 개요를 제공합니다. 레거시 액세스 제어 및 IBM Cloud IAM의 액세스 제어 메커니즘.
IBM Cloud Identity and Access Management
- IBM Cloud 전체에서 중앙 집중식으로 액세스를 관리합니다.
- 사용자 또는 서비스가 동일한 인증 정보 세트(예: 동일한 사용자 이름 및 비밀번호 또는 IAM API 키)를 사용하여 다양한 리소스에 액세스할 수 있도록 허용합니다.
- IAM API 키에는 새 데이터베이스 작성과 같은 계정 관리 기능에 대한 액세스 권한이 부여될 수 있습니다.
IBM Cloudant 레거시 액세스 제어
- IBM Cloudant에 고유합니다.
- 각 서비스 인스턴스에 대한 액세스에는 해당 인증 정보 세트가 필요합니다.
- 개별 사용자 또는 서비스에 바인드되지 않은 인증 정보로 HTTP 기본 인증을 사용합니다.
- IBM Cloudant API 키는 데이터베이스 레벨에서만 권한 부여될 수 있습니다.
API 키 참고
이 문서에서 API 키가 언급되는 모든 경우 이는 IAM API 키를 가리킵니다. IBM Cloudant 레거시 액세스 제어에도 API 키의 개념이 존재하며, IBM Cloudant 레거시 인증 정보 또는 사용자 이름 및 비밀번호 조합에 대한 모든 설명에도 IBM Cloudant API 키가 포함되어 있습니다.
IBM Cloudant에서의 IAM 사용 설정
2018년 7월 이후에 프로비저닝되는 모든 IBM Cloudant 서비스 인스턴스는 리소스 그룹에 프로비저닝되며 IBM Cloud IAM과 함께 사용됩니다. 선택적으로 IBM Cloudant 레거시 인증 메커니즘을 사용하도록 선택할 수도 있습니다. IBM Cloudant 카탈로그에서 새 IBM Cloud 인스턴스를 프로비저닝하는 경우 다음과 같은 인증 방법 중 하나를 선택하십시오.
- 레거시 인증 정보 및 IAM 모두 사용
- 이 모드는 IAM및 레거시 인증 정보를 모두 사용하여 계정에 액세스할 수 있음을 의미합니다. 구체적으로 말하면, 계정에 바인드된 모든 애플리케이션에는 IAM 및 레거시 인증 정보 세트가 제공되며 서비스 인증 정보가 생성됩니다.
- IAM만 사용
- 이 모드는 서비스 바인딩 및 자격 증명 생성을 통해 IAM 자격 증명만 제공됨을 의미합니다.
Manager, Reader, Writer 또는 Monitor와 같은 Checkpointer 이외의 IAM 역할을 사용하는 경우에는 더 큰 액세스 권한을 포함하는 레거시 인증 정보를 사용자에게 제공하지 않도록 반드시 IAM만 사용을 사용해야 합니다.
정책 적용
IAM 정책은 가장 높은 수준의 액세스 권한부터 가장 제한된 액세스 권한까지 계층적으로 적용되며, 더 허용적인 정책이 덜 허용적인 정책보다 우선합니다. 예를 들어, 사용자가 데이터베이스에서 ‘ Writer ’ 및 ‘ Reader ’ 서비스 액세스 역할을 모두 가지고 있는 경우, ‘ Reader ’ 역할을 부여하는 정책은 무시됩니다.
이는 서비스 인스턴스 및 데이터베이스 수준 정책에도 적용됩니다.
- 사용자에게 서비스 인스턴스에 대한 ‘
Writer’ 역할과 단일 데이터베이스에 대한 ‘Reader’ 역할을 부여하는 정책이 있는 경우, 데이터베이스 수준 정책은 무시됩니다. - 사용자에게 서비스 인스턴스에 대한 ‘
Reader’ 역할과 단일 데이터베이스에 대한 ‘Writer’ 역할을 부여하는 정책이 있는 경우, 두 정책 모두 적용되며, 해당 개별 데이터베이스에 대해서는 권한 범위가 더 넓은 ‘Writer’ 역할이 우선 적용됩니다.
단일 데이터베이스(또는 데이터베이스 집합)에 대한 액세스를 제한해야 하는 경우, 콘솔이나 CLI를 사용하여 해당 사용자 또는 서비스 ID에 다른 인스턴스 수준 정책이 적용되어 있지 않은지 확인하십시오.
자세히 알아보려면 리소스 정리 및 액세스 권한 할당에 대한 모범 사례를 참조하세요.
IBM Cloudant API 키 및 IAM만 사용
IAM과 함께 IBM Cloudant API 키를 사용하는 것은 가능하지만 권장되지 않습니다. 이 권장사항은 다음의 이유로 작성되었습니다. IBM Cloudant API 키 및 권한을 IAM 정책 인터페이스를 사용하여 보거나 관리할 수 없으므로, 전체적인 액세스 관리가 불가능합니다.
IAM만 사용 또는 레거시 인증 정보 및 IAM 둘 다 사용 중 하나를 선택하는 것은 다음과 같은 요소에 영향을 미칩니다.
- 레거시 IBM Cloudant 계정 레벨 인증 정보의 데이터베이스 및 기타 계정 레벨 조치 관리 가능 여부.
- 서비스 인증 정보 생성 중에 전달되는 인증 정보의 스타일.
특히, IBM Cloudant API 키는 여전히 데이터베이스 액세스를 관리하는 데 사용할 수 있습니다. 이러한 인증 정보는 HTTP API를 사용하여 생성하고 구성해야 합니다.
명령행을 사용한 프로비저닝
명령행에서 새 IBM Cloudant 인스턴스를 프로비저닝하는 경우에는 계정에 대해 레거시 인증 정보를 사용 또는 사용 안함으로 설정하기 위해 ibmcloud 매개변수를 사용하여 -p 도구에 옵션을 제공하십시오. 이 옵션은 JSON 형식으로 전달되며 이름은 legacyCredentials입니다.
IAM만 사용으로 인스턴스를 프로비저닝하려면(권장됨) 다음 명령을 실행하십시오.
ibmcloud resource service-instance-create "Instance Name" \
cloudantnosqldb Standard us-south \
-p {"legacyCredentials": false}
Manager, Reader, Writer 또는 Monitor와 같은 Checkpointer 이외의 IAM 역할을 사용하는 경우에는 더 큰 액세스 권한을 포함하는 레거시 인증 정보를 사용자에게 제공하지 않도록 반드시 IAM만 사용을 사용해야 합니다.
레거시 인증 정보와 IAM을 둘 다 사용으로 인스턴스를 프로비저닝하려면 다음 명령을 실행하십시오.
ibmcloud resource service-instance-create "Instance Name" \
cloudantnosqldb Standard us-south \
-p {"legacyCredentials": true}
각 옵션에 대한 서비스 인증 정보 JSON 예
IAM만 사용 및 레거시 인증 정보와 IAM을 둘 다 사용 액세스 제어 중 하나를 선택하는 것은 서비스 인증 정보를 바인드하고 생성할 때 애플리케이션에 인증 정보가 전달되는 방식에 영향을 줍니다. 기본 IBM Cloud 내에서 신임 정보를 생성하는 경우 IAM 인터페이스, API 키는 생성될 때 해당 인터페이스에 표시됩니다.
서비스 인스턴스의 서비스 인증 정보 섹션에서 인증 정보를 생성할 수도 있습니다. 이 방식으로 서비스 인증 정보를 생성하면 서비스 인스턴스에 액세스하는 데 필요한 모든 세부사항을 포함하는, 애플리케이션에 붙여 넣을 수 있는 서비스 인증 정보 JSON BLOB이 작성됩니다.
다음 내용에서는 서비스 인증 정보 JSON의 양식과 각 값의 의미를 볼 수 있습니다.
IAM만 사용을 선택하는 경우 생성되는 서비스 인증 정보에는 IAM 값만 포함되며 다음 예와 같은 양식을 보입니다.
{
"apikey": "MxVp86XHkU82Wc97tdvDF8qM8B0Xdit2RqR1mGfVXPWz",
"iam_apikey_description": "Auto generated apikey during resource-key [...]",
"iam_apikey_name": "auto-generated-apikey-050d21b5-5f[...]",
"iam_role_crn": "crn:v1:bluemix:public:iam::::serviceRole:Manager",
"iam_serviceid_crn": "crn:v1:staging:public:iam-identity::[...]",
"url": "https://76838001-b883-444d-90d0-46f89e942a15-bluemix.cloudant.com",
"username": "76838001-b883-444d-90d0-46f89e942a15-bluemix"
}
이전 JSON 예의 각 값은 다음 정의를 사용하여 해석되어야 합니다.
apikey- IAM API 키입니다.
iam_apikey_description- IAM API 키에 대한 설명입니다.
iam_apikey_name- IAM API 키의 ID입니다.
iam_role_crn- IAM API 키가 가진 IAM 역할입니다.
iam_serviceid_crn- 서비스 ID의 CRN입니다.
url- IBM Cloudant 서비스 URL입니다.
username- 내부 IBM Cloudant 계정 이름입니다.
레거시 인증 정보 및 IAM을 둘 다 사용을 선택하는 경우 생성되는 서비스 인증 정보에 IAM과 레거시 인증 정보가 둘 다 포함되며 다음 예에 나오는 값과 유사합니다.
{
"apikey": "MxVp86XHkU82Wc97tdvDF8qM8B0Xdit2RqR1mGfVXPWz",
"host": "76838001-b883-444d-90d0-46f89e942a15-bluemix.cloudant.com",
"iam_apikey_description": "Auto generated apikey during resource-key [...]",
"iam_apikey_name": "auto-generated-apikey-050d21b5-5f[...]",
"iam_role_crn": "crn:v1:bluemix:public:iam::::serviceRole:Manager",
"iam_serviceid_crn": "crn:v1:staging:public:iam-identity::[...]",
"password": "8fb6a16b48903e87b769e7f4968521e85c2394ed8f0e69b2769e56dcb27d2e76",
"port": 443,
"url": "https://<username>:<password>@76838001-b883-444d-90d0-46f89e942a15-bluemix.cloudant.com",
"username": "apikey-v2-58B528DF5397465BB6673E1B79482A8C"
}
이전 JSON 예의 각 값은 다음 정의를 사용하여 해석되어야 합니다.
apikey- IAM API 키입니다.
host- IBM Cloudant 서비스 호스트 이름.
iam_apikey_description- IAM API 키에 대한 설명입니다.
iam_apikey_name- IAM API 키의 ID입니다.
iam_role_crn- IAM API 키가 가진 IAM 역할입니다.
iam_serviceid_crn- 서비스 ID의 CRN입니다.
password- IBM Cloudant 레거시 신임 정보 비밀번호입니다.
port- IBM Cloudant 서비스 포트.
url- 임베디드 IBM Cloudant 레거시 신임 정보를 포함한 IBM Cloudant 서비스 URL.
username- IBM Cloudant 레거시 신임 정보 사용자 이름입니다.
포함된 username 및 password는 항상 IAM의 관리자 인증 정보와 동일합니다. 따라서 레거시 인증 정보와 IAM을 둘 다 사용을 Reader, Writer, Monitor 또는 Checkpointer IAM 역할과 함께 사용하는 것은 안전하지 않습니다.
IAM만 사용 또는 레거시 인증 정보와 IAM을 둘 다 사용 중 어느 것을 사용해야 합니까?
가능한 경우에는 IAM만 사용을 사용하는 것이 좋습니다. 사용하기 위한 주요 장점 IBM Cloud IAM은 다음 목록에 표시됩니다.
- IBM Cloudant 및 IBM Cloud 특정 인증 정보 관리 기능의 조합이 아닌, IBM Cloud의 표준 도구를 사용하여 IBM Cloudant에 대한 액세스를 관리합니다.
- IBM Cloud IAM을 사용하면 인증 정보를 손쉽게 취소하거나 순환시킬 수 있습니다.
각 접근 방식의 장점 및 단점에 대한 자세한 설명은 다음과 같습니다.
Manager, Reader, Writer 또는 Monitor와 같은 Checkpointer 이외의 IAM 역할을 사용하는 경우에는 더 큰 액세스 권한을 포함하는 레거시 인증 정보를 사용자에게 제공하지 않도록 반드시 IAM만 사용을 사용해야 합니다.
두 액세스 제어 메커니즘의 장점 및 단점
전반적으로는 IBM Cloud IAM이 권장되는 인증 모델입니다. 그러나 기존 애플리케이션이 있거나 IBM Cloudant 지원 클라이언트 라이브러리를 사용할 수 없는 경우에는 이 접근법에 단점이 있습니다.
IAM 모드의 장점
- 하나의 인터페이스를 사용하여 다양한 서비스에 대한 액세스를 관리합니다.
- 사용자의 액세스 권한을 글로벌 범위에서 취소합니다.
- 서비스 ID를 사용하는 계정 레벨 API 키.
- 순환이 용이한 인증 정보.
- Activity Tracker 로그는 개별 사용자 및 서비스를 캡처합니다.
- IAM은 엔터프라이즈 LDAP 저장소 등의 다른 ID 시스템과 연합될 수 있습니다.
- 세분화된 권한(예:
Reader,Writer,Monitor또는Checkpointer).
IAM 모드의 단점
- IBM Cloudant에서 지원되는 라이브러리를 사용 중이지 않으면 IAM의 API 키 및 액세스 토큰을 사용하기 위해 애플리케이션을 변경해야 할 가능성이 높습니다.
- 일부 엔드포인트는 사용할 수 없습니다. 자세한 정보는 사용 불가능한 엔드포인트를 참조하십시오.
- 액세스하는 데 권한 부여된 사용자를 필요로 하지 않는 "공용"으로 데이터베이스를 지정할 방법이 없습니다.
레거시 모드의 장점
- 기존 애플리케이션 또는 클라이언트 라이브러리 종속 항목을 변경할 필요가 없습니다.
레거시 모드의 단점
- IBM Cloudant 인증 정보를 별도로 관리하므로 중앙 집중식 인터페이스에서 모든 액세스에 대한 전체 개요를 얻을 수 없습니다.
데이터베이스 수준 IAM 정책
개별 데이터베이스 또는 와일드카드 패턴과 일치하는 데이터베이스에 대한 액세스를 제한하도록 IAM 정책을 정의할 수 있습니다.
데이터베이스를 대상으로 하려면 리소스 유형 속성을 ' database'로 설정합니다. 사용 가능한 연산자는 두 가지입니다:
| 운영자 | 설명 |
|---|---|
string equals |
URL 인코딩된 데이터베이스 이름과 정확히 일치합니다. |
string matches |
0개 이상의 문자로 구성된 임의의 문자열을 일치시키는 다중 문자 와일드카드(*), 임의의 단일 문자를 일치시키는 단일 문자 와일드카드(?), 또는 이 둘 모두를 사용하여 일치시킵니다. |
데이터베이스 이름은 정책의 리소스 ID 필드 에 URL 인코딩되어야 합니다. 단, 슬래시( / )는 예외입니다. 이는 정책의 와일드카드 문자에는 적용되지 않습니다.
‘리소스 유형’ 또는 ‘리소스 ID’ 필드를 비워두면 인스턴스 수준 정책이 생성된다는 점에 유의하십시오.
예제
| 설명 | 속성 | 운영자 | 값 |
|---|---|---|---|
' movies'이라는 이름의 데이터베이스 |
리소스 유형 | string equals |
database |
| 자원 ID | string equals |
movies |
|
' movies'로 시작하는 데이터베이스 |
리소스 유형 | string equals |
database |
| 자원 ID | string matches |
movies* |
|
' movies+new'이라는 이름의 데이터베이스 |
리소스 유형 | string equals |
database |
| 자원 ID | string equals |
movies%2Bnew |
|
' movies+*'로 시작하는 데이터베이스 |
리소스 유형 | string equals |
database |
| 자원 ID | string matches |
movies%2B* |
|
' movies/new'이라는 이름의 데이터베이스 |
리소스 유형 | string equals |
database |
| 자원 ID | string equals |
movies/new |
IAM 인증 정보만을 사용한 복제 작업 작성
IAM API 키를 생성하고, Bearer 토큰을 생성하고, _replicator 데이터베이스를 작성하고, 복제 작업을 작성하려면 다음 지시사항을 따르십시오.
소스 및 대상을 위한 IAM API 키 및 IBM Cloudant API 액세스를 위한 IAM API 키 생성
이 연습에서는 복제 프로세스 중에 두 인스턴스가 서로 통신할 수 있도록 처음 두 API 키가 생성됩니다. 세 번째 API 키는 IBM Cloudant API에 액세스하고, _replicator 데이터베이스를 작성하고, 여기에 복제 문서를 추가하는 사용자를 위한 키입니다.
다음 단계에 따라 IBM Cloudant를 위한 IAM API 키와 API 액세스를 생성하십시오. 예를 계속 진행하려면 다음 단계에서 요구되는 인증 정보를 기록해 두어야 합니다.
지정된 인스턴스(소스 또는 대상)를 선택했는지 확인하십시오.
-
cloud.ibm.com에 로그인하십시오. -
리소스 목록에서 서비스 및 소스 인스턴스를 선택하십시오.
-
서비스 인증 정보를 클릭하고 새 인증 정보를 클릭하십시오.
-
새 인증 정보의 이름을
replicator-source로 지정하고 관리자 역할을 선택하십시오. -
추가를 클릭하고 조치 열의 인증 정보 보기에 있는
apikey를 기록해 두십시오.
-
-
대상 인스턴스에 대해 2 - 2.c 단계를 반복하십시오.
-
관리자 역할을 포함하는
replicator-target이라는 인증 정보를 작성하십시오. -
조치 열의 인증 정보 보기에 있는 해당 IAM API 키를 기록해 두십시오.
-
-
소스 인스턴스를 선택하고 서비스 인증 정보 및 새 인증 정보를 클릭하십시오.
-
새 인증 정보의 이름을
apiaccess로 지정하고 관리자 역할을 선택하십시오. -
조치 열의 인증 정보 보기에 있는 실제 IAM API 키를 기록해 두십시오.
-
-
소스 및 대상 인스턴스 URL을 기록해 두십시오.
워크플로우에 따라, ‘API 키 생성’에 설명된 대로 서비스 수준 자격 증명을 생성하는 단계(4단계) 대신 개인용 IAM API 키를 사용할 수 있습니다.
IBM Cloud CLI 도구 체인을 사용하여 명령줄에서도 이 단계를 수행할 수 있습니다.
IBM Cloudant API에 인증하기 위한 Bearer 토큰 생성
4.b단계에서 apiaccess 키를 기록했습니다. 지금 해당 키를 사용하십시오.
curl -k -X POST \
--header "Content-Type: application/x-www-form-urlencoded" \
--header "Accept: application/json" \
--data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" \
--data-urlencode "apikey=aSCsx4...2lN97h_2Ts" \
"https://iam.cloud.ibm.com/identity/token"
apiaccess 키는 다음 정보(축약됨)를 리턴합니다.
{
"access_token": "eyJraWQiOiIyMDE5MD...tIwkCO9A",
"refresh_token": "ReVbNrHo3UA38...mq67g",
"token_type": "Bearer",
"expires_in": 3600,
"expiration": 1566313064,
"scope": "ibm openid"
}
응답 데이터에 있는 access_token 키의 값을 사용하여, 입력하는 수고를 덜어 줄 환경 변수를 작성하십시오.
export TOK="Bearer eyJraWQiOiIyMDE5MD...tIwkCO9A"
소스 측에서 _replicator 데이터베이스 작성
URL은 이전에 4.b단계에서 작성한 소스 인스턴스 URL입니다.
curl -k -X PUT \
-H"Content-type: application/json" \
-H'Authorization: '"$TOK"'' \
'https://d43caf1b-e2c8-4d3e-9b85-1d04839fa68f-bluemix.cloudant.com/_replicator'
다음 예의 결과를 참조하십시오.
{"ok": "true"}
복제 작업 작성
다음 정보를 포함하는 data.json이라는 파일을 작성하십시오. 두 키는 처음에 작성된 소스 및 대상 API 키이며, URL은 데이터베이스 이름이 추가된 소스 및 대상 인스턴스 URL입니다.
{
"source": {
"url": "https://d43caf1b-e2c8-4d3e-9b85-1d04839fa68f-bluemix.cloudant.com/source",
"auth": {
"iam": {
"api_key": "xju1...TxuS"
}
}
},
"target": {
"url": "https://dbc68dd8-f69f-4083-97dd-bf0a3e1a467a-bluemix.cloudant.com/target",
"auth": {
"iam": {
"api_key": "UElc7...QIaL01Bjn"
}
}
},
"create_target": true,
"continuous": true
}
이제 소스 인스턴스의 source_dest 데이터베이스에 _replicator라는 복제 문서를 작성하십시오.
curl -k -X PUT \
-H"Content-type: application/json" \
-H'Authorization: '"$TOK"'' \
'https://d43caf1b-e2c8-4d3e-9b85-1d04839fa68f-bluemix.cloudant.com/_replicator/source_dest' -d@data.json
다음 예의 결과를 참조하십시오.
{"ok":true,"id":"source_dest","rev":"1-89b01e42968acd5944ed657b87c49f0c"}
인스턴스에서 IBM Cloudant 레거시 인증 정보 제거
IBM Cloud IAM은 권장되는 인증 모델입니다. 보안을 위해 IAM 인증만 인스턴스에 사용될 수 있도록 IBM Cloudant 레거시 인증 정보를 제거하도록 요청할 수 있습니다. 레거시 인증 정보를 제거하는 올바른 프로세스는 다음 단계에 표시되어 있습니다.
-
IBM Cloudant 인스턴스에서 IAM 인증이 사용 가능한지 확인하십시오.
-
IBM Cloudant 레거시 인증 대신에 IAM 인증을 사용하도록 애플리케이션을 업데이트하십시오.
-
필요에 따라 새 서비스 인증 정보를 생성하십시오.
-
인스턴스에 대한 IBM Cloud 레거시 인증 정보를 제거하도록 요청하는 새 IBM Cloudant 지원 케이스를 여십시오. 인스턴스의 사용자 이름을 서비스 인증 정보에 표시된 대로 포함시키십시오. 자세한 정보는 서비스 인증 정보 찾기를 참조하십시오.
-
지원에서 레거시 인증 정보가 제거되었다고 응답하고 나면, 제거 이전에 작성된 서비스 인증 정보는 더 이상 작동하지 않는 레거시 사용자 이름 및 비밀번호를 포함하게 됩니다. 이러한 서비스 인증 정보 항목을 모두 제거하는 것이 좋습니다.
IAM 인증 정보를 사용하여 인스턴스에 대한 요청 수행
이제 다음 섹션에서는 IAM 인증을 통해 서비스 인스턴스에서 IBM Cloudant를 사용하는 방법을 설명합니다. 여기서는 각 옵션에 대한 서비스 인증 정보 JSON 예제의 세부사항을 사용합니다.
IBM Cloud IAM은 리소스 또는 서비스에 대해 요청하기 전에 시간 제한 액세스 토큰을 위해 IAM API 키를 교환할 것을 요구합니다. 그 후 이 액세스 토큰은 서비스에 대한 Authorization HTTP 헤더에 포함됩니다. 이 액세스 토큰이 만료되는 경우 이용 애플리케이션이 IAM 토큰 서비스로부터 새 토큰을 가져오는 작업을 처리해야 합니다. 자세한 내용은 ‘API 키를 사용하여 IBM Cloud IAM 토큰 가져오기’ 문서를 참조하십시오.
IBM Cloudant의 공식 클라이언트 라이브러리는 사용자 대신 API 키에서 토큰을 획득하는 작업을 처리합니다. IBM Cloudant 클라이언트 라이브러리 대신 HTTP 클라이언트를 사용하여 직접 IBM Cloudant에 액세스할 수 있습니다. 그러나 IAM 토큰 서비스와 함께 IAM API 키를 사용하여 시간 제한 액세스 토큰을 교환하고 새로 고쳐야합니다. 토큰이 만료되면 IBM Cloudant는 HTTP 401 상태 코드를 리턴합니다.
필수 클라이언트 라이브러리 버전
IAM 연결은 지원되는 모든 클라이언트 라이브러리의 최신 릴리스에서 사용 가능합니다. 자세한 정보는 클라이언트 라이브러리 를 참조하십시오.
Java
다음 링크에서는 IBM Cloudant Java™ 라이브러리의 최신 지원 버전을 확인할 수 있습니다:
Java 용 IBM Cloudant SDK를 사용하는 예제는 API 및 SDK 설명서를 참조하십시오.
Node.js
다음 링크는 IBM Cloudant Node.js 라이브러리의 최신 지원 버전을 제공합니다.
Node 용 IBM Cloudant SDK를 사용하는 예제는 API 및 SDK 문서를 참조하십시오.
Python
다음 링크는 IBM Cloudant Python 라이브러리의 최신 지원 버전을 제공합니다.
Python 용 IBM Cloudant SDK를 사용하는 예제는 API 및 SDK 문서를 참조하십시오.
Go
다음 링크는 IBM Cloudant Go 라이브러리의 최신 지원 버전을 제공합니다.
Go용 IBM Cloudant SDK를 사용하는 예제는 API 및 SDK 문서를 참조하십시오.
HTTP 클라이언트를 사용한 액세스
IBM Cloud IAM은 리소스 또는 서비스에 대해 요청하기 전에 시간 제한 액세스 토큰을 위해 IAM API 키를 교환할 것을 요구합니다. 그 후 이 액세스 토큰은 서비스에 대한 Authorization HTTP 헤더에 포함됩니다. 이 액세스 토큰이 만료되는 경우 클라이언트는 IAM 토큰 서비스로부터 새 토큰을 가져오는 작업을 처리해야 합니다.
이전에 언급한 바와 같이 IBM Cloud IAM을 사용하는 경우에는 먼저 시간 제한 액세스 토큰에 대한 IBM API 키를 교환해야 합니다. 그런 다음 해당 토큰을 사용하여 IBM Cloudant API에 대해 인증합니다.
Python에서 이 예의 양식은 다음과 같을 수 있습니다.
import time
import requests
API_KEY = "MxVp86XHkU82Wc97tdvDF8qM8B0Xdit2RqR1mGfVXPWz"
ACCOUNT = "76838001-b883-444d-90d0-46f89e942a15-bluemix"
def get_access_token(api_key):
"""Retrieve an access token from the IAM token service."""
token_response = requests.post(
"https://iam.cloud.ibm.com/identity/token",
data={
"grant_type": "urn:ibm:params:oauth:grant-type:apikey",
"response_type": "cloud_iam",
"apikey": api_key
},
headers={
"Accept": "application/json"
}
)
if token_response.status_code == 200:
print "Got access token from IAM"
return token_response.json()['access_token']
else:
print token_response.status_code, token_response.json()
return None
def main(api_key, account):
access_token = None
while True:
if not access_token:
access_token = get_access_token(api_key)
if access_token:
response = requests.get(
"https://{0}.cloudant.com/_all_dbs".format(account),
headers={
"Accept": "application/json",
"Authorization": "Bearer {0}".format(access_token)
}
)
print "Got Cloudant response, status code", response.status_code
if response.status_code == 401:
print "Token has expired."
access_token = None
time.sleep(1)
if __name__ == "__main__":
main(API_KEY, ACCOUNT)
Cloudant 와 함께 IAM IP 허용 목록 사용
IBM Cloudant 를 사용할 때 IAM IP 주소 액세스 제한을 활성화할 수 있습니다.
IAM IP 주소 액세스 제한사항을 사용하려면 IBM Cloudant 서비스가 계속 작동할 수 있도록 Cloud Identity and Access Management (IAM) IP 허용 목록 이 구성되어 있는지 확인해야 합니다. IAM은 IAM 인증 정보를 전달하는 IBM Cloudant API에 대한 요청을 인증할 때 및 IAM API키를 사용하여 인증하도록 구성된 복제 를 실행할 때 IBM Cloudant 에 의해 사용됩니다.
IAM 토큰은 최대 60분동안 유효할 수 있습니다. 이는 허용 목록이 토큰 작성 시에만 적용되므로 이 유효성 검증 기간이 만료될 때까지 IAM IP 허용 목록에 대한 변경사항이 완전히 적용되지 않을 수 있음을 의미합니다.
네트워크 영역 작성
IBM Cloudant 을 IAM 액세스 목록에 추가하려면 먼저 IBM Cloudant 서비스를 포함하는 네트워크 구역 을 작성해야 합니다.
네트워크 구역을 작성하려면 다음 단계를 완료하십시오.
- IBM Cloud 콘솔에서 ‘ 관리 ’ > ‘ 상황에 따른 제한 사항 ’을 클릭한 다음, ‘ 네트워크 영역 ’을 선택합니다.
- 작성을 클릭하십시오.
- 고유 이름 (예:
cloudant-network) 을 입력하고 선택적으로 설명을 입력하십시오. Reference a service에서 서비스 유형IAM Services및 서비스IBM Cloudant를 선택하십시오. 추가 를 클릭하여IBM CloudantIP 주소를 네트워크 구역과 연관시키십시오.- 네트워크 구역을 검토하려면 다음을 클릭하십시오.
- 작성을 클릭하십시오.
IAM IP 허용 목록에서 네트워크 구역 참조
위에서 작성된 cloudant-network 라는 네트워크 구역 은 이제 IAM IP 허용 목록에서
사용할 수 있습니다.
- IBM Cloud 콘솔에서 [ 관리 ] >를 클릭합니다 Access(IAM) 로 이동하여 ‘설정’을 선택합니다.
- '계정' 섹션에서 IP 주소 액세스 설정을 활성화하세요.
Allowed IP addresses필드에서 위에서 작성한 네트워크 영역의 이름을 추가하십시오 (예:cloudant-network).- 저장 을 클릭하십시오.
역할 및 조치
다음 표는 IBM Cloudant의 IAM 역할 및 조치의 전체 목록, 그리고 각 IAM 시스템 역할에 허용되는 조치의 맵핑을 포함하고 있습니다.
IBM Cloudant 역할
다음 표에는 IBM Cloudant의 사용 가능한 IAM 서비스 역할과 각각에 대한 간략한 설명이 나열되어 있습니다.
| 역할 | 설명 |
|---|---|
Manager |
모든 엔드포인트에 액세스할 수 있으며 데이터베이스 작성, 용량 변경, 데이터 및 인덱스 쓰기 및 읽기, 대시보드 액세스와 같은, 인스턴스에 대한 모든 관리 기능을 수행할 수 있는 권한을 포함합니다. |
Writer |
모든 데이터베이스 및 문서를 읽고 쓸 수 있지만 인덱스는 작성할 수 없는 권한을 포함합니다. |
Reader |
모든 데이터베이스 및 문서를 읽을 수 있지만 새 문서를 작성하거나 인덱스를 작성할 수는 없는 권한을 포함합니다. |
Monitor |
_active_tasks와 같은 모니터링 엔드포인트, 그리고 복제 _scheduler 엔드포인트를 읽을 수 있는 권한을 포함합니다. |
Checkpointer |
복제 checkpointer _local 문서를 쓸 수 있는 권한을 포함합니다. 복제 중에 소스 데이터베이스에서 필요합니다. |
관리자는 독자 및 작성자의 모든 조치를 포함하며 작성자는 독자의 모든 조치를 포함합니다.
IBM Cloudant 조치
다음 표에는 사용 가능한 IAM 조치 및 역할이 설명되어 있습니다. 세분화된 권한 부여를 위해 역할에는 Manager, Reader, Writer, Monitor 및 Checkpointer 역할을 사용할 수 있습니다.
Manager, Reader, Writer 또는 Monitor와 같은 Checkpointer 이외의 IAM 역할을 사용하는 경우에는 더 큰 액세스 권한을 포함하는 레거시 인증 정보를 사용자에게 제공하지 않도록 반드시 IAM만 사용을 사용해야 합니다.
| 메소드 | 엔드포인트 | 조치 이름 |
|---|---|---|
GET/PUT |
/_api/v2/db/<path:db>/_security |
cloudantnosqldb.sapi.db-security |
GET |
/_api/v2/user/capacity/throughput |
cloudantnosqldb.capacity-throughput.read |
PUT |
/_api/v2/user/capacity/throughput |
cloudantnosqldb.capacity-throughput.write |
GET |
/_api/v2/user/current/throughput |
cloudantnosqldb.current-throughput.read |
GET |
/_api/v2/user/capacity/databases |
cloudantnosqldb.account-capacity-dbs.read |
GET |
/_api/v2/user/current/databases |
cloudantnosqldb.account-current-dbs.read |
GET |
/_api/v2/user/activity_tracker/events |
cloudantnosqldb.activity-tracker-event-types.read |
POST |
/_api/v2/user/activity_tracker/events |
cloudantnosqldb.activity-tracker-event-types.write |
POST |
/_api/v2/api_keys |
cloudantnosqldb.sapi.apikeys |
GET/POST |
/_api/v2/user/config/cors/ |
cloudantnosqldb.sapi.usercors |
GET/PUT |
/_api/v2/user/plan |
cloudantnosqldb.sapi.userplan |
GET |
/_api/v2/user/ccm_diagnostics |
cloudantnosqldb.sapi.userccmdiagnostics |
GET |
/_api/v2/user/last_activity |
cloudantnosqldb.sapi.lastactivity |
GET |
/_api/v2/support/tickets/$CASEID/files/$ATTACHMENTID |
cloudantnosqldb.sapi.supportattachments |
GET/POST |
/_api/v2/support/tickets |
cloudantnosqldb.sapi.supporttickets |
GET/PUT/DELETE |
/_api/v2/support/tickets/$CASEID |
cloudantnosqldb.sapi.supporttickets |
GET |
/_api/v2/user |
cloudantnosqldb.sapi.userinfo |
GET |
/_api/v2/usage/data_volume 및 /_api/v2/usage/$YEAR/$MONTH |
cloudantnosqldb.sapi.usage-data-volume |
GET/HEAD |
/ | cloudantnosqldb.account-meta-info.read |
GET/HEAD |
/_active_tasks |
cloudantnosqldb.account-active-tasks.read |
GET/HEAD |
/_replicator |
cloudantnosqldb.replicator-database-info.read |
GET/HEAD |
/_replicator/$DOCUMENT |
cloudantnosqldb.replication.read |
GET/HEAD |
/_scheduler/jobs |
cloudantnosqldb.replication-scheduler.read |
GET/HEAD |
/_scheduler/docs |
cloudantnosqldb.replication-scheduler.read |
POST |
/_replicate |
cloudantnosqldb.replication.write |
POST |
/_replicator |
cloudantnosqldb.replication.write |
PUT/DELETE |
/_replicator |
cloudantnosqldb.replicator-database.create |
PUT/DELETE |
/_replicator/$DOCUMENT |
cloudantnosqldb.replication.write |
GET/HEAD |
/_up |
cloudantnosqldb.account-up.read |
PUT |
/$DATABASE/ |
cloudantnosqldb.database.create |
DELETE |
/$DATABASE |
cloudantnosqldb.database.delete |
POST |
/$DATABASE/_design_docs/queries |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/_design/$DOCUMENT_ID/_geo_info |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/_design/$DOCUMENT_ID/_info/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
GET |
/$DATABASE/_design/$DOCUMENT_ID/_search_disk_size/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
GET |
/$DATABASE/_design/$DOCUMENT_ID/_search_info/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/_index/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
GET |
/$DATABASE/_design_docs |
cloudantnosqldb.any-document.read |
GET |
/$DATABASE/_design/$DOCUMENT_ID |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/_design/$DOCUMENT_ID/$ATTACHMENT |
cloudantnosqldb.any-document.read |
PUT |
/$DATABASE/_design/$DOCUMENT_ID |
cloudantnosqldb.design-document.write |
COPY |
/$DATABASE/_design/$DOCUMENT_ID |
cloudantnosqldb.design-document.write |
DELETE |
/$DATABASE/_design/$DOCUMENT_ID |
cloudantnosqldb.design-document.write |
PUT |
/$DATABASE/_design/$DOCUMENT_ID/$ATTACHMENT |
cloudantnosqldb.design-document.write |
DELETE |
/$DATABASE/_design/$DOCUMENT_ID/$ATTACHMENT |
cloudantnosqldb.design-document.write |
POST/DELETE |
/$DATABASE/_index/$FURTHER_PATH_PARTS |
cloudantnosqldb.design-document.write |
GET/HEAD |
/$DATABASE/_security |
cloudantnosqldb.database-security.read |
PUT |
/$DATABASE/_security |
cloudantnosqldb.database-security.write |
GET/HEAD |
/$DATABASE/_shards |
cloudantnosqldb.database-shards.read |
COPY (쓰기 문서 유형에 따라 다릅니다.) |
/$DATABASE/$DOCUMENT_ID |
cloudantnosqldb.any-document.read + cloudantnosqldb.design-document.write 중 하나 또는 둘 다 cloudantnosqldb.local-document.write 중 하나 또는 둘 다 cloudantnosqldb.data-document.write |
GET |
/_membership |
cloudantnosqldb.cluster-membership.read |
POST |
/$DATABASE/_ensure_full_commit |
cloudantnosqldb.database-ensure-full-commit.execute |
PUT |
/_users |
cloudantnosqldb.users-database.create |
GET/HEAD |
/_users |
cloudantnosqldb.users-database-info.read |
DELETE |
/_users |
cloudantnosqldb.users-database.delete |
GET/HEAD |
/_users/$DOCUMENT |
cloudantnosqldb.users.read |
GET/POST |
/_users/_all_docs |
cloudantnosqldb.users.read |
GET/POST |
/_users/_changes |
cloudantnosqldb.users.read |
POST |
/_users/_missing_revs |
cloudantnosqldb.users.read |
POST |
/_users/_revs_diff |
cloudantnosqldb.users.read |
POST |
/_users/_bulk_get |
cloudantnosqldb.users.read |
PUT/DELETE |
/_users/$DOCUMENT |
cloudantnosqldb.users.write |
POST |
/_users/_bulk_docs |
cloudantnosqldb.users.write |
POST |
/_users/ |
cloudantnosqldb.users.write |
GET/HEAD |
/_uuids |
cloudantnosqldb.cluster-uuids.execute |
POST |
/$DATABASE/ |
cloudantnosqldb.data-document.write 또는 cloudantnosqldb.design-document.write 또는 cloudantnosqldb.local-document.write |
POST |
/$DATABASE/_bulk_docs |
cloudantnosqldb.data-document.write 중 하나 또는 둘 다 cloudantnosqldb.design-document.write 중 하나 또는 둘 다 cloudantnosqldb.local-document.write |
PUT |
/$DATABASE/$DOCUMENT_ID |
cloudantnosqldb.data-document.write |
DELETE |
/$DATABASE/$DOCUMENT_ID |
cloudantnosqldb.data-document.write |
PUT |
/$DATABASE/$DOCUMENT_ID/$ATTACHMENT |
cloudantnosqldb.data-document.write |
DELETE |
/$DATABASE/$DOCUMENT_ID/$ATTACHMENT |
cloudantnosqldb.data-document.write |
PUT/DELETE |
/$DATABASE/_local/$DOCUMENT_ID |
cloudantnosqldb.local-document.write |
COPY (쓰기 문서 유형에 따라 다릅니다.) |
/$DATABASE/_local/$DOCUMENT_ID |
cloudantnosqldb.any-document.read + cloudantnosqldb.design-document.write 중 하나 또는 둘 다 cloudantnosqldb.local-document.write 중 하나 또는 둘 다 cloudantnosqldb.data-document.write |
GET/HEAD |
/_iam_session |
cloudantnosqldb.iam-session.read |
POST |
/_iam_session |
cloudantnosqldb.iam-session.write |
DELETE |
/_iam_session |
cloudantnosqldb.iam-session.delete |
GET/HEAD |
/_session |
cloudantnosqldb.session.read |
POST |
/_session |
cloudantnosqldb.session.write |
DELETE |
/_session |
cloudantnosqldb.session.delete |
GET/HEAD |
/_all_dbs |
cloudantnosqldb.account-all-dbs.read |
POST |
/_dbs_info |
cloudantnosqldb.account-dbs-info.read |
GET |
/$DATABASE/ |
cloudantnosqldb.database-info.read |
GET/POST |
/$DATABASE/_all_docs |
cloudantnosqldb.any-document.read |
GET/POST |
/$DATABASE/_changes |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/$DOCUMENT_ID |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/$DOCUMENT_ID/$ATTACHMENT |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_bulk_get |
cloudantnosqldb.any-document.read |
GET/POST |
/_search_analyze |
cloudantnosqldb.account-search-analyze.execute |
POST |
/$DATABASE/_all_docs/queries |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/_design/$DOCUMENT_ID/_geo/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
GET/POST |
/$DATABASE/_design/$DOCUMENT_ID/_search/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_design/$DOCUMENT_ID/_view/$VIEW/queries |
cloudantnosqldb.any-document.read |
GET/POST |
/$DATABASE/_design/$DOCUMENT_ID/_view/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_explain/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_find/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
GET |
/$DATABASE/_local/$DOCUMENT_ID |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_missing_revs |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_revs_diff |
cloudantnosqldb.any-document.read |
| 메소드 | 엔드포인트 | 조치 이름 |
|---|---|---|
GET |
/_api/v2/user/activity_tracker/events |
cloudantnosqldb.activity-tracker-event-types.read |
GET |
/_api/v2/user/capacity/databases |
cloudantnosqldb.account-capacity-dbs.read |
GET |
/_api/v2/user/current/databases |
cloudantnosqldb.account-current-dbs.read |
GET/HEAD |
/_uuids |
cloudantnosqldb.cluster-uuids.execute |
POST |
/$DATABASE/ |
cloudantnosqldb.data-document.write 또는 cloudantnosqldb.design-document.write 또는 cloudantnosqldb.local-document.write |
POST |
/$DATABASE/_bulk_docs |
cloudantnosqldb.data-document.write 중 하나 또는 둘 다 cloudantnosqldb.design-document.write 중 하나 또는 둘 다 cloudantnosqldb.local-document.write |
PUT |
/$DATABASE/$DOCUMENT_ID |
cloudantnosqldb.data-document.write |
DELETE |
/$DATABASE/$DOCUMENT_ID |
cloudantnosqldb.data-document.write |
PUT |
/$DATABASE/$DOCUMENT_ID/$ATTACHMENT |
cloudantnosqldb.data-document.write |
DELETE |
/$DATABASE/$DOCUMENT_ID/$ATTACHMENT |
cloudantnosqldb.data-document.write |
PUT/DELETE |
/$DATABASE/_local/$DOCUMENT_ID |
cloudantnosqldb.local-document.write |
GET/HEAD |
/_iam_session |
cloudantnosqldb.iam-session.read |
POST |
/_iam_session |
cloudantnosqldb.iam-session.write |
DELETE |
/_iam_session |
cloudantnosqldb.iam-session.delete |
GET/HEAD |
/_session |
cloudantnosqldb.session.read |
POST |
/_session |
cloudantnosqldb.session.write |
DELETE |
/_session |
cloudantnosqldb.session.delete |
GET/HEAD |
/_all_dbs |
cloudantnosqldb.account-all-dbs.read |
POST |
/_dbs_info |
cloudantnosqldb.account-dbs-info.read |
GET |
/$DATABASE/ |
cloudantnosqldb.database-info.read |
GET/POST |
/$DATABASE/_all_docs |
cloudantnosqldb.any-document.read |
GET/POST |
/$DATABASE/_changes |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/$DOCUMENT_ID |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/$DOCUMENT_ID/$ATTACHMENT |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_bulk_get |
cloudantnosqldb.any-document.read |
GET/POST |
/_search_analyze |
cloudantnosqldb.account-search-analyze.execute |
POST |
/$DATABASE/_all_docs/queries |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/_design/$DOCUMENT_ID/_geo/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
GET/POST |
/$DATABASE/_design/$DOCUMENT_ID/_search/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_design/$DOCUMENT_ID/_view/$VIEW/queries |
cloudantnosqldb.any-document.read |
GET/POST |
/$DATABASE/_design/$DOCUMENT_ID/_view/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_explain/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_find/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
GET |
/$DATABASE/_local/$DOCUMENT_ID |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_missing_revs |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_revs_diff |
cloudantnosqldb.any-document.read |
GET/HEAD |
/ | cloudantnosqldb.account-meta-info.read |
POST |
/$DATABASE/_ensure_full_commit |
cloudantnosqldb.database-ensure-full-commit.execute |
| 메소드 | 엔드포인트 | 조치 이름 |
|---|---|---|
GET |
/_api/v2/user/activity_tracker/events |
cloudantnosqldb.activity-tracker-event-types.read |
GET |
/_api/v2/user/capacity/databases |
cloudantnosqldb.account-capacity-dbs.read |
GET |
/_api/v2/user/current/databases |
cloudantnosqldb.account-current-dbs.read |
GET/HEAD |
/_iam_session |
cloudantnosqldb.iam-session.read |
POST |
/_iam_session |
cloudantnosqldb.iam-session.write |
DELETE |
/_iam_session |
cloudantnosqldb.iam-session.delete |
GET/HEAD |
/_session |
cloudantnosqldb.session.read |
POST |
/_session |
cloudantnosqldb.session.write |
DELETE |
/_session |
cloudantnosqldb.session.delete |
GET/HEAD |
/_all_dbs |
cloudantnosqldb.account-all-dbs.read |
POST |
/_dbs_info |
cloudantnosqldb.account-dbs-info.read |
GET |
/$DATABASE/ |
cloudantnosqldb.database-info.read |
GET/POST |
/$DATABASE/_all_docs |
cloudantnosqldb.any-document.read |
GET/POST |
/$DATABASE/_changes |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/$DOCUMENT_ID |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/$DOCUMENT_ID/$ATTACHMENT |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_bulk_get |
cloudantnosqldb.any-document.read |
GET/POST |
/_search_analyze |
cloudantnosqldb.account-search-analyze.execute |
POST |
/$DATABASE/_all_docs/queries |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/_design/$DOCUMENT_ID/_geo/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
GET/POST |
/$DATABASE/_design/$DOCUMENT_ID/_search/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_design/$DOCUMENT_ID/_view/$VIEW/queries |
cloudantnosqldb.any-document.read |
GET/POST |
/$DATABASE/_design/$DOCUMENT_ID/_view/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_explain/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_find/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
GET |
/$DATABASE/_local/$DOCUMENT_ID |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_missing_revs |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_revs_diff |
cloudantnosqldb.any-document.read |
GET/HEAD |
/ | cloudantnosqldb.account-meta-info.read |
| 메소드 | 엔드포인트 | 조치 이름 |
|---|---|---|
GET |
/_api/v2/usage/data_volume 및 /_api/v2/usage/$YEAR/$MONTH |
cloudantnosqldb.sapi.usage-data-volume |
GET |
/_api/v2/user/capacity/throughput |
cloudantnosqldb.capacity-throughput.read |
GET |
/_api/v2/user/current/throughput |
cloudantnosqldb.current-throughput.read |
GET |
/_api/v2/user/capacity/databases |
cloudantnosqldb.account-capacity-dbs.read |
GET |
/_api/v2/user/current/databases |
cloudantnosqldb.account-current-dbs.read |
GET/HEAD |
/ | cloudantnosqldb.account-meta-info.read |
GET/HEAD |
/_active_tasks |
cloudantnosqldb.account-active-tasks.read |
GET/HEAD |
/_scheduler/jobs |
cloudantnosqldb.replication-scheduler.read |
GET/HEAD |
/_scheduler/docs |
cloudantnosqldb.replication-scheduler.read |
GET/HEAD |
/_up |
cloudantnosqldb.account-up.read |
GET/HEAD |
/$DATABASE/_shards |
cloudantnosqldb.database-shards.read |
PUT/DELETE |
/$DATABASE/_local/$DOCUMENT_ID |
cloudantnosqldb.local-document.write |
POST |
/_dbs_info |
cloudantnosqldb.account-dbs-info.read |
GET |
/$DATABASE/ |
cloudantnosqldb.database-info.read |
| 메소드 | 엔드포인트 | 조치 이름 |
|---|---|---|
PUT/DELETE |
/$DATABASE/_local/$DOCUMENT_ID |
cloudantnosqldb.local-document.write |
문제점 해결
IBM Cloudant 서비스 인스턴스에 요청할 때 IAM을 사용하여 인증할 수 없는 경우 다음 절에 표시된 대로 계정을 확인하십시오.
계정에서 IAM이 사용으로 설정되어 있는지 확인
"인증 방법"은 IBM Cloudant 대시보드의 개요 부분에 있는 배치 세부사항에 나열되어 있습니다. 사용자의 사용 가능한 인증 방법은 여기에 나열되어 있습니다.