Alibaba Cloudアカウントにスケーリンググループなどの複数のクラウドリソースがある場合、これらのリソースをグループごとに管理して、リソースの分離と権限制御を実装できます。 このトピックでは、リソースグループを使用してAuto Scalingリソースを詳細に管理する方法について説明します。
背景情報
リソースグループは、目的、権限、または所有権によって管理されるクラウドリソースのグループです。 リソースグループを作成して、さまざまなユーザーやマルチレベルプロジェクトのリソースを企業内で階層的に管理できます。 各クラウドリソースは、1つのリソースグループにのみ属することができます。 リソースグループにリソースを追加しても、リソース間の相関は変化しません。 詳細については、「リソースグループ」をご参照ください。
リソースグループを使用する前に、次の項目に注意してください。
スケーリンググループをリソースグループに追加すると、スケーリンググループのスケーリング設定、スケーリングルール、イベントトリガータスク、およびスケジュールタスクもリソースグループに追加されます。
スケーリンググループが属するリソースグループは、スケーリンググループ内のインスタンスが属するリソースグループとは独立しています。
たとえば、スケーリンググループが属するリソースグループは、スケーリンググループ内のElastic Compute Service (ECS) インスタンスまたはelastic containerインスタンスが属するリソースグループとは異なる場合があります。
異なるリージョンのスケーリンググループを同じリソースグループに追加できます。
たとえば、中国 (北京) リージョンにあるスケーリンググループと中国 (杭州) リージョンにあるスケーリンググループを同時にリソースグループaに追加できます。
RAMユーザーにすべてのAlibaba Cloudリソースを管理する権限を付与すると、RAMユーザーはメインアカウントによって作成されたすべてのリソースグループにアクセスできます。
シナリオ
リソースグループを使用してスケーリンググループを管理する前に、RAMユーザーが作成されていることを確認してください。 詳細については、「RAM ユーザーの作成」をご参照ください。
以下のシナリオでは、リソースグループを使用してスケーリンググループを管理できます。
目的の異なるスケーリンググループを異なるリソースグループに追加します。 これにより、リソースグループの所有権に基づいてスケーリンググループを管理できます。 詳細については、「シナリオ1: 目的によるスケーリンググループの管理」をご参照ください。
リソースグループごとに管理者を設定します。 これにより、各リソースグループ内のユーザー権限とリソース権限を管理できます。 詳細については、「シナリオ2: リソースグループ内のユーザーと権限の管理」をご参照ください。
シナリオ1: 目的によるスケーリンググループの管理
シナリオの説明
たとえば、本番環境とテスト環境があります。 上記の環境で作成されたスケーリンググループをグループ化しない場合、ログオンする環境に関係なく、すべてのスケーリンググループが表示されます。 これにより、スケーリンググループの誤操作のリスクが高くなります。 誤操作を防止し、リソース管理を簡素化するために、2つの環境に対して2つのリソースグループを作成することを推奨します。 この場合、目的に応じてスケーリンググループをリソースグループに追加できます。 次のサンプルシナリオでは、管理を容易にするためにスケーリンググループがリソースグループに追加されます。
たとえば、Alibaba Cloudアカウント内に2つのスケーリンググループがあるとします。 スケーリンググループAは本番環境で使用され、スケーリンググループBはテスト環境で使用されます。 運用環境用に作成されたリソースグループにスケーリンググループAを追加し、テスト環境用に作成されたリソースグループにスケーリンググループBを追加します。 以下の効果が得られます。
テスト環境用に作成されたリソースグループでは、スケーリンググループBのみを表示および操作できます。これにより、スケーリンググループを目的でグループ化しない場合に発生する可能性のあるスケーリンググループAの誤操作やオンラインサービスのパフォーマンスの低下を防ぎます。
本番環境用に作成されたリソースグループでは、スケーリンググループAのみを表示および操作できます。これにより、スケーリンググループを目的でグループ化していない場合に発生する可能性のあるスケーリンググループBの誤操作が防止され、サービスのリリースの進行状況が保証されます。
手順
運用環境とテスト環境に2つのリソースグループを作成します。
この例では、本番環境用に作成されたリソースグループの名前は
ProdResourceGroup
で、テスト環境用に作成されたリソースグループの名前はTestResourceGroup
です。 詳細については、「リソースグループの作成」をご参照ください。上記の操作が完了すると、リソースグループは [作成中] 状態になります。 約3秒待ってクリックします。 リソースグループの状態が [作成中] から [使用可能] に変更された場合、リソースグループが作成されます。
テスト環境のスケーリンググループを作成します。
この例では、スケーリンググループの名前は
TestScalingGroup
です。 スケーリンググループとスケーリンググループのECSインスタンスが同じリソースグループに属するようにするには、[インスタンス設定ソース] パラメーターの値に基づいて、次のいずれかの操作を実行します。[インスタンス構成ソース] パラメーターを [起動テンプレート] に設定した場合、起動テンプレートを作成するときに、[高度な構成 (オプション)] の [リソースグループ] パラメーターの値として
[TestResourceGroup]
を選択します。 詳細については、「起動テンプレートの作成」をご参照ください。[インスタンス設定ソース] パラメーターを [既存のインスタンスの選択] に設定した場合、ECSインスタンスの作成時に、[グループ化 (オプション)] の [リソースグループ] パラメーターの値として
[TestResourceGroup]
を選択します。 詳細については、「カスタム起動タブでインスタンスを作成する」をご参照ください。[インスタンス設定ソース] パラメーターを [スクラッチから作成] に設定した場合、スケーリング設定を作成するときに、[詳細設定 (オプション)] セクションの [リソースグループ] パラメーターの値として
[TestResourceGroup]
を選択します。 詳細については、「ECSタイプのスケーリング設定の作成」をご参照ください。
スケーリンググループの [Resource Group] パラメーターを
[TestResourceGroup]
に設定します。 詳細については、「スケーリンググループの作成」をご参照ください。本番環境のスケーリンググループを作成します。
この例では、スケーリンググループの名前は
ProdScalingGroup
です。 スケーリンググループとスケーリンググループのECSインスタンスが同じリソースグループに属するようにするには、[インスタンス設定ソース] パラメーターの値に基づいて、次のいずれかの操作を実行します。[インスタンス設定ソース] パラメーターを [起動テンプレート] に設定した場合、起動テンプレートを作成するときに、[詳細設定 (オプション)] の [リソースグループ] パラメーターの値として
[ProdResourceGroup]
を選択します。 詳細については、「起動テンプレートの作成」をご参照ください。[インスタンス設定ソース] パラメーターを [既存のインスタンスの選択] に設定した場合、ECSインスタンスの作成時に、[グループ化 (オプション)] の [リソースグループ] パラメーターの値として
ProdResourceGroup
を選択します。 詳細については、「カスタム起動タブでインスタンスを作成する」をご参照ください。[インスタンス設定ソース] パラメーターを [スクラッチから作成] に設定した場合、スケーリング設定を作成するときに、[詳細設定 (オプション)] セクションの [リソースグループ] パラメーターの値として
ProdResourceGroup
を選択します。 詳細については、「ECSタイプのスケーリング設定の作成」をご参照ください。
スケーリンググループの [リソースグループ] パラメーターを
[ProdResourceGroup]
に設定します。 詳細については、「スケーリンググループの作成」をご参照ください。
Verify the result
Auto Scalingコンソールにログインします。
上部のナビゲーションバーの左上隅で、リソースグループを切り替えて、スケーリンググループと各リソースグループのインスタンスを表示します。
[すべてのリソース] を選択した場合、[スケーリンググループ] ページで
[TestScalingGroup]
および[ProdScalingGroup]
スケーリンググループを表示できます。 新しいECSインスタンスがスケーリンググループに追加された場合、[インスタンス] タブでTestResourceGroupおよびProdResourceGroupスケーリンググループのすべてのインスタンスを表示できます。TestResourceGroupを選択した場合、スケーリンググループページでTestScalingGroupスケーリンググループのみを表示できます。 新しいECSインスタンスがスケーリンググループに追加された場合、[インスタンス] タブでTestResourceGroupスケーリンググループのインスタンスのみを表示できます。
ProdResourceGroupを選択した場合、[スケーリンググループ] ページでProdScalingGroupスケーリンググループのみを表示できます。 新しいECSインスタンスがスケーリンググループに追加された場合、[インスタンス] タブでは、ProdResourceGroupスケーリンググループのインスタンスのみを表示できます。
シナリオ2: リソースグループ内のユーザーと権限の管理
シナリオの説明
たとえば、会社には、異なるリソースグループの異なるスケーリンググループを使用する複数のブランチがあり、各ブランチにはリソースを管理する独自の管理者がいます。 リソースグループ内でクロスブランチ管理者ベースの権限管理を確実にするために、必要な権限を各管理者に割り当てることを推奨します。 この場合、一部の管理者は本番環境でのみリソースにアクセスできますが、他の管理者はテスト環境でのみリソースにアクセスできます。 次のサンプルシナリオでは、リソースグループベースの権限管理が実行されます。
たとえば、会社がAlibaba Cloudアカウントを所有し、支店に独立したRAMユーザーがいるとします。 ブランチAとブランチBは、それぞれのスケーリンググループを独立して管理する必要があります。 この場合、ブランチは、互いのスケーリンググループを操作することができない。 次の要件を満たす必要があります。
ブランチAとブランチBは、互いのスケーリンググループを作成したり、スケーリンググループや互いのスケーリングルールなどの他の設定を変更したりすることはできません。
ブランチAとブランチBは、互いのスケーリンググループを表示できません。
手順
RAMコンソールで
ApiWithoutResourcePolicy
ポリシーを作成します。一部のAuto Scaling API操作は、リソースグループベースの認証をサポートしていません。 したがって、API操作のカスタムポリシーを作成する必要があります。 詳細については、「カスタムポリシーの作成」をご参照ください。
次のAPI操作は、リソースグループベースの認証をサポートしていません。
DescribeRegions
説明制限
DescribeNotificationTypes
ListTagKeys
ListTagValues
次のサンプルコードは、
ApiWithoutResourcePolicy
カスタムポリシーのコンテンツの例を示しています。{ "Version": "1", "Statement": [ { "Action": [ "ess:DescribleRegions", "ess:DescribleLimitation", "ess:DecsribleNotificationTypes", "ess:ListTagKeys", "ess:ListTagValues" ], "Resource": "*", "Effect": "Allow" } ] }
ブランチaとブランチBの各管理者にRAMユーザーを作成し、[認可スコープ] パラメーターを [Alibaba Cloudアカウント] に設定してから、各RAMユーザーに必要な権限を付与します。
このステップでは、ブランチAの管理者を例として使用して、必要な権限を付与する方法を説明します。 PrincipalパラメーターをブランチAの管理者のRAMユーザーに設定します。手順1で作成した
ApiWithoutResourcePolicy
カスタムポリシーとAliyunECSFullAccessシステムポリシーを選択します。 詳細については、「RAMユーザーへの権限付与」をご参照ください。ブランチAの管理者に次のカスタムポリシーを付与します。
ブランチAの管理者に次のシステムポリシーを付与します。
ブランチaに部門Aという名前のリソースグループを作成し、ブランチBに部門Bという名前のリソースグループを作成します。
詳細については、「リソースグループの作成」をご参照ください。
AliyunESSFullAccessポリシーをBranch Aの管理者にアタッチします。この場合、管理者はDepartment Aリソースグループのすべてのリソースに対する権限を持っています。
詳細については、「RAM権限の追加」または「RAMユーザーへの権限付与」をご参照ください。
手順4を繰り返して、AliyunESSFullAccessポリシーをBranch Bの管理者にアタッチします。この場合、管理者はDepartment Bリソースグループのすべてのリソースに対する権限を持っています。
[Authorized Scope] パラメーターを [Specific Resource Group] に設定し、[Department B] を選択します。[Principal] パラメーターをブランチBの管理者のRAMユーザーに設定します。
Verify the result
Auto Scalingコンソールにログインします。
ブランチAの管理者として、異なるリソースグループにスケーリンググループを作成できるかどうかを確認します。上部のナビゲーションバーで、別のリソースグループを選択してスケーリンググループを作成します。
スケーリンググループの作成方法については、「スケーリンググループの作成」をご参照ください。
[部門A] リソースグループを選択した場合、リソースグループ内のブランチaの管理者としてスケーリンググループを作成できます。
[部門B] リソースグループを選択した場合、リソースグループ内でブランチaの管理者としてスケーリンググループを作成することはできません。
異なるリソースグループのスケーリンググループをブランチAの管理者として表示できるかどうかを確認します。
スケーリンググループの表示方法については、「スケーリンググループの表示または変更」をご参照ください。
部門Aリソースグループのスケーリンググループを表示できます。
部門Bリソースグループのスケーリンググループは表示できません。