管理 IBM Cloudant
IBM Cloud® Identity and Access Management 提供一種統一的方法來管理使用者身分、服務及存取控制。
下列文字說明 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 Cloud 型錄佈建新的 IBM Cloudant 實例時,請選取下列其中一個鑑別方法。
- 同時使用舊式認證和 IAM
- 此模式表示 IAM 及舊式認證都可以用來存取帳戶。 具體而言,IAM 及舊式認證組都會提供給連結至帳戶及所產生服務認證的所有應用程式。
- 僅使用 IAM
- 此模式表示僅透過使用服務綁定和憑證生成來提供 IAM 憑證。
當您使用 Manager
以外的 IAM 角色 (例如 Reader
、Writer
、Monitor
或 Checkpointer
) 時,您 必須 使用 僅使用 IAM,以避免為使用者提供包含更高存取權的舊式認證。
原則強制執行
IAM 策略從最高層級的存取權限到最受限制的層級按層次執行,其中較寬鬆的策略會覆寫較寬鬆的策略。 例如,如果用戶在資料庫上同時擁有 Writer
和 Reader
服務存取角色,則授予 Reader
角色的政策會被忽略。
這也適用於服務實例和資料庫層級的政策。
- 如果使用者在服務實例上有授予
Writer
角色的政策,而在單一資料庫上有授予Reader
角色的政策,則資料庫層級的政策會被忽略。 - 如果使用者在服務實例上有授予
Reader
角色的政策,而在單一資料庫上有授予Writer
角色的政策,則這兩個政策都會執行,對於個別資料庫而言,更具許可性的Writer
角色會優先執行。
如果需要限制存取單一資料庫(或一組資料庫),請使用主控台或 CLI 確保使用者或服務 ID 沒有任何其他實體層級的政策。
請參閱 組織資源和分配存取權限的最佳實務 以了解更多資訊。
IBM Cloudant API 金鑰和僅限 IAM 使用
您可以使用 IBM Cloudant API 金鑰與 IAM,但不建議如此使用。 提出這項建議的原因是 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
以外的 IAM 角色 (例如 Reader
、Writer
、Monitor
或 Checkpointer
) 時,您 必須 使用 僅使用 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 服務,包括嵌入式 傳統憑證。URL IBM Cloudant
username
- IBM Cloudant 舊式認證使用者名稱。
請注意,隨附的 username
和 password
一律相當於 IAM 的「管理程式」認證。 因此,搭配使用 Reader
、Writer
、Monitor
或 Checkpointer
IAM 角色時,使用 同時使用舊式認證和 IAM 並不安全。
我必須只使用 IAM 還是同時使用舊憑證和 IAM?
如果可能的話,建議選擇僅使用 IAM。 使用的主要優點 IBM Cloud IAM 顯示在下列清單中:
- 使用 IBM Cloud 標準工具 (而不是 IBM Cloud 和 IBM Cloudant特定認證管理的組合) 來管理對 IBM Cloudant 的存取權。
- 當您使用 IBM Cloud IAM 時,可以輕鬆地撤銷及輪替認證。
每種方法的優缺點進一步說明如下。
當您使用 Manager
以外的 IAM 角色 (例如 Reader
、Writer
、Monitor
或 Checkpointer
) 時,您 必須 使用 僅使用 IAM,以避免為使用者提供包含更高存取權的舊式認證。
兩種存取控制機制的優缺點
整體而言,IBM Cloud IAM 是建議的鑑別模型。 但是,這種方法的主要缺點是,如果您有一個現有的應用程式 或無法使用 IBM Cloudant 支援的用戶端函式庫。
IAM 模式的優點
- 使用一個介面,來管理許多服務的存取權。
- 整體地撤銷使用者存取權。
- 使用服務 ID 的帳戶層次 API 金鑰。
- 容易輪替的認證。
- Activity Tracker 日誌會擷取個人及服務。
- IAM 會與其他身分系統(例如企業 LDAP 儲存庫)聯合。
- 精細許可權 (例如,
Reader
、Writer
、Monitor
或Checkpointer
)。
IAM 模式的缺點
- 如果您沒有使用 IBM Cloudant 支援的函式庫,可能需要變更應用程式才能使用 IAM 的 API 金鑰和存取權限。
- 某些端點無法使用。 如需相關資訊,請參閱無法使用的端點。
- 無法指定資料庫為「公開」,也就是不需要授權使用者才能存取。
舊式模式的優點
- 不需要變更現有應用程式或用戶端程式庫相依關係。
舊式模式的缺點
- IBM Cloudant 認證的獨立管理,因此無法在集中化介面中全面掌握所有存取權限。
資料庫級 IAM 策略
可以定義 IAM 策略來限制對單一資料庫或與通配符模式相符的資料庫的存取。
若要定位資料庫,請將屬性 Resource Type 設為 database
。 有兩個可用的運算子:
操作員 | 說明 |
---|---|
string equals |
完全匹配 URL 編碼的資料庫名稱。 |
string matches |
匹配使用多字元通配符 (*)(匹配零個或多個字元的任何序列)、單字元通配符 (?)(匹配任何單字元)或兩者皆使用。 |
資料庫名稱應在政策的資源 ID 欄位中使用 URL 編碼,但正斜線除外 /
。 這不適用於策略中的任何通配符。
請注意,將 Resource Type(資源類型 )或 Resource ID(資源 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 金鑰、產生載送記號、建立 _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。
視您的工作流程而定,您可以使用個人 IAM API 金鑰,而非建立服務層次認證 (步驟 4),如 建立 API 金鑰中所述。
您也可以使用 IBM Cloud CLI 工具鏈,在指令行上完成這些步驟。
產生載送記號以針對 IBM Cloudant API 進行鑑別
在步驟 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。
{
"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 是建議的鑑別模型。 為確保安全,您可以要求移除 IBM Cloudant 舊式認證,僅對實例使用 IAM 鑑別。 下列步驟顯示移除舊式認證的正確處理程序:
使用 IAM 認證向實例提出要求
現在,下一節說明如何透過 IAM 鑑別搭配使用 IBM Cloudant 與服務實例。 它使用 每個選項的服務認證 JSON 範例 中的詳細資料。
IBM Cloud IAM 要求先將 IAM API 金鑰換成限時存取記號,再提出資源或服務的要求。 然後,存取記號會內含在服務的 Authorization
HTTP 標頭中。 存取記號到期時,消費端應用程式必須處理從 IAM 記號服務取得新的存取記號。 如需詳細資訊,請參閱 使用 API 金鑰取得 IBM Cloud IAM 令牌文件。
IBM Cloudant 的正式用戶端程式庫會處理為您從 API 金鑰取得記號。 您可以使用 HTTP 客戶端而非 IBM Cloudant 客戶端函式庫直接存取 IBM Cloudant。 不過,您必須搭配使用 IAM API 金鑰與 IAM 記號服務來處理交換及重新整理時間限制存取記號。 記號到期之後,IBM Cloudant 會傳回 HTTP 401
狀態碼。
必要的用戶端程式庫版本
IAM 連線功能在所有受支援用戶端程式庫的最新版本中可用。 如需相關資訊,請參閱 用戶端程式庫。
Java
下列鏈結提供最新受支援版本的 IBM Cloudant Java™ 程式庫:
如需使用 IBM Cloudant SDK for Java的範例,請參閱 API 和 SDK 文件。
Node.js
下列鏈結提供最新受支援版本的 IBM Cloudant Node.js 程式庫:
如需使用 IBM Cloudant SDK for Node的範例,請參閱 API 和 SDK 文件。
Python
下列鏈結提供最新受支援版本的 IBM Cloudant Python 程式庫:
如需使用 IBM Cloudant SDK for Python的範例,請參閱 API 和 SDK 文件。
進行
下列鏈結提供 IBM Cloudant Go 程式庫的最新受支援版本:
如需使用 IBM Cloudant SDK for Go 的範例,請參閱 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)
搭配使用 IAM IP 允許清單與 Cloudant
當您使用 IBM Cloudant時,可以啟用 IAM IP 位址存取限制。
若要啟用 IAM IP 位址存取限制,您必須確保已配置 Cloud Identity and Access Management (IAM) IP 允許清單,以便 IBM Cloudant 服務仍可運作。 IAM 由 IBM Cloudant 在向傳遞 IAM 認證的 IBM Cloudant API 鑑別要求時,以及執行配置為使用 IAM API 金鑰進行鑑別的 抄寫 時使用。
IAM 記號可以在 最多 60 分鐘內有效。 這表示在此驗證期間到期之前,IAM IP 允許清單的變更可能不會完全生效,因為允許清單只在記號建立時才強制執行。
建立網路區域
若要將 IBM Cloudant 新增至 IAM 存取清單,您必須先建立包含 IBM Cloudant 服務的 網路區域。
若要建立網路區域,請完成下列步驟。
- 在 IBM Cloud 主控台中,按一下 管理 > 環境定義型限制,然後選取 網路區域。
- 按一下建立。
- 輸入唯一名稱 (例如
cloudant-network
),並選擇性地輸入說明。 - 在
Reference a service
下,選取服務類型IAM Services
及服務IBM Cloudant
。 按一下 新增,將IBM Cloudant
IP 位址與網路區域相關聯。 - 按 下一步 以檢閱您的網路區域。
- 按一下建立。
在 IAM IP 允許清單中參照網路區域
上方建立的 網路區域 (稱為 cloudant-network
) 現在可以在 IAM IP 允許清單中使用。
- 在 IBM Cloud 主控台中,按一下 管理 > 存取權 (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
以外的 IAM 角色 (例如 Reader
、Writer
、Monitor
或 Checkpointer
) 時,您 必須 使用 僅使用 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 Dashboard 的「總覽」部分,「驗證方法」列在部署詳細資訊下。 此處列出了可用的鑑別方法。