Server Migration Center (SMC) リソースにタグをアタッチした後、タグを使用してリソースを分類し、アクセスを制御できます。 このトピックでは、タグを使用してResource Access Management (RAM) ユーザーとSecurity Token Service (STS) ロールの権限を制御し、異なるユーザーにクラウドリソースに対する異なるアクセス権限と操作権限を付与できるようにする方法について説明します。
前提条件
RAMユーザーは、Alibaba Cloudアカウントを使用して作成されます。 詳細については、「RAM ユーザーの作成」をご参照ください。
背景情報
タグは、クラウドリソースを識別および分類するために使用されます。 RAMは、権限ポリシーに基づいて、クラウドリソースに対するRAMユーザーのアクセス権限と操作権限を管理します。 RAMポリシーの条件としてタグを使用して、リソースに対するきめ細かいアクセス制御を実装できます。
次の図は、タグを使用してクラウドリソース上のRAMユーザーのアクセス権限と操作権限を管理する方法を示しています。 このプロセスは、タグベースの認証と呼ばれます。
移行ソースや移行タスクなどのSMCリソースにタグを付けることができます。 タグは、作成後にのみ移行ソースにアタッチできます。 詳細については、「タグを使用した移行ソースと移行ジョブの管理」をご参照ください。
シナリオ
このトピックのシナリオでは、タグベースの認証を実行する方法について説明します。
たとえば、次の図に示すように、SMC: testタグがバインドされているsmcリソースに対する権限のみをRAMユーザーに付与する必要があります。
シナリオ
シナリオ1: 移行タスクを作成できるのは、
smc:test
タグがタスクにアタッチされている場合のみです。シナリオ2:
smc:test
タグがアタッチされているリソースにのみ、タグを変更、削除、およびアタッチできます。
手順1: カスタムポリシーを作成し、そのポリシーをRAMユーザーにアタッチする
このステップでは、RAMコンソールでカスタムポリシーが作成されます。 CreatePolicy操作を呼び出して、カスタムポリシーを作成することもできます。 詳細については、「ポリシーの設定」をご参照ください。
Alibaba Cloudアカウントを使用してRAMコンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[ポリシー] ページで、[ポリシーの作成] をクリックします。
[ポリシーの作成] ページで、[JSON] タブをクリックします。
ポリシーを設定します。
ポリシーには、一連の権限が含まれています。 各ポリシーには、バージョン番号と1つ以上の個別のステートメントが含まれます。 各ステートメントには、Effect、Action、Resource、およびConditionの要素が含まれます。 Condition要素はオプションです。 詳細については、「ポリシー要素」および「ポリシー構造と構文」をご参照ください。
必要に応じてポリシーを変更し、[次へ: 基本情報の編集] をクリックします。
カスタムポリシーの
Condition
要素で、クラウドリソースに複数のタグベースの条件を設定して、操作権限を制限できます。 サポートされているタグベースの認証条件を次の表に示します。タグベースの認証条件
説明
acs:RequestTag
各APIリクエストに特定のタグを含める必要があることを指定します。
APIリクエストにタグ関連のパラメーターが含まれていない場合、acs:RequestTag条件は使用できません。 それ以外の場合、認証は失敗します。
acs:ResourceTag
指定したリソースに特定のタグをアタッチする必要があることを指定します。
APIリクエストにリソースIDが含まれていない場合、acs:ResourceTag条件は使用できません。 それ以外の場合、認証は失敗します。
説明ポリシーを設定するときは、リソースIDを指定する必要があるかどうか、およびAPIリクエストにタグを含めることができるかどうかに基づいて、
acs:RequestTag
またはacs:ResourceTag
条件を使用できます。 詳細については、「さまざまなAPI操作へのリクエストのタグベースの認証」をご参照ください。{ "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
タグがアタッチされているリソースのみを変更および削除できます。{ "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: ポリシーが有効かどうかを確認する
SMCコンソールにログインするか、 RAMユーザーとしてのOpenAPI Explorer。
このステップでは、SMCコンソールが使用されます。
ポリシーが有効かどうかを確認します。
次の操作を実行します。
移行タスクを作成します。
smc:test
タグをアタッチした移行ソースの移行タスクを作成できます。smc:testタグをアタッチしていない移行ソースの移行タスクを作成することはできません。 移行タスクを作成する権限がないことを確認します。
移行ソースを削除する:
smc:test
タグをアタッチした移行ソースを削除できます。smc:test
タグをアタッチしていない移行ソースは削除できません。 移行タスクを作成する権限がないことを確認します。
異なるAPI操作へのリクエストのタグベースの認証
タグベースの条件を含むポリシーがRAMユーザーにアタッチされると、RAMユーザーがAPI操作に対して行ったリクエストは、ポリシー条件で指定されたタグに基づいて認証されます。 次の表では、さまざまなAPI操作へのリクエストがタグに基づいて認証されるさまざまなケースについて説明します。
API 操作 | 認証の説明 |
CreateReplicationJob | リクエストでリソースIDを指定する必要はありません。 リクエストは、
|
ModifyReplicationJobAttribute | リクエストでリソースIDを指定する必要があります。 リクエストは、
|
StartReplicationJob、StopReplicationJob、およびDeleteSourceServer | リクエストでリソースIDを指定する必要があります。 リクエストは、
|