このトピックでは、実行ロールの概要、および権限ポリシーと実行ロールの作成方法について説明します。
背景情報
Serverless Workflow を使用してアプリケーションを構築する場合、実行ロールを作成し、必要な権限を付与する必要があります。Serverless Workflow がフローを実行すると、このロールを引き受けて、お客様に代わって関数の呼び出し、メッセージの送信、他のフローの実行など、他のクラウドサービスにアクセスします。
Serverless Workflow コンソールを使用すると、実行ロールをすばやく作成し、デフォルトのシステム権限を付与できます。フローが Function Compute の特定の関数にのみアクセスできるようにするなど、よりきめ細かなアクセス制御を行うには、このトピックの手順に従ってください。
Serverless Workflow は、Resource Access Management (RAM) のロールベースの権限管理システムを使用します。権限付与の基本原則は次のとおりです。特定のサービスへのアクセス権限は ポリシー で定義されます。ポリシーを ロール にアタッチすると、そのロールはそれらの権限を取得します。他のサービスにアクセスするために、サービスは必要な権限を持つロールを引き受けます。このアプローチにより、長期的なアクセスキーの使用が回避され、システムのセキュリティが向上します。
権限ポリシーの作成
RAM 管理者として RAM コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[ポリシー] ページで、[ポリシーの作成] をクリックします。
[ポリシーの作成] ページで、[スクリプト] タブをクリックします。
ポリシードキュメントを入力し、[次へ: 基本情報の編集] をクリックします。
権限ポリシーの構文と構造の詳細については、「ポリシーの構造と構文」をご参照ください。次の表に、一般的な権限の例を示します。
説明
エフェクト
アクション
リソース
Test1 サービス内の Func1 関数の呼び出しを許可します。
Allow
fc:InvokeFunction
acs:fc:::services/Test1/functions/Func1
Test2 サービス内のすべての関数の呼び出しを許可します。
Allow
fc:InvokeFunction
acs:fc:::services/Test2/functions/*
名前が Public で始まるサービス内のすべての関数の呼び出しを許可します。
Allow
fc:InvokeFunction
acs:fc:::services/Public*/functions/*
Test1 キューへのメッセージ送信を許可します。
Allow
mns:SendMessage
acs:mns:*:*:/queues/Test1/messages
Test1 フローの実行開始を許可します。
Allow
fnf:StartExecution
acs:fnf:::flows/Test1/executions/*
[基本情報] セクションで、[ポリシー名] と [説明] を入力し、[OK] をクリックします。
実行ロールの作成
RAM 管理者として RAM コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[ロール] ページで、[ロールの作成] をクリックします。
[ロールの作成] パネルで、次のパラメーターを設定し、[完了] をクリックします。
[信頼できるエンティティタイプ] で、[Alibaba Cloud サービス] を選択します。
[ロールタイプ] で、[通常のサービスロール] を選択します。
[RAM ロール名] に、FnFExecutionRole と入力します。
[信頼できるサービス] で、[関数フロー] を選択します。
作成した権限ポリシーを FnFExecutionRole ロールにアタッチします。
詳細な手順については、「RAM ロールの権限の管理」をご参照ください。
作成したロールをクリックします。[基本情報] セクションで、ロールの ARN をコピーします。この ARN は、フローを作成または更新するために必要です。