SchedulerX では、Resource Access Management (RAM) を使用して、複数のユーザーやユーザーグループに一度に権限を付与できます。RAM はきめ細かな権限管理を提供し、最小権限の原則に基づいて権限を付与できます。これにより、Alibaba Cloud アカウントの AccessKey ペアを他のユーザーと共有する必要がなくなり、セキュリティ リスクを効果的に低減できます。このトピックでは、RAM ユーザーに特定の操作を実行するための権限を付与する方法について説明します。
背景情報
SchedulerX の権限を定義する 2 種類の RAM ポリシーを RAM ユーザーにアタッチして、迅速に権限を付与できます。これら 2 種類の RAM ポリシーは、有効範囲が異なります。ビジネス要件に基づいて RAM ポリシーをアタッチできます。RAM ユーザーに、よりきめ細かく権限を付与したい場合は、カスタムポリシーを作成できます。詳細については、本トピックの「カスタムポリシーの例」セクションをご参照ください。
RAM ユーザーへのリソース作成権限の付与
デフォルトでは、RAM ユーザーは SchedulerX のリソースを作成、表示、または管理する権限を持っていません。RAM ユーザーにリソース作成権限を付与できます。デフォルトでは、RAM ユーザーは、自身が作成したすべてのリソースを読み書きできます。
手順:
RAM コンソールにログインします。
カスタムポリシーを作成します。詳細については、「JSON エディターを使用したカスタムポリシーの作成」をご参照ください。以下は、カスタムポリシーのサンプルコードです。このポリシーを使用すると、RAM ユーザーまたはユーザーグループに、名前空間と名前空間内のインスタンスグループを作成する権限を付与できます。RAM ユーザーは、自身が作成したインスタンスグループへのアクセス権限のみを持ちます。ある RAM ユーザーが別の RAM ユーザーによって作成されたインスタンスグループやリソースへのアクセス権限を必要とする場合は、カスタムポリシーを作成してその RAM ユーザーにアタッチする必要があります。詳細については、本トピックの「カスタムポリシーの例」をご参照ください。
{ "Version": "1", "Statement": [ { "Action": ["edas:CreateSchedulerxNamespace*", "edas:CreateSchedulerxAppGroup*"], "Effect": "Allow", "Resource": "acs:edas:*:*:*" } ] }任意:RAM ユーザーまたはユーザーグループを作成します。詳細については、「RAM ユーザーの作成」または「RAM ユーザーグループの作成」をご参照ください。RAM ユーザーまたはユーザーグループが既に存在する場合は、この手順をスキップできます。
手順 2 で作成したカスタムポリシーを単一の RAM ユーザーにアタッチします。詳細については、「RAM ユーザーの権限管理」をご参照ください。
-
手順 2 で作成したカスタムポリシーをユーザーグループにアタッチし、RAM ユーザーをそのユーザーグループに追加します。
-
ポリシーをユーザーグループにアタッチします。詳細については、「RAM ユーザーグループへの権限付与」をご参照ください。RAM コンソールで、手順 2 で作成したカスタムポリシーを選択します。
-
適切なポリシーを持つユーザーグループにユーザーを追加します。詳細については、「方法 2: RAM ユーザーを RAM ユーザーグループに追加する」をご参照ください。[Add Group Member] パネルで、[User Group] で [schedulerx_admin] を選択し、左側のユーザーリストから対象のユーザーを選択して、[OK] をクリックします。
-
管理者としてのリソース作成と RAM ユーザーへの権限付与
ほとんどの場合、リソースを作成する権限を持つのはソフトウェア プロジェクトの運用保守担当者のみです。開発担当者は、読み取り権限と管理権限のみを持ちます。運用保守担当者向けに管理者ロールを作成し、SchedulerX のすべてのリソースを管理する権限を付与できます。その後、管理者は名前空間とインスタンスグループを作成します。RAM ユーザーがこれらの名前空間とインスタンスグループにアクセスする必要がある場合、管理者はそれらへのアクセス権限を定義するポリシーを作成し、RAM ユーザーにアタッチします。
手順:
RAM コンソールにログインします。
カスタムポリシーを作成します。詳細については、「JSON エディターを使用したカスタムポリシーの作成」をご参照ください。以下は、カスタムポリシーのサンプルコードです。このポリシーを使用すると、RAM ユーザーまたはユーザーグループに SchedulerX の管理者権限を付与できます。その後、その RAM ユーザーまたはユーザーグループは SchedulerX のすべてのリソースを管理できます。
{ "Statement": [ { "Action": "edas:*Schedulerx*", "Effect": "Allow", "Resource": [ "acs:edas:*:*:*" ] } ], "Version": "1" }任意:RAM ユーザーまたはユーザーグループを作成します。詳細については、「RAM ユーザーの作成」または「RAM ユーザーグループの作成」をご参照ください。RAM ユーザーまたはユーザーグループが既に存在する場合は、この手順をスキップできます。
手順 2 で作成したカスタムポリシーを単一の RAM ユーザーにアタッチします。詳細については、「RAM ユーザーの権限管理」をご参照ください。
-
手順 2 で作成したカスタムポリシーをユーザーグループにアタッチし、RAM ユーザーをそのユーザーグループに追加します。
-
ポリシーをユーザーグループにアタッチします。詳細については、「RAM ユーザーグループへの権限付与」をご参照ください。
-
RAM ユーザーをユーザーグループに追加します。詳細については、「RAM ユーザーを RAM ユーザーグループに追加する」をご参照ください。
-
SchedulerX の権限
デフォルトでは、Alibaba Cloud アカウントは、アカウント内のすべてのリソースを管理する権限を持っています。RAM を使用して、さまざまなユーザーに特定の権限を付与することを推奨します。SchedulerX では、一度に複数の RAM ユーザーまたはユーザーグループにポリシーをアタッチできます。これにより、ユーザーに一つずつ権限を付与する必要がなくなります。次の表では、SchedulerX でサポートされている共有システムポリシーについて説明します。
システムポリシー | 説明 |
AliyunEDASFullAccess | Enterprise Distributed Application Service (EDAS) のリソースを管理するための権限です。 |
以下のサンプルコードは、アクション 要素と リソース 要素を含むカスタムポリシーの例です。SchedulerX によって定義されたルールに基づいて、カスタムポリシーを作成できます。
基本構造
{
"Statement": [
{
"Action": "edas:*", // 許可されるアクション。「アクション」セクションをご参照ください。
"Effect": "Allow",
"Resource": "*" // アクセス可能なリソース。「リソース」セクションをご参照ください。
}
],
"Version": "1",
}アクション
SchedulerX では、アクション 要素を次の構造で定義します:
edas:${type}Schedulerx*
${type} パラメーターは、Read、Manage、Delete、または Create に設定できます。次の表で、各タイプの操作について説明します。
有効値 | 操作 |
Create | 名前空間、アプリケーション、ジョブ、ワークフローの作成。 |
Manage |
|
Delete | 名前空間、インスタンスグループ、ジョブ、ワークフローの削除。 |
Read | インスタンスグループ、ジョブ、ジョブインスタンス、ワークフロー、およびオンラインインスタンスの表示。 |
リソース
SchedulerX では、リソース 要素を次の構造で定義します:
acs:edas:${regionid}:${accountid}:namespace/${namespace_id}/${resourceType}/${resourceId}
パラメータ | 説明 |
| アクセスするリソースがデプロイされているリージョン。デフォルト設定を使用する場合は、アスタリスク ( |
| アクセスするリソースが属する Alibaba Cloud アカウント。デフォルト設定を使用する場合は、アスタリスク ( |
|
アクセスするリソースが属する名前空間の ID。
|
| アクセスするリソースのタイプ。値 |
|
アクセスするリソースの ID。
|
カスタムポリシーの例
RAM ユーザーへのすべてのリソースに対する管理権限の付与
SchedulerX の管理権限を持つ RAM ユーザーは、SchedulerX のすべてのリソースに対してすべての操作を実行できます。ポリシーの例:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"edas:*Schedulerx*"
],
"Resource": [
"acs:edas:*:*:*"
]
}
]
}RAM ユーザーへのすべてのリソースに対する読み取り専用権限の付与
SchedulerX の読み取り専用権限を持つ RAM ユーザーは、SchedulerX のすべてのリソースを表示できます。ポリシーの例:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"edas:ReadSchedulerx*"
],
"Resource": [
"acs:edas:*:*:*"
]
}
]
}RAM ユーザーへの指定された名前空間に対する管理権限の付与
以下のサンプルコードは、指定された名前空間内のアプリケーションリソースとジョブリソースに対する管理権限を定義するカスタムポリシーの例です。指定された名前空間の ID は、EDAS コンソールの [Microservices Namespace] ページから取得する必要があります。この例では、指定された名前空間は ID-01 と ID-02 です。このカスタムポリシーを持つ RAM ユーザーは、指定された名前空間内のすべてのリソースを管理およびスケジューリングできます。アクション 要素の設定を変更して、上記のリソースへのアクセス権限を制限することもできます。たとえば、アクション 要素を edas:ReadSchedulerx* に設定した場合、このカスタムポリシーがアタッチされた RAM ユーザーは、指定された名前空間内のリソースの表示のみが可能です。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"edas:*Schedulerx*"
],
"Resource": [
"acs:edas:*:*:namespace/Namespace ID-01/*",
"acs:edas:*:*:namespace/Namespace ID-02/*"
]
}
]
}
SchedulerX コンソールの左側のナビゲーションペインで、[Namespaces] をクリックします。必要な名前空間 ID は [Namespace ID] 列から取得できます。
RAM ユーザーへの指定されたアプリケーションに対する管理権限の付与
以下のサンプルコードは、特定のアプリケーションに対する管理権限を定義するカスタムポリシーの例です。リソース 要素には、RAM ユーザーに管理権限を付与するアプリケーションの ID を指定します。リソース 要素にアスタリスク (*) を含めることで、一度に複数のアプリケーションの管理権限を RAM ユーザーに付与することもできます。たとえば、カスタムポリシーの リソース 要素に TestGroup* を含めると、そのカスタムポリシーは、指定された名前空間内で TestGroup というプレフィックスを持つすべてのアプリケーションに対する管理権限を定義します。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"edas:*Schedulerx*"
],
"Resource": [
"acs:edas:*:*:namespace/Namespace ID-01/JobGroup/TestGroup*",
"acs:edas:*:*:namespace/Namespace ID-02/JobGroup/AppGroup"
]
}
]
}
SchedulerX コンソールの左側のナビゲーションペインで、[Application Management] をクリックします。アプリケーション ID は [App ID/App Key] 列から取得できます。