Server Migration Center (SMC) リソースにタグを使用して分類し、異なる RAM ユーザーに特定のアクセス権限を付与します。
前提条件
Alibaba Cloud アカウント配下に RAM ユーザーが作成されていること。詳細については、「RAM ユーザーを作成する」をご参照ください。
背景情報
タグはクラウドリソースを識別し、分類します。Resource Access Management (RAM) のポリシーは、アクセス権限と操作権限を制御します。RAM ポリシーに条件としてタグを追加すると、きめ細かなアクセス制御を実現できます。
次の図は、RAM ユーザーへのタグベースの権限制御を示しています。
タグをサポートする SMC リソースには、移行元と移行ジョブが含まれます。移行元にタグを追加できるのは、作成後のみです。詳細については、「タグを使用して移行元と移行ジョブを管理する」をご参照ください。
ユースケース例
次のシナリオは、タグベースのアクセス制御を示しています。
次の図に示すように、RAM ユーザーが smc:test などの特定のタグが付いた SMC リソースのみを管理できるようにします。
この例では、次の 2 つのシナリオを扱います:
-
シナリオ 1:作成時に
smc:testタグが追加されている場合にのみ、移行ジョブを作成できます。 -
シナリオ 2:プロパティの変更、リソースの削除、タグの管理などの操作は、
smc:testタグが付いた SMC リソースに対してのみ実行できます。
手順 1:カスタムポリシーの作成と権限付与
RAM コンソールでカスタムポリシーを作成するか、CreatePolicy API を呼び出します。ポリシーの詳細は、「Policy configuration」セクションに記載されています。
-
Alibaba Cloud アカウントでRAM コンソールにログインします。
-
左側のナビゲーションペインで、 を選択します。
-
Policies ページで、ポリシーの作成 をクリックします。
-
ポリシーの作成 ページで、[JSON] タブをクリックします。
-
ポリシーを設定します。
ポリシーは、バージョン番号とステートメントで構成されます。各ステートメントには、エフェクト、アクション、リソース、および任意の条件が含まれます。詳細については、「Policy elements」と「Policy structure and syntax」をご参照ください。
-
必要に応じてポリシードキュメントを変更した後、OK をクリックします。
Conditionブロックに、タグベースの条件を追加して権限を制限します。次の表に、サポートされている条件キーを示します。条件キー
説明
acs:RequestTagリクエストに特定のタグが含まれていることを要求します。
API オペレーションがリクエスト内のタグをサポートしていない場合、この条件キーは使用できません。使用すると、認証に失敗します。
acs:ResourceTagアクセス対象のリソースに特定のタグが付いていることを要求します。
API オペレーションがリクエストでリソース ID を要求しない場合、この条件キーは使用できません。使用すると、認証に失敗します。
説明API オペレーションに応じて、
acs:RequestTagまたはacs:ResourceTagを選択します。判断基準は、リソース ID が必要かどうか、またはリクエストでのタグ指定をサポートしているかどうかです。詳細については、「Tag-based authentication for API operations」をご参照ください。{ "Statement": [ { "Action": "smc:CreateReplicationJob", "Condition": { "StringEquals": { "acs:RequestTag/smc": "test" } }, "Effect": "Allow", "Resource": "*" }, { "Action": "smc:*", "Condition": { "StringEquals": { "acs:ResourceTag/smc": "test" } }, "Effect": "Allow", "Resource": "*" }, { "Action": [ "*:TagResources", "*:UntagResources" ], "Effect": "Deny", "Resource": "*" }, { "Action": [ "*:List*", "*:Describe*" ], "Effect": "Allow", "Resource": "*" } ], "Version": "1" }前述のポリシーは、次の権限制御を実現します。
シナリオ
ポリシー
シナリオ 1:作成時に
smc:testタグが追加されている場合にのみ、移行ジョブの作成が許可されます。{ "Statement": [ { "Action": "smc:CreateReplicationJob", "Condition": { "StringEquals": { "acs:RequestTag/smc": "test" } }, "Effect": "Allow", "Resource": "*" }, { "Action": [ "*:List*", "*:Describe*" ], "Effect": "Allow", "Resource": "*" } ], "Version": "1" }シナリオ 2:
smc:testタグが付いた SMC リソースに対してのみ操作 (プロパティの変更やリソースの削除など) が許可されます。その他の SMC リソースに対する操作は拒否されます。{ "Statement": [ { "Action": "smc:*", "Condition": { "StringEquals": { "acs:ResourceTag/smc": "test" } }, "Effect": "Allow", "Resource": "*" }, { "Action": [ "*:TagResources", "*:UntagResources" ], "Effect": "Deny", "Resource": "*" }, { "Action": [ "*:List*", "*:Describe*" ], "Effect": "Allow", "Resource": "*" } ], "Version": "1" } -
ポリシーの作成 ダイアログボックスで、ポリシーの名前と説明を入力し、OK をクリックします。
-
-
カスタムポリシーを RAM ユーザーにアタッチします。
-
左側のナビゲーションペインで、 を選択します。
-
新しく作成したカスタムポリシーを RAM ユーザーにアタッチします。
詳細については、「RAM ユーザーの権限を管理する」をご参照ください。
-
手順 2:ポリシーの検証
-
RAM ユーザーとして SMC コンソールまたはOpenAPI Explorer にログインします。
この例では、SMC コンソールを使用して検証します。
-
ポリシーが正しく動作することを確認します。
次の権限をテストします:
-
移行ジョブを作成する:
-
移行ジョブの作成時に
smc:testタグを追加すると、移行ジョブを作成できます。 -
移行ジョブの作成時に
smc:testタグを追加しない場合、移行ジョブは作成できません。エラーメッセージ「You are not authorized to perform this operation. Contact your Alibaba Cloud account to grant the required permissions and then try again.」が表示されます。権限を付与するには、[Go to RAM for Authorization] をクリックします。
-
-
移行元を削除する:
-
smc:testタグが付いた移行元は削除できます。 -
smc:testタグが付いていない移行元を削除しようとすると、操作は失敗します。[Error] ダイアログボックスが表示され、メッセージ「You are not authorized to perform this operation. Contact your Alibaba Cloud account to grant the required permissions and then try again.」が表示されます。[OK] をクリックしてダイアログボックスを閉じます。
-
-
API オペレーションのタグベース認証
タグベースのポリシーを RAM ユーザーにアタッチすると、APIリクエストは次の表に示すように認証されます。
|
API |
認証ロジック |
|
CreateReplicationJob |
このオペレーションではリソース ID は不要です。認証は
|
|
ModifyReplicationJobAttribute |
このオペレーションではリソース ID が必要です。認証は
|
|
StartReplicationJob、StopReplicationJob、DeleteSourceServer などのその他のオペレーション |
これらのオペレーションではリソース ID が必要です。認証は
|