このトピックでは、権限ポリシーと実行ロールの作成方法について説明します。
背景情報
CloudFlow を使用してアプリケーションを構築する場合、実行ロールを作成し、そのロールに権限を付与する必要があります。CloudFlow がフローを実行すると、このロールを借用し、ユーザーに代わって関数の実行、メッセージの送信、フローの実行など、クラウドサービスにアクセスします。
CloudFlow コンソールを使用して、実行ロールを作成し、システム権限をロールに付与できます。より細かい粒度でサービスへのアクセスを制御する場合、たとえば、Function Compute 内の 1 つまたは複数の関数へのみフローがアクセスできるようにするには、権限ポリシーを作成する必要があります。詳細については、以下の説明をご参照ください。
CloudFlow は、Resource Access Management (RAM) を使用してロールベースの権限管理を実装します。CloudFlow が RAM ユーザーに権限を付与する方法を以下に示します。ポリシー は、サービスにアクセスする機能を示します。ポリシーが ロール にバインドされると、このロールはサービスにアクセスできます。サードパーティがこのサービスにアクセスする場合、サービスにアクセスできるロールを借用するだけで済みます。これにより、長期キーの使用が回避され、システムのセキュリティが向上します。
ポリシーの作成
管理権限を持つ RAM ユーザーとして RAM コンソール にログオンします。
左側のナビゲーションウィンドウで、 を選択します。
[ポリシー] ページで、[ポリシーの作成] をクリックします。

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

ポリシードキュメントを入力し、[OK] をクリックします。
RAM ポリシーの構文と構造の詳細については、「ポリシーの構造と構文」をご参照ください。次の表に、いくつかの一般的な権限を示します。
説明
効果
アクション
リソース
RAM ロールが Test1 サービスの Function 関数にアクセスできるようにします。
許可
fc:InvokeFunction
acs:fc:::services/Test1/functions/Func1
RAM ロールが Test2 サービスのすべての関数にアクセスできるようにします。
許可
fc:InvokeFunction
acs:fc:::services/Test2/functions/*
RAM ロールが、名前が Public で始まるサービスのすべての関数にアクセスできるようにします。
許可
fc:InvokeFunction
acs:fc:::services/Public*/functions/*
RAM ロールが Test1 キューにメッセージを送信できるようにします。
許可
mns:SendMessage
acs:mns:*:*:/queues/Test1/messages
RAM ロールが Test1 フローを実行できるようにします。
許可
fnf:StartExecution
acs:fnf:::flows/Test1/executions/*
カスタムポリシーの内容を確認し、最適化します。
基本的な最適化
システムはポリシーのステートメントを自動的に最適化します。基本的な最適化では、システムは次の操作を実行します。
不要な条件を削除します。
不要な配列を削除します。
(オプション) 高度な最適化
[オプション: 高度な最適化] にポインターを移動し、[実行] をクリックします。高度な最適化では、システムは次の操作を実行します。
アクションと互換性のないリソースまたは条件を分割します。
リソースを絞り込みます。
ポリシーステートメントの重複を削除またはマージします。
[名前] パラメーターと [メモ] パラメーターを指定し、[OK] をクリックします。
実行ロールの作成
管理権限を持つ RAM ユーザーとして RAM コンソール にログオンします。
左側のナビゲーションウィンドウで、 を選択します。
[ロール] ページで、[ロールの作成] をクリックします。

[ロールの作成] ページで、[プリンシパルタイプ] を [クラウドサービス] に設定し、プリンシパル名パラメーターに Alibaba Cloud サービスを選択して、[OK] をクリックします。
説明[プリンシパル名] パラメーターに使用できる Alibaba Cloud サービスは、RAM コンソールによって異なります。
[ロールの作成] ダイアログボックスで、[ロール名] パラメーターを設定し、[OK] をクリックします。
作成したポリシーを FnFExecutionRole ロールにアタッチします。
詳細については、「RAM ロールへの権限の付与」をご参照ください。
作成した実行ロールをクリックします。[基本情報] セクションで、ロールの Alibaba Cloud リソースネーム (ARN) をコピーします。フローを作成または更新するときに、ARN を使用します。