すべてのプロダクト
Search
ドキュメントセンター

Server Migration Center:タグを使用したきめ細かいアクセス制御の実装

最終更新日:Oct 21, 2024

Server Migration Center (SMC) リソースにタグをアタッチした後、タグを使用してリソースを分類し、アクセスを制御できます。 このトピックでは、タグを使用してResource Access Management (RAM) ユーザーとSecurity Token Service (STS) ロールの権限を制御し、異なるユーザーにクラウドリソースに対する異なるアクセス権限と操作権限を付与できるようにする方法について説明します。

前提条件

RAMユーザーは、Alibaba Cloudアカウントを使用して作成されます。 詳細については、「RAM ユーザーの作成」をご参照ください。

背景情報

タグは、クラウドリソースを識別および分類するために使用されます。 RAMは、権限ポリシーに基づいて、クラウドリソースに対するRAMユーザーのアクセス権限と操作権限を管理します。 RAMポリシーの条件としてタグを使用して、リソースに対するきめ細かいアクセス制御を実装できます。

次の図は、タグを使用してクラウドリソース上のRAMユーザーのアクセス権限と操作権限を管理する方法を示しています。 このプロセスは、タグベースの認証と呼ばれます。786

説明

移行ソースや移行タスクなどのSMCリソースにタグを付けることができます。 タグは、作成後にのみ移行ソースにアタッチできます。 詳細については、「タグを使用した移行ソースと移行ジョブの管理」をご参照ください。

シナリオ

このトピックのシナリオでは、タグベースの認証を実行する方法について説明します。

たとえば、次の図に示すように、SMC: testタグがバインドされているsmcリソースに対する権限のみをRAMユーザーに付与する必要があります。saasd

シナリオ

  • シナリオ1: 移行タスクを作成できるのは、smc:testタグがタスクにアタッチされている場合のみです。

  • シナリオ2: smc:testタグがアタッチされているリソースにのみ、タグを変更、削除、およびアタッチできます。

手順1: カスタムポリシーを作成し、そのポリシーをRAMユーザーにアタッチする

このステップでは、RAMコンソールでカスタムポリシーが作成されます。 CreatePolicy操作を呼び出して、カスタムポリシーを作成することもできます。 詳細については、「ポリシーの設定」をご参照ください。

  1. Alibaba Cloudアカウントを使用してRAMコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[権限] > [ポリシー] を選択します。

  3. [ポリシー] ページで、[ポリシーの作成] をクリックします。

  4. [ポリシーの作成] ページで、[JSON] タブをクリックします。

  5. ポリシーを設定します。

    ポリシーには、一連の権限が含まれています。 各ポリシーには、バージョン番号と1つ以上の個別のステートメントが含まれます。 各ステートメントには、Effect、Action、Resource、およびConditionの要素が含まれます。 Condition要素はオプションです。 詳細については、「ポリシー要素」および「ポリシー構造と構文」をご参照ください。

    1. 必要に応じてポリシーを変更し、[次へ: 基本情報の編集] をクリックします。

      カスタムポリシーの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"
      }                                                  
    2. [基本情報] セクションで、[名前] フィールドにポリシー名を入力し、[OK] をクリックします。

  6. RAMユーザーにポリシーをアタッチします。

    1. 左側のナビゲーションウィンドウで、[ID] > [ユーザー] を選択します。

    2. RAMユーザーにポリシーをアタッチします。

      詳細については、「RAM ユーザーへの権限の付与」をご参照ください。

ステップ2: ポリシーが有効かどうかを確認する

  1. SMCコンソールにログインするか、 RAMユーザーとしてのOpenAPI Explorer

    このステップでは、SMCコンソールが使用されます。

  2. ポリシーが有効かどうかを確認します。

    次の操作を実行します。

    • 移行タスクを作成します。

      • smc:testタグをアタッチした移行ソースの移行タスクを作成できます。

      • smc:testタグをアタッチしていない移行ソースの移行タスクを作成することはできません。 移行タスクを作成する権限がないことを確認します。 2556

    • 移行ソースを削除する:

      • smc:testタグをアタッチした移行ソースを削除できます。

      • smc:testタグをアタッチしていない移行ソースは削除できません。 移行タスクを作成する権限がないことを確認します。 566

異なるAPI操作へのリクエストのタグベースの認証

タグベースの条件を含むポリシーがRAMユーザーにアタッチされると、RAMユーザーがAPI操作に対して行ったリクエストは、ポリシー条件で指定されたタグに基づいて認証されます。 次の表では、さまざまなAPI操作へのリクエストがタグに基づいて認証されるさまざまなケースについて説明します。

API 操作

認証の説明

CreateReplicationJob

リクエストでリソースIDを指定する必要はありません。 リクエストは、acs:RequestTagポリシー条件と照合されます。

  • リクエストにポリシー条件からのタグが含まれていない場合、認証は失敗します。

  • リクエストにポリシー条件のタグと一致するタグが含まれている場合、認証は成功します。

ModifyReplicationJobAttribute

リクエストでリソースIDを指定する必要があります。 リクエストは、acs:ResourceTagポリシー条件と照合されます。

  • リソースにアタッチされたタグがポリシー条件で指定されたタグと一致しない場合、認証は失敗します。

  • リソースにアタッチされたタグがポリシー条件で指定されたタグと一致する場合、認証は成功します。

  • リソースのタグを更新し、リクエストにリソースの新しいタグが含まれている場合、タグがポリシー条件で指定されたタグと一致する場合にのみ認証が成功します。 それ以外の場合、認証は失敗します。

StartReplicationJob、StopReplicationJob、およびDeleteSourceServer

リクエストでリソースIDを指定する必要があります。 リクエストは、acs:ResourceTagポリシー条件と照合されます。

  • リソースのタグがポリシー条件で指定されたタグと一致しない場合、認証は失敗します。

  • リソースのタグがポリシー条件で指定されたタグと一致する場合、認証は成功します。