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

Microservices Engine:MSE のカスタムポリシー

最終更新日:Jan 08, 2025

Microservices Engine(MSE)のシステムポリシーが要件を満たせない場合は、最小権限の原則を実装するためにカスタムポリシーを作成できます。カスタムポリシーを使用すると、権限をきめ細かく制御し、リソースアクセスセキュリティを向上させることができます。このトピックでは、MSE のカスタムポリシーの使用方法と、カスタムポリシーの例について説明します。

カスタムポリシーとは

Resource Access Management(RAM)ポリシーは、システムポリシーとカスタムポリシーに分類されます。ビジネス要件に基づいてカスタムポリシーを管理できます。

  • カスタムポリシーを作成した後、そのポリシーを RAM ユーザー、RAM ユーザーグループ、または RAM ロールにアタッチする必要があります。これにより、ポリシーで指定された権限をプリンシパルに付与できます。

  • プリンシパルにアタッチされていない RAM ポリシーは削除できます。RAM ポリシーがプリンシパルにアタッチされている場合は、RAM ポリシーを削除する前に、プリンシパルから RAM ポリシーをデタッチする必要があります。

  • カスタムポリシーはバージョン管理をサポートしています。RAM が提供するバージョン管理メカニズムに基づいて、カスタムポリシーのバージョンを管理できます。

関連情報

ビジュアルエディタータブでのカスタムポリシーの作成

  1. 管理権限を持つ RAM ユーザーとして RAM コンソール にログオンします。

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

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

  4. [ポリシーの作成] ページで、[ビジュアルエディター] タブをクリックします。

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

    1. [効果] セクションで、[許可] または [拒否] を選択します。

    2. [サービス] セクションで、Alibaba Cloud サービスを選択します。

      説明

      選択できる Alibaba Cloud サービスは、[サービス] セクションに表示されます。

    3. [アクション] セクションで、[すべてのアクション] または [アクションを選択] を選択します。

      システムは、[サービス] セクションで選択した Alibaba Cloud サービスに基づいて設定できるアクションを表示します。[アクションを選択] を選択した場合は、アクションを選択する必要があります。

    4. [リソース] セクションで、[すべてのリソース] または [指定されたリソース] を選択します。

      システムは、[アクション] セクションで選択したアクションに基づいて設定できるリソースを表示します。[指定されたリソース] を選択した場合は、[リソースの追加] をクリックして、1 つ以上の Alibaba Cloud Resource Name(ARN)を設定する必要があります。また、[すべて一致] をクリックして、選択した各アクションのすべてのリソースを選択することもできます。

      説明

      アクションに必要なリソース ARN には、[必須] のタグが付けられています。[必須] のタグが付いているリソース ARN を設定することを強くお勧めします。これにより、カスタムポリシーが期待どおりに有効になります。

    5. [条件] セクションで、[条件の追加] をクリックして条件を設定します。

      条件には、Alibaba Cloud の共通条件とサービス固有の条件が含まれます。システムは、選択した Alibaba Cloud サービスとアクションに基づいて設定できる条件を表示します。条件キーを選択し、[演算子] パラメーターと [値] パラメーターを設定するだけです。

    6. [ステートメントの追加] をクリックし、上記の手順を繰り返して複数のカスタムポリシーステートメントを設定します。

  6. カスタムポリシーの内容を確認し、最適化します。

    • 基本的な最適化

      システムはポリシーステートメントを自動的に最適化します。システムは、基本的な最適化中に次の操作を実行します。

      • 不要な条件を削除します。

      • 不要な配列を削除します。

    • (オプション)高度な最適化

      [オプション:高度な最適化] にポインターを移動し、[実行] をクリックします。システムは、高度な最適化中に次の操作を実行します。

      • アクションと互換性のないリソースまたは条件を分割します。

      • リソースを絞り込みます。

      • ポリシーステートメントの重複を削除またはマージします。

  7. [名前] パラメーターと [説明] パラメーターを設定します。

  8. [OK] をクリックします。

マイクロサービスレジストリの一般的なカスタムポリシーの例

  • 特定のインスタンスのサービスに対する読み取り専用権限をユーザーに付与します。

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "mse:QueryNacosNaming"
                ],
                "Resource": [
                    "acs:mse:*:*:instance/${instanceId1}",
                    "acs:mse:*:*:instance/${instanceId2}"
                ],
                "Effect": "Allow"
            }
        ]
    }
  • 特定のインスタンスのサービスを読み取りおよび変更する権限をユーザーに付与します。

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "mse:QueryNacosNaming",
                    "mse:UpdateNacosNaming"
                ],
                "Resource": [
                    "acs:mse:*:*:instance/${instanceId1}",
                    "acs:mse:*:*:instance/${instanceId2}"
                ],
                "Effect": "Allow"
            }
        ]
    }
    説明

    ${instanceId1} と ${instanceId2} はインスタンス ID を示します。

  • インスタンスの特定の名前空間にあるサービスに対する読み取り専用権限をユーザーに付与します。

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "mse:QueryNacosNaming",
                "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}" // 特定のインスタンスの特定の名前空間内のサービスに対する読み取り専用権限を許可します。
            }
        ],
        "Version": "1"
    }
  • インスタンスの特定の名前空間にある ${group} グループのサービスを読み取りおよび変更する権限をユーザーに付与します。

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "mse:QueryNacosNaming",
                    "mse:UpdateNacosNaming"
                ],
                "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}" // 特定のインスタンスの特定の名前空間の ${group} グループのサービスに対する読み取り/書き込み権限を許可します。
            }
        ],
        "Version": "1"
    }
  • ${group} グループの ${serviceName} サービスに対する読み取り専用権限をユーザーに付与します。

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "mse:QueryNacosNaming",
                "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}/naming/${serviceName}" // ${group} グループの ${serviceName} サービスに対する読み取り専用権限を許可します。
            }
        ],
        "Version": "1"
    }
  • ${group} グループの ${serviceName} サービスを読み取りおよび変更する権限をユーザーに付与します。

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "mse:QueryNacosNaming",
                    "mse:UpdateNacosNaming"
                ],
                "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}/naming/${serviceName}" // ${group} グループの ${serviceName} サービスに対する読み取り/書き込み権限を許可します。
            }
        ],
        "Version": "1"
    }

マイクロサービスガバナンスの一般的なカスタムポリシーの例

すべてのアプリケーションに対する読み取り専用権限を付与する

企業の従業員がアプリケーションの主要な情報を表示できるようにするには、企業は従業員にすべてのアプリケーションに対する読み取り専用権限を付与できます。

たとえば、企業は Alibaba Cloud アカウントを使用して、RAM ユーザーに現在の Alibaba Cloud アカウントのすべてのマイクロサービスガバナンス対応アプリケーションに対する読み取り専用権限を付与します。

次のコードは、ポリシーの例を示しています。

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "mse:QueryNamespace",
        "mse:GetApplicationListWithMetircs",
        "mse:ListNamespaces",
        "mse:GetEventFilterOptions",
        "mse:ListEventRecords",
        "mse:GetEventDetail",
        "mse:FetchLogConfig",
        "mse:QueryBusinessLocations",
        "mse:GetApplicationInstanceList",
        "mse:listGrayTag",
        "mse:QueryServiceDetailWithMetrics",
        "mse:GetEventDetail",
        "mse:ListEventsPage",
        "mse:ListEventsByType",
        "mse:GetApplicationTagList"
      ],
      "Resource": "acs:mse:*:*:*" // すべてのマイクロサービスガバナンス対応アプリケーションに対する読み取り専用権限
    },
    {
      "Effect": "Allow",
      "Action": "mse:GetApplicationList",
      "Resource": "acs:mse:*:*:namespace/${ns}" // 特定の名前空間のすべてのマイクロサービスガバナンス対応アプリケーションに対する読み取り専用権限
    }
  ]
}

RAM ユーザーにアプリケーションに対するすべての操作権限を付与する

企業のアプリケーションの所有者として、アプリケーションに対するすべての操作権限が付与される必要があります。権限は、管理するアプリケーションの範囲に厳密に制限されています。

たとえば、企業は Alibaba Cloud アカウントを使用して、RAM ユーザーに次の権限を付与します。

  • 現在の Alibaba Cloud アカウントのすべてのマイクロサービスガバナンス対応アプリケーションに対する読み取り専用権限。

  • 特定のマイクロサービスガバナンス対応アプリケーションに対するすべての権限。

次のコードは、ポリシーの例を示しています。

{
  "Version": "1",
  "Statement": [
    // 特定のマイクロサービスガバナンス対応アプリケーションに対するすべての権限
    {
      "Effect": "Allow",
      "Action": "mse:*",
      "Resource": "acs:mse:*:*:namespace/${ns}/application/${appName}" // 特定のマイクロサービスガバナンス対応アプリケーションに対するすべての権限
    },
    // すべてのマイクロサービスガバナンス対応アプリケーションに対する読み取り専用権限
    {
      "Effect": "Allow",
      "Action": [
        "mse:QueryNamespace",
        "mse:GetApplicationListWithMetircs",
        "mse:ListNamespaces",
        "mse:GetEventFilterOptions",
        "mse:ListEventRecords",
        "mse:GetEventDetail",
        "mse:FetchLogConfig",
        "mse:QueryBusinessLocations",
        "mse:GetApplicationInstanceList",
        "mse:listGrayTag",
        "mse:QueryServiceDetailWithMetrics",
        "mse:GetEventDetail",
        "mse:ListEventsPage",
        "mse:ListEventsByType",
        "mse:GetApplicationTagList"
      ],
      "Resource": "acs:mse:*:*:*" // すべてのマイクロサービスガバナンス対応アプリケーションに対する読み取り専用権限
    },
    {
      "Effect": "Allow",
      "Action": "mse:GetApplicationList",
      "Resource": "acs:mse:*:*:namespace/${ns}" // 特定の名前空間のすべてのマイクロサービスガバナンス対応アプリケーションに対する読み取り専用権限
    }
  ]
}

名前空間内のすべてのアプリケーションに対する操作権限を付与する

企業のテストエンジニアとして、テスト環境(テスト名前空間)内のすべてのアプリケーションに対する操作権限が付与される必要があります。権限は、テスト環境(テスト名前空間)の範囲に厳密に制限されています。

たとえば、企業は Alibaba Cloud アカウントを使用して、RAM ユーザーに次の権限を付与します。

  • 現在の Alibaba Cloud アカウントのすべてのマイクロサービスガバナンス対応アプリケーションに対する読み取り専用権限。

  • 特定のマイクロサービスガバナンス名前空間内のアプリケーションに対する読み取り/書き込み権限。

次のコードは、ポリシーの例を示しています。

{
"Version": "1",
    "Statement": [
        // 特定のマイクロサービスガバナンス名前空間内のアプリケーションに対するすべての権限
        {
            "Effect": "Allow",
            "Action": "mse:*",
            "Resource": "acs:mse:*:*:namespace/${ns}/application/*" // 特定のマイクロサービスガバナンス名前空間内のアプリケーションに対するすべての権限
        },
        // すべてのマイクロサービスガバナンス対応アプリケーションに対する読み取り専用権限
        {
            "Effect": "Allow",
            "Action": [
                "mse:QueryNamespace",
                "mse:GetApplicationListWithMetircs",
                "mse:ListNamespaces",
                "mse:GetEventFilterOptions",
                "mse:ListEventRecords",
                "mse:GetEventDetail",
                "mse:FetchLogConfig",
                "mse:QueryBusinessLocations",
                "mse:GetApplicationInstanceList",
                "mse:listGrayTag",
                "mse:QueryServiceDetailWithMetrics",
                "mse:GetEventDetail",
                "mse:ListEventsPage",
                "mse:ListEventsByType",
                "mse:GetApplicationTagList",
                "mse:QueryAllSwimmingLaneGroup",
                "mse:QueryAllSwimmingLane",
                "mse:ListAppBySwimmingLaneGroupTags",
                "mse:ListAppBySwimmingLaneGroupTag",
                "mse:QuerySwimmingLaneById",
                "mse:GetTagsBySwimmingLaneGroupId",
                "mse:ListSwimmingLaneGateway",
                "mse:ListSwimmingLaneGatewayRoute",
                "mse:ListAuthPolicy",
                "mse:GetServiceList",
                "mse:GetServiceListPage"
            ],
            "Resource": "acs:mse:*:*:*" // すべてのマイクロサービスガバナンス対応アプリケーションに対する読み取り専用権限
        },
        // 特定のマイクロサービスガバナンス名前空間内のアプリケーションに対するすべての権限
        {
            "Effect": "Allow",
            "Action": [
                "mse:GetApplicationList",
                "mse:CreateOrUpdateSwimmingLaneGroup",
                "mse:CreateOrUpdateSwimmingLane",
                "mse:DeleteSwimmingLaneGroup",
                "mse:DeleteSwimmingLaneGroup",
                "mse:DeleteSwimmingLane"
            ],
            "Resource": "acs:mse:*:*:namespace/${ns}" // 特定のマイクロサービスガバナンス名前空間内のアプリケーションに対するすべての権限
        }
    ]
}

クラウドネイティブゲートウェイの一般的なカスタムポリシーの例

ユーザーまたはロールにすべてのリソースに対する権限を付与する

RAM ユーザーまたはロールにすべてのクラウドネイティブゲートウェイに対する操作権限を付与する場合、次のシステムポリシーを RAM ユーザーまたはロールにアタッチできます。

  • 読み取り専用権限:AliyunMSEReadOnlyAccess

  • 読み取り/書き込み権限:AliyunMSEFullAccess

ユーザーまたはロールに特定のゲートウェイリソースに対する権限を付与する

RAM ユーザーまたはロールに特定のゲートウェイに対する操作権限を付与する場合、リソースレベルの権限を RAM ユーザーまたはロールに付与できます。

  • 例 1:RAM ユーザーに gw-8090caa2a3ab447a8bc5fdf3******** という名前のクラウドネイティブゲートウェイに対する読み取り専用権限を付与します。

    {
        "Version": "1",
        "Statement": [
            {
                // ゲートウェイに対する読み取り専用権限
                "Action": [
                    "mse:Query*",
                    "mse:List*",
                    "mse:Get*",
                    "mse:Select*",
                    "mse:Pull*",
                    "mse:GatewayBlackWhite*",
                    "mse:GatewayHealthCheckList",
                    "mse:GatewayQueryMonitor",
                    "mse:UploadWasmFile"
                ],
                "Resource": "acs:mse:*:*:instance/gw-8090caa2a3ab447a8bc5fdf3********", // 特定のゲートウェイインスタンス
                "Effect": "Allow"
            },
            {
                // ゲートウェイに対する読み取り専用権限
                "Action": [
                    "mse:QueryDefaultAlertStatus",
                    "mse:ListGatewayZone",
                    "mse:ListUpgradableGatewayVersions",
                    "mse:ListTagResources",
                    "mse:ListGatewayIngressMigrateTask",
                    "mse:ListEventRecords",
                    "mse:GetEventFilterOptions",
                    "mse:GetEventDetail",
                    "mse:GetGatewaySelection",
                    "mse:GetGatewayAlarms",
                    "mse:GetGatewayMigrateNamespacedServices",
                    "mse:GetGatewayIngressMigrateTaskDetail",
                    "mse:GetPluginGuide",
                    "mse:GetRegExpCheck",
                    "mse:GetRegExpTest",
                    "mse:CheckPluginLua"
                ],
                "Resource": "acs:mse:*:*:*",
                "Effect": "Allow"
            },
            {
                // ログサービスに対する権限
                "Action": [
                    "log:DescribeService",
                    "log:ListProject",
                    "log:GetProductDataCollection"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                // ARMS に対する権限
                "Action": [
                    "arms:SearchContactGroup"
                ],
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }
  • 例 2:RAM ユーザーに gw-8090caa2a3ab447a8bc5fdf3******** という名前のクラウドネイティブゲートウェイに対する読み取り/書き込み権限を付与します。

    {
        "Version": "1",
        "Statement": [
            {
                // ゲートウェイに対するすべての権限
                "Action": [
                    "mse:*"
                ],
                "Resource": "acs:mse:*:*:instance/gw-8090caa2a3ab447a8bc5fdf3********", // 特定のゲートウェイインスタンス
                "Effect": "Allow"
            },
            {
                // ゲートウェイに対する読み取り/書き込み権限
                "Action": [
                    "mse:QueryDefaultAlertStatus",
                    "mse:CreateDefaultAlert",
                    "mse:ListGatewayZone",
                    "mse:ListUpgradableGatewayVersions",
                    "mse:ListEventRecords",
                    "mse:GetEventFilterOptions",
                    "mse:GetEventDetail",
                    "mse:GetGatewaySelection",
                    "mse:GetGatewayAlarms",
                    "mse:GetGatewayMigrateNamespacedServices",
                    "mse:GetPluginGuide",
                    "mse:GetRegExpCheck",
                    "mse:GetRegExpTest",
                    "mse:CheckPluginLua",
                    "mse:*TagResources",
                    "mse:*CustomPlugin",
                    "mse:*GatewayIngressMigrateTask*"
                ],
                "Resource": "acs:mse:*:*:*",
                "Effect": "Allow"
            },
            {
                // ログサービスに対する権限
                "Action": [
                    "log:DescribeService",
                    "log:ListProject",
                    "log:GetProductDataCollection",
                    "log:OpenProductDataCollection"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                // ARMS に対する権限
                "Action": [
                    "arms:SearchContactGroup"
                ],
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }

使用上の注意

上記の権限では、MSE コンソールで必要な操作のみを実行できます。クラウドネイティブゲートウェイの特定の機能は、他のクラウドサービスに依存します。他のクラウドサービスの権限設定ドキュメントに基づいて、RAM ユーザーまたはロールの権限を設定できます。これにより、RAM ユーザーまたはロールはクラウドネイティブゲートウェイのすべての機能を使用できます。次の表に、クラウドネイティブゲートウェイが依存するクラウドサービスと関連するクラウドネイティブゲートウェイモジュール間のマッピングを示します。

Alibaba Cloud サービス

クラウドネイティブゲートウェイモジュール

関連情報

ログサービス

  • ログセンター。[ログセンター] タブにアクセスするには、[クラウドネイティブゲートウェイ] > [ゲートウェイ] を選択します。[ゲートウェイ] ページで、ゲートウェイの名前をクリックして、ゲートウェイの詳細ページに移動します。表示されるページで、[監視分析] > [ログセンター] を選択します。

  • プラグインログ。[プラグインログ] タブにアクセスするには、[クラウドネイティブゲートウェイ] > [ゲートウェイ] を選択します。[ゲートウェイ] ページで、ゲートウェイの名前をクリックして、ゲートウェイの詳細ページに移動します。表示されるページで、[プラグインマーケットプレイス] をクリックします。次に、プラグインカードをクリックして、プラグインの詳細ページに移動します。表示されるページで、[プラグインログ] をクリックします。

ログサービスのカスタムポリシー

ARMS

  • トレース分析。[トレース分析] タブにアクセスするには、[クラウドネイティブゲートウェイ] > [ゲートウェイ] を選択します。[ゲートウェイ] ページで、ゲートウェイの名前をクリックして、ゲートウェイの詳細ページに移動します。表示されるページで、[監視分析] > [トレース分析] を選択します。

  • アラート。アラート機能を使用するには、[クラウドネイティブゲートウェイ] > [アラート] を選択します。

ARMS のシステムポリシー

認証情報の関連情報

RAM 認証

[No text provided to translate. Please provide the text you would like me to translate.]