前提
ユーザー taro@aliyun.com が、LoadBalancerId 139a00604ad-cn-east-hangzhou-01
の Server Load Balancer インスタンスを作成したとします。
目的
ここでは、taro@aliyun.com が hanako@aliyun.com によるインスタンスの管理を許可します。
- hanako@aliyun.com が Server Load Balancer API を介してインスタンスで実行できる操作は、SetLoadBalancerStatus (LoadBalancer ステータスの設定)、DescribeLoadBalancerAttribute (LoadBalancer 情報の照会)、AddBackendServers (バックエンドサーバーの追加)、RemoveBackendServers (バックエンドサーバーの削除) の 4 つのみです。
権限付与の手順
上記の操作を承認するために、Taro は以下の手順を実行する必要があります。
RAM で Taro のユーザー領域に Hanako を追加します。
Taro の ID で RAM の AddUser インターフェイスを呼び出します。
パラメーター UserName=ALIYUN$hanako@aliyun.com;
https://ram.aliyuncs.com/?Action=AddUser
&UserName=ALIYUN$hanako@aliyun.com
&<other common request parameter>
権限付与ポリシーを準備します。
ポリシーは JsonString であり、その JSON 構造には次の要素が含まれている必要があります。
{
"Version": "1",
"Statement":[
{
"Effect": "Allow",
"Action": ["slb:SetLoadBalancerStatus","slb:DescribeLoadBalancerAttribute", "slb: AddBackendServers","slb:RemoveBackendServers"],
"Resource": ["acs:slb:*:LoadBalancerId/139a00604ad-cn-east-hangzhou-01"]
}]
}
Taro が RAM の PutPolicy インターフェイスを呼び出し、Hanako のポリシーを設定します。
パラメーター PolicyName の値 web_front_server_policy は、Taro がポリシーに指定した名前です。
https://ram.aliyuncs.com/?Action=PutUserPolicy
&UserName=ALIYUN$hanako@aliyun.com
&PolicyName=web_slb_policy
&PolicyDocument=$the policy prepared in Step 2
&<other common request parameter>
この時までに、Hanako は SetLoadBalancerStatus (LoadBalancer ステータスの設定) など、Server Load Balancer インスタンスを操作する Server Load Balancer API 呼び出しを開始します。
この呼び出しを実行するには、パラメーター ResourceOwnerAccount を使用して、Taro のリソースを操作するためにこの API が呼び出されることを示します。
https://slb.aliyuncs.com/?Action=SetLoadBalancerStatus
&LoadBalancerId=139a00604ad-cn-east-hangzhou-01
&ResourceOwnerAccount=taro@aliyun.com
&<other common request parameter>
権限付与の取り消し
Hanako の権限を取り消すには、Taro は RAM の DeleteUserPolicy を呼び出してポリシーを削除する必要があります。
https://ram.aliyuncs.com/?Action=DeleteUserPolicy
&UserName=ALIYUN$hanako@aliyun.com
&PolicyName=web_slb_policy
&<other common request parameter>
この Server Load Balancer インスタンスに再度アクセスするために Server Load Balancer API を呼び出すと、Hanako は拒否され、次の応答を受け取ります。
{
"RequestId": "7463B73D-35CC-4D19-A010-6B8D65D242EF",
"HostId": "slb.aliyuncs.com",
"Code": " Forbidden",
"Message": " User not authorized to operate on the specified resource."
}