PolarDB-X 1.0 OpenAPI的一部分操作(例如創(chuàng)建數(shù)據(jù)庫(kù))依賴(lài)RDS的OpenAPI接口。所以,為確保PolarDB-X 1.0控制臺(tái)有權(quán)限操作用戶(hù)的RDS資源,PolarDB-X 1.0 OpenAPI的使用者要通過(guò)RAM服務(wù)給PolarDB-X 1.0控制臺(tái)授權(quán)RDS資源的訪問(wèn)權(quán)限。否則調(diào)用PolarDB-X OpenAPI會(huì)出現(xiàn)權(quán)限不足而報(bào)錯(cuò)。
通過(guò)控制臺(tái)進(jìn)行授權(quán)(推薦)
本方式適用于可以正常登錄PolarDB-X 1.0控制臺(tái)的用戶(hù)。步驟如下:
- 登錄PolarDB-X 1.0控制臺(tái), 依次單擊資源授權(quán)>激授授權(quán)。
- 在與資源訪問(wèn)授權(quán)對(duì)話(huà)框,單擊同意授權(quán)。
通過(guò)調(diào)用RAM服務(wù)的OpenAPI進(jìn)行授權(quán)
適用于因特殊原因(如混合云場(chǎng)景)無(wú)法登錄PolarDB-X 1.0控制臺(tái)的用戶(hù)。步驟如下:
- 調(diào)用RAM服務(wù)的OpenAPI,為PolarDB-X 1.0實(shí)例所屬的主賬戶(hù)創(chuàng)建RAM服務(wù)角色AliyunDRDSDefaultRole;
- 在PolarDB-X 1.0控制臺(tái),以AliyunDRDSDefaultRole角色調(diào)用RDS OpenAPI來(lái)管理RDS資源。
使用RAM的OpenAPI Java SDK創(chuàng)建服務(wù)角色, Java代碼如下所示:
public static void createDrdsRole() throws ServerException, ClientException {
String rolePolicyDoc = "{\"Statement\":[{\"Action\": \"sts:AssumeRole\", \"Effect\": \"Allow\",\"Principal\":{\"Service\":[\"drds.aliyuncs.com\"]}}],\"Version\": \"1\"}";
String roleName = "AliyunDRDSDefaultRole";
CreateRoleRequest request = new CreateRoleRequest();
request.setAssumeRolePolicyDocument(rolePolicyDoc);
request.setRoleName(roleName);
client.getAcsResponse(request);
}