CloudOps Orchestration Service(OOS)でテンプレートを使用して O&M タスクを実行できます。テンプレートを作成し、そのテンプレートを使用して実行を作成すると、OOS は実行が最終状態になるまで、実行で指定されたタスクを実行します。このプロセスで、OOS は Alibaba Cloud サービスの API 操作の呼び出しなど、タスクを実行するために必要な操作を実行します。Alibaba Cloud サービスの API 操作を呼び出すには、OOS に対応する権限が必要です。このトピックでは、OOS に必要な権限を管理する方法について説明します。
このトピックでは、承認者、権限ソース、承認時間、権限ソースの選択方法、さまざまなソースからの権限の付与方法、RamRole パラメーター、RamRole の構文、OOS のポリシー、Resource Access Management(RAM)ロールの作成方法、RAM ロールと実行作成者への権限の付与方法という側面から、OOS に必要な権限について説明します。
用語
RAM ロール: ポリシーを RAM ロールにアタッチすることで、RAM ロールに権限を付与できます。信頼できるエンティティに RAM ロールを割り当てると、RAM ロールの権限がエンティティに付与されます。詳細については、「RAM ロールの概要」をご参照ください。
RAM ロールの引き受け: Alibaba Cloud サービスや Alibaba Cloud アカウントなどの信頼できるエンティティは、RAM ロールを引き受けることができます。その後、エンティティの元の権限は RAM ロールの権限に置き換えられます。
OOS テンプレートを作成および更新する権限: RAM ユーザーにこのような権限を付与できます。
テンプレート作成者: OOS テンプレートの作成と更新に使用される RAM ユーザー。
テンプレートの実行を作成する権限: RAM ユーザーにこのような権限を付与できます。
実行作成者: 実行の作成に使用される RAM ユーザー。
実行作成者の一時的な権限: セキュリティトークンサービス(STS)を使用して実行作成者に付与される権限。一時的な権限は、指定された有効期間が経過すると期限切れになります。詳細については、「STS とは」をご参照ください。
実行: テンプレートを実行する操作。
タスク実行: テンプレートの実行で指定されたタスクを実行する操作。
タスク実行のトリガー: テンプレートの実行で OOS がタスクを実行するきっかけとなる条件。タスクは、実行の作成後すぐにトリガーすることも、実行でイベントや時点などの特定の条件が満たされたときにトリガーすることもできます。
OOS 権限: 実行でタスクを実行するために OOS に付与される必要な権限。
オンサイト実行: [対応するテンプレートの作成者] によって実行が作成されたときにすべてのタスクがトリガーされる実行。実行が成功などの最終状態になるまで、テンプレート作成者は常に使用可能です。オンサイト実行の反対の概念はオフサイト実行です。
オフサイト実行: テンプレートで設定されたトリガー操作、またはテンプレートの作成者ではないユーザーによってタスクがトリガーされる実行。トリガー操作を含むテンプレートの場合、イベントや時点などの特定の条件が満たされたときにタスクがトリガーされる実行を作成できます。この場合、タスクをトリガーするユーザーはテンプレート作成者ではない可能性があります。テンプレート作成者は、実行中に使用できない可能性があります。委任承認モードのテンプレートは、テンプレートを実行する権限を持つユーザーであれば誰でも実行できます。この場合、実行のタスクは、実行の作成時にトリガーされます。テンプレート作成者ではないユーザーがテンプレートを実行する場合、テンプレート作成者は実行中に使用できない可能性があります。
このトピックを理解しやすくするために、このトピックの「用語」セクションに関連用語が記載されています。
承認者
テンプレートの実行でタスクを実行するために OOS に付与された権限に対する悪意のある操作を防ぐために、実行またはテンプレートの作成者のみが OOS に必要な権限を付与できます。
権限ソース
OOS に、実行作成者または特定の RAM ロールの権限を付与できます。実行作成者は、STS を使用して付与された一時的な権限を持っています。一時的な権限は、指定された有効期間が経過すると期限切れになります。RAM ロールの権限が変更または期限切れになることはほとんどありません。OOS に RAM ロールの権限を付与すると、OOS は RAM ロールを引き受けてタスクを実行します。
承認時間
テンプレートを使用して実行を作成すると、OOS はすぐに実行で指定されたタスクを実行します。したがって、OOS は実行が作成される前に必要な権限を取得する必要があると推測できます。実際には、テンプレートまたは実行を作成するときに、OOS に付与する権限を指定する必要があります。OOS は委任承認モードをサポートしており、他のユーザーに OOS への権限付与を承認できます。このモードでは、テンプレートを作成するときに付与する権限を指定する必要があります。自分で OOS に権限を付与する場合は、実行を作成するときに付与する権限を指定する必要があります。詳細については、「アクセス制御」をご参照ください。
OOS に権限を付与する
権限ソースを選択する
特定の O&M タスクを実行するには、RAM ロールから OOS に永続的な権限を付与する必要があります。このような O&M タスクを実行するためにテンプレートを実行するには、テンプレートで RamRole パラメーターが設定されていることを確認してください。テンプレート作成者が使用可能な場合にのみテンプレートが実行される場合、OOS は RAM ロールまたは実行作成者の権限を使用できます。ただし、テンプレート作成者が使用できない場合にテンプレートが実行される場合、OOS は RAM ロールの権限を使用する必要があります。テンプレート作成者の可用性に基づいて、テンプレートの実行はオンサイト実行とオフサイト実行に分けられます。2 種類の実行の詳細については、このトピックの「用語」セクションをご参照ください。オフサイト実行は、トリガー操作を含むテンプレートと 委任承認モードで動作するテンプレートの 2 種類のテンプレートに対して作成できます。トリガー操作を含むテンプレートの場合、実行がトリガーされるまでの待機時間は長く、予測できません。その結果、実行作成者の権限を OOS に時間内に付与できない場合があります。また、実行中に実行作成者の一時的な権限が有効なままであることを保証することは困難です。これにより、トリガーされたタスクが中断される可能性があります。トリガー操作を含むテンプレートの安定した実行を保証するために、テンプレートで RAM ロールを指定します。これにより、OOS はテンプレートの実行がトリガーされたときに RAM ロールの権限を使用してタスクを実行できます。委任承認モードは、テンプレートが異なるユーザーによって作成および実行される可能性のあるシナリオに適用できます。このモードでは、実行作成者は OOS に付与する権限を指定する必要がなくなります。委任承認モードでテンプレートを作成するには、テンプレートで RAM ロールを指定して、実行のための固定された安定した権限ソースを提供します。
さまざまなソースから権限を付与する
権限を付与するための操作は、権限ソースによって異なります。実行作成者の権限を付与するには、実行を作成するときに [パラメーター設定] ステップの OOSAssumeRole で [現在のアカウントの既存の権限を使用する] を選択します。実行が作成されると、指定された権限が OOS に付与されます。テンプレートを実行するために RAM ロールの権限を OOS に付与するには、テンプレートの RamRole パラメーターで指定された RAM ロールを選択します。RamRole パラメーターの詳細については、以下のセクションをご参照ください。
RamRole パラメーター
すべてのタイプのテンプレートに対して、RAM ロールの権限を OOS に付与できます。テンプレートで RamRole
パラメーターを設定して、実行で OOS に割り当てる RAM ロールを指定できます。このパラメーターは、テンプレートの Parameters および Tasks と同じレベルで提供されます。RamRole パラメーターが設定されているテンプレートを実行するために、OOS は指定された RAM ロールを引き受け、RAM ロールの権限を使用して Alibaba Cloud サービスの API 操作を呼び出します。
OOS は、RAM ロールが指定されているテンプレートを実行する場合にのみ、RAM ロールを引き受けます。
RamRole パラメーターの構文
テンプレートで RamRole パラメーターが指定されていない場合、実行作成者の権限が実行の OOS に付与されます。テンプレートの RamRole パラメーターが変数に設定されている場合、特定の RAM ロールの権限を実行の OOS に付与できます。また、実行作成者の権限を OOS に付与することもできます。テンプレートの RamRole パラメーターが特定の RAM ロールに設定されている場合、RAM ロールの権限が実行の OOS に付与されます。テンプレートの RamRole パラメーターを特定の RAM ロールに設定して、RAM ロールの権限を OOS に付与できます。この場合、テンプレートは [委任承認モード] で動作します。RamRole パラメーターが指定されていないか、変数に設定されている場合、テンプレートの実行を作成するときに OOS に権限を付与できます。
RamRole パラメーターが変数に設定され、テンプレートでトリガー操作が使用されている場合、実行を作成するときに実行作成者の権限を OOS に付与することはできません。
RamRole パラメーターを固定値に設定する
YAML 形式
FormatVersion: OOS-2019-06-01 # 必須。 Description: "RamRole の使用法" # オプション。 RamRole: "OOSServiceRole01" # オプション。RAM ロール。値が RAM ロールの名前の場合、RAM ロールの権限が OOS に付与されます。
JSON 形式(詳細については、YAML 形式のパラメーターの説明をご参照ください。)
{ "FormatVersion": "OOS-2019-06-01", "Description": "RamRole の使用法", "RamRole": "OOSServiceRole01" }
RamRole パラメーターを変数に設定する
YAML 形式
FormatVersion: OOS-2019-06-01 # 必須。 Description: "RamRole の使用法" # オプション。 RamRole: "{{ramRoleNameParameter}}" # オプション。RAM ロール。値が変数の場合、特定の RAM ロールを選択して、その権限を実行の OOS に付与できます。この例では、テンプレートの実行を作成するときに、ramRoleNameParameter パラメーターを使用する RAM ロールに設定できます。
JSON 形式(詳細については、YAML 形式のパラメーターの説明をご参照ください。)
{ "FormatVersion": "OOS-2019-06-01", "Description": "RamRole の使用法", "RamRole": "{{ramRoleNameParameter}}" }
OOS のポリシーを管理する
このセクションでは、OOS に付与する権限を管理する方法について説明します。実行作成者の権限を OOS に付与する場合、OOS にアタッチされるポリシーは実行作成者にアタッチされるポリシーと同じです。OOS に付与する権限を管理するには、実行作成者のポリシーを管理します。RAM ロールの権限を OOS に付与する場合、OOS にアタッチされるポリシーは RAM ロールにアタッチされるポリシーと同じです。OOS に付与する権限を管理するには、RAM ロールのポリシーを管理します。
OOS にポリシーをアタッチする
さまざまなテンプレートを実行するために、OOS は Alibaba Cloud サービスの API 操作を呼び出すためにさまざまな権限セットを必要とします。OOS の GenerateExecutionPolicy 操作を呼び出して、テンプレートを実行するために必要な権限セットをクエリできます。次に、必要な権限の最小セットを含む ポリシー を作成し、そのポリシーを RAM ロールまたは実行作成者にアタッチできます。また、Alibaba Cloud サービスのフルアクセス権限を指定された RAM ロールまたは実行作成者に付与することもできます。
手順 1: RAM ロールを作成する
RAM コンソール にログオンします。
左側のナビゲーションウィンドウで、[ID] > [ロール] を選択します。[ロール] ページで、[ロールの作成] をクリックします。
[ロールの作成] ページで、[信頼できるエンティティの選択] パラメーターで [Alibaba Cloud サービス] を選択し、[次へ] をクリックします。
[ロールの設定] ステップで、[RAM ロールの名前] パラメーターを OOS テンプレートで指定した RAM ロールの名前に設定します。
[信頼できるサービスの選択] ドロップダウンリストから CloudOps Orchestration Service を選択します。
[OK] をクリックします。
手順 2: RAM ロールに権限を付与する
RAM コンソール にログオンします。
左側のナビゲーションウィンドウで、[権限] > [権限の付与] を選択します。[権限] ページで、[権限の付与] をクリックします。
[権限の付与] パネルで、[プリンシパル] パラメーターを手順 1 で作成した RAM ロールの名前に設定します。この例では、OOSServiceRole が使用されています。次に、ビジネス要件に基づいてポリシーを RAM ロールにアタッチします。たとえば、OOS テンプレートを使用して Elastic Compute Service(ECS)インスタンスを作成、破棄、開始、または停止する場合は、AliyunECSFullAccess ポリシーを RAM ロールにアタッチします。
[権限の付与] をクリックします。
権限が RAM ロールに付与されます。
手順 3: 実行作成者に権限を付与する
RAM コンソール にログオンします。
左側のナビゲーションウィンドウで、[権限] > [権限の付与] を選択します。[権限] ページで、[権限の付与] をクリックします。
[権限の付与] パネルで、[プリンシパル] パラメーターを実行の作成に使用する RAM ユーザーに設定します。この例では、testoos@example.com が使用されています。次に、ビジネス要件に基づいてポリシーを RAM ユーザーにアタッチします。たとえば、OOS テンプレートを使用して ECS インスタンスを作成、破棄、開始、または停止する場合は、AliyunECSFullAccess ポリシーを RAM ユーザーにアタッチします。
[権限の付与] をクリックします。
権限が RAM ユーザーに付与されます。