適用対象: Azure Logic Apps (従量課金 + Standard)
Azure Logic Apps において、制限されたリソースまたは未承認のリソースにそれらのマネージド コネクタを使用して接続することが組織で許可されていない場合は、ロジック アプリ ワークフローでそれらの接続を作成および使用する機能をブロックできます。 Azure Policy を使用すると、ブロックするコネクタの接続の作成または使用を妨げる ポリシー を定義して適用できます。 たとえば、セキュリティ上の理由から、特定のソーシャル メディア プラットフォームやその他のサービスまたはシステムへの接続をブロックすることが必要になる場合があります。
このガイドでは、Azure portal を使用して特定の接続をブロックするポリシーを設定する方法について説明します。 他の方法でポリシー定義を作成することもできます。 たとえば、Azure REST API、Azure PowerShell、Azure CLI、または Azure Resource Manager テンプレートを使用できます。 詳細については、「コンプライアンスを 適用するためのポリシーの作成と管理」を参照してください。
前提条件
Azure アカウントとサブスクリプション。 サブスクリプションがない場合は、無料の Azure アカウントを作成します。
ブロックするコネクタの参照 ID。 このガイドでは、この参照 ID を見つける方法について説明します。
コネクタの参照 ID を見つける
ブロックする接続を持つロジック アプリ ワークフローが既にある場合は、このセクションをスキップします。 それ以外の場合は、次の手順に従ってコネクタ参照 ID を見つけます。
コネクタのリファレンス ドキュメントを使用して ID を検索する
ブロックするコネクタの参照ページを見つけます。
たとえば、Gmail コネクタをブロックする場合は、次のページに移動します。
https://learn.microsoft.com/connectors/gmail/このページの URL から、末尾のコネクタ参照 ID をスラッシュ (
/) を付けずにコピーして保存します。たとえば、gmailのようになります。後でポリシー定義を作成するときに、定義の条件ステートメントでこの ID を使用します。たとえば、次のようになります。
"like": "*managedApis/gmail"
Azure portal を使用して ID を検索する
Azure portal で、ロジック アプリ リソースを開きます。
リソース サイドバーで、次のいずれかのオプションを選択します。
従量課金プランのロジック アプリ: [開発ツール] で [API 接続] を選択します。
Standard のロジック アプリ: [ワークフロー] で [接続] を選択します。 [接続] ペインで、[API 接続] を選択します (まだ選択されていない場合)。
[ API 接続 ] ページで、接続を選択します。 接続ページが開いたら、右上隅にある [JSON ビュー] を選択します。
次の形式の
apiプロパティと値を含むidオブジェクトを見つけます。"id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region}/managedApis/{connection-name}"次の例は、Gmail 接続の
idプロパティと値を示しています。"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/westus/managedApis/gmail"idプロパティ値から、コネクタ参照 ID をコピーして保存します。この ID は末尾に表示されます (例:gmail)。後でポリシー定義を作成するときに、定義の条件ステートメントでこの ID を使用します。たとえば、次のようになります。
"like": "*managedApis/gmail"
接続の作成をブロックする
ワークフローでの接続の作成をブロックするには、次の手順に従います。
Azure portal の検索ボックスに、「ポリシー」と入力し、[ポリシー] を選択します。
[ポリシー] メニューの [作成] で、[定義] を選択します。 [定義] ツール バー で 、[ ポリシー定義] を選択します。
[ ポリシー定義 ] ページで、次の画像の表のプロパティに基づいて、ポリシー定義の情報を指定します。
パラメーター 必須 値 説明 定義の場所 はい < Azure サブスクリプション名> ポリシー定義に使用する Azure サブスクリプション
1. サブスクリプションを見つけるには、省略記号 (...) を選択します。
2. [サブスクリプション] 一覧からサブスクリプションを見つけて選択します。
3. 終了したら、[選択] を選びます。名前 はい < policy-definition-name> ポリシー定義に使用する名前。 説明 いいえ < policy-definition-name> ポリシー定義の説明。 カテゴリ はい Logic Apps ポリシー定義の既存のカテゴリまたは新しいカテゴリの名前。 [ ポリシー ルール] の [JSON] 編集ボックスには、ポリシー定義テンプレートが事前設定されています。 次の表で説明されているプロパティに基づき、この構文を使用してテンプレートをポリシー定義に置き換えてください。
{ "mode": "All", "policyRule": { "if": { "field": "Microsoft.Web/connections/api.id", "like": "*managedApis/{connector-name}" }, "then": { "effect": "deny" } }, "parameters": {} }Keyword 値 説明 modeAllポリシーによって評価されるリソースの種類を決定するモード。
このシナリオでは、modeがAllに設定されます。これにより、ポリシーは Azure リソース グループ、サブスクリプション、およびすべてのリソースの種類に適用されます。
詳細については、Policy の定義の構造 - モードに関する記事を参照してください。if{condition-to-evaluate}どのような場合にポリシー ルールを適用するかを決定する条件
このシナリオでは、{condition-to-evaluate}により、api.idのMicrosoft.Web/connections/api.id値が、ワイルドカード (*) 値が指定されている*managedApis/{connector-name}で一致しているかどうかが判断されます。
詳細については、Policy の定義の構造 - ポリシー ルールに関する記事を参照してください。fieldMicrosoft.Web/connections/api.id条件と比較する field値
このシナリオで、fieldは "別名"Microsoft.Web/connections/api.idを使用して、コネクタ プロパティapi.idの値にアクセスします。like*managedApis/{connector-name}field値を比較するために使用する論理演算子と値
このシナリオでは、like演算子とワイルドカード (*) 文字の両方により、このルールがリージョンに関係なく機能するようにします。文字列*managedApis/{connector-name}は、照合する値であり、{connector-name}は、ブロックするコネクタの ID です。
たとえば、ソーシャル メディア プラットフォームまたはデータベースへの接続の作成をブロックするとします。
- X:x
- Facebook:facebook
- Pinterest:pinterest
- SQL Server または Azure SQL:sql
これらのコネクタ ID を検索するには、この記事の「 コネクタ参照 ID を検索 する」を参照してください。then{effect-to-apply}if条件が満たされたときに適用する効果
このシナリオで、{effect-to-apply}は、ポリシーに準拠していない要求または操作をブロックして失敗させます。
詳細については、Policy の定義の構造 - ポリシー ルールに関する記事を参照してください。effectdenyeffectは、指定された接続を作成する要求をブロックします
詳細については、「Azure Policy の効果について」の「deny」を参照してください。たとえば、Gmail コネクタとの接続の作成をブロックするとします。 使用できるポリシー定義を次に示します。
{ "mode": "All", "policyRule": { "if": { "field": "Microsoft.Web/connections/api.id", "like": "*managedApis/gmail" }, "then": { "effect": "deny" } }, "parameters": {} }[ポリシールール] ボックスが表示される方法を次に示します。
複数のコネクタの場合、次に例を示す複数の条件を追加できます。
{ "mode": "All", "policyRule": { "if": { "anyOf": [ { "field": "Microsoft.Web/connections/api.id", "like": "*managedApis/x" }, { "field": "Microsoft.Web/connections/api.id", "like": "*managedApis/facebook" }, { "field": "Microsoft.Web/connections/api.id", "like": "*managedApis/pinterest" } ] }, "then": { "effect": "deny" } }, "parameters": {} }終了したら、[保存] を選択します。
ポリシー定義を保存すると、Azure Policy によって、さらにプロパティ値が生成されて、ポリシー定義に追加されます。
ポリシーを適用するポリシー定義を割り当てるには、この記事で後述するようにポリシーの割り当てを作成します。
Azure Policy の定義の詳細については、次を参照してください。
ロジック アプリとの接続の関連付けをブロックする
ワークフローで接続を作成すると、この接続は別の Azure リソースとして存在します。 ワークフローまたはロジック アプリ リソースのみを削除した場合、接続リソースは自動的に削除されず、削除されるまで存在し続けます。 接続リソースが既に存在するシナリオや、ロジック アプリ リソースの外部で使用するために接続リソースを作成する必要がある場合があります。
制限付き接続または未承認の接続を使用しようとするワークフローを保存できないポリシーを作成することで、接続を別のロジック アプリ リソースに関連付ける機能をブロックできます。 このポリシーは、接続をまだ使用していないワークフローにのみ影響します。
Azure portal の検索ボックスに、「ポリシー」と入力し、[ポリシー] を選択します。
[ポリシー] メニューの [作成] で、[定義] を選択します。 [定義] ページのツール バー で 、[ ポリシー定義] を選択します。
[ ポリシー定義] で、イメージに続く表のプロパティに基づいて、ポリシー定義の情報を指定します。
パラメーター 必須 値 説明 定義の場所 はい < Azure サブスクリプション名> ポリシー定義に使用する Azure サブスクリプション
1.サブスクリプションを見つけるには、省略記号 ( ... ) ボタンを選択します。
2. [サブスクリプション] 一覧からサブスクリプションを見つけて選択します。
3. 終了したら、[選択] を選びます。名前 はい < policy-definition-name> ポリシー定義に使用する名前 説明 いいえ < policy-definition-name> ポリシー定義の説明 カテゴリ はい Logic Apps ポリシー定義の既存のカテゴリまたは新しいカテゴリの名前 [ ポリシー規則] の [JSON] 編集ボックスには、ポリシー定義テンプレートが事前設定されています。 次の表で説明されているプロパティに基づき、この構文を使用してテンプレートをポリシー定義に置き換えてください。
{ "mode": "All", "policyRule": { "if": { "value": "[string(field('Microsoft.Logic/workflows/parameters'))]", "contains": "{connector-name}" }, "then": { "effect": "deny" } }, "parameters": {} }Keyword 値 説明 modeAllポリシーによって評価されるリソースの種類を決定するモード。
このシナリオでは、modeがAllに設定されます。これにより、ポリシーは Azure リソース グループ、サブスクリプション、およびすべてのリソースの種類に適用されます。
詳細については、Policy の定義の構造 - モードに関する記事を参照してください。if{condition-to-evaluate}どのような場合にポリシー ルールを適用するかを決定する条件
このシナリオでは、{condition-to-evaluate}は、[string(field('Microsoft.Logic/workflows/parameters'))]からの文字列出力に文字列{connector-name}が含まれているかどうかを判断します。
詳細については、Policy の定義の構造 - ポリシー ルールに関する記事を参照してください。value[string(field('Microsoft.Logic/workflows/parameters'))]条件と比較する値
このシナリオで、valueは[string(field('Microsoft.Logic/workflows/parameters'))]からの文字列出力であり、$connectorsオブジェクト内のMicrosoft.Logic/workflows/parametersオブジェクトを文字列に変換します。contains{connector-name}valueプロパティとの比較に使用する論理演算子と値
このシナリオで、contains演算子は、{connector-name}の出現箇所に関係なくルールが機能するようにします。ここで、文字列{connector-name}は、制限またはブロックするコネクタの ID です。
たとえば、ソーシャル メディア プラットフォームまたはデータベースへの接続の使用をブロックするとします。
- X:x
- Facebook:facebook
- Pinterest:pinterest
- SQL Server または Azure SQL:sql
これらのコネクタ ID を検索するには、この記事の「 コネクタ参照 ID を検索 する」を参照してください。then{effect-to-apply}if条件が満たされたときに適用する効果
このシナリオで、{effect-to-apply}は、ポリシーに準拠していない要求または操作をブロックして失敗させます。
詳細については、Policy の定義の構造 - ポリシー ルールに関する記事を参照してください。effectdenyeffectは、指定された接続を使用するロジック アプリを保存する要求をdenyまたはブロックします
詳細については、「Azure Policy の効果について」の「deny」を参照してください。たとえば、Gmail 接続を使用するロジック アプリの保存をブロックするとします。 使用できるポリシー定義を次に示します。
{ "mode": "All", "policyRule": { "if": { "value": "[string(field('Microsoft.Logic/workflows/parameters'))]", "contains": "gmail" }, "then": { "effect": "deny" } }, "parameters": {} }ポリシー定義ルールの表示方法を次に示します。
終了したら、[保存] を選択します。
ポリシー定義を保存すると、Azure Policy によって、さらにプロパティ値が生成されて、ポリシー定義に追加されます。
ポリシーを適用するポリシー定義を割り当てるには、このガイドで後述するようにポリシーの割り当てを作成します。
Azure Policy の定義の詳細については、次を参照してください。
ポリシー割り当てを作成する
ポリシーを適用するポリシー定義を割り当てる必要があります。 たとえば、ポリシー定義を 1 つのリソース グループ、複数のリソース グループ、Microsoft Entra テナント、または Azure サブスクリプションに割り当てることができます。 このタスクでは、次の手順に従ってポリシー割り当てを作成します。
Azure portal の検索ボックスに、「ポリシー」と入力し、[ポリシー] を選択します。
[ポリシー] メニューの [作成] で、[割り当て] を選択します。 [ 割り当て ] ツール バーで、[ ポリシーの割り当て] を選択します。
[ ポリシーの割り当て ] ページの [ 基本] で、ポリシー割り当ての次の情報を指定します。
パラメーター 必須 説明 スコープ はい ポリシー割り当てを適用するリソース。
1. [スコープ] ボックスの横にある省略記号 ( ... ) ボタンを選択します。
2. [サブスクリプション] の一覧から、Azure サブスクリプションを選択します。
3. 必要に応じて、[リソース グループ] の一覧から、リソース グループを選択します。
4. 終了したら、[選択] を選びます。除外 いいえ ポリシー割り当てから除外する Azure リソースを選択します。
1. [除外] ボックスの横にある省略記号 ( ... ) ボタンを選択します。
2. [リソース] リストで、リソース >[Add to Selected Scope]\(選択したスコープに追加\) を選択します。
3. 終了したら、[保存] を選びます。リソース セレクター いいえ ポリシー定義 はい 割り当てて適用するポリシー定義の名前。 この例では、Gmail ポリシーの例である [Gmail 接続のブロック] に進みます。
1. [ポリシー定義] ボックスの横にある省略記号 ( ... ) ボタンを選択します。
2. [種類] フィルターまたは [検索] ボックスを使用して、ポリシー定義を検索して選択します。
3. 終了したら、[選択] を選びます。オーバーライド いいえ 割り当て名 はい ポリシー定義と異なる場合に、ポリシー割り当てに使用する名前。 説明 いいえ ポリシー割り当ての説明。 ポリシーの適用 はい ポリシーの割り当てを有効または無効にする設定。 たとえば、Gmail の例を使用して Azure リソース グループにポリシーを割り当てるには、次のようにします。
完了したら、[確認および作成] を選択します。
ポリシーを作成した後、ポリシーが有効になるまでに最大 15 分間待つ必要がある場合があります。 変更でも同様の遅延効果がある場合があります。
ポリシーが有効されたら、次のセクションでポリシーをテストします。
詳細については、「クイックスタート: 準拠していないリソースを識別するためのポリシー割り当てを作成する」を参照してください。
ポリシーをテストする
ポリシーを試すには、ワークフロー デザイナーで、現在制限されているコネクタを使用して接続の作成を開始します。 Gmail の例に進むと、Gmail にサインインすると、ワークフローで接続を作成できなかったというエラーが表示されます。
エラー メッセージには、次の情報が含まれます。
| 説明 | コンテンツ |
|---|---|
| エラーの原因 | "Resource 'gmail' was disallowed by policy." |
| 割り当て名 | "Block Gmail connections" |
| 割り当て ID | "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MyLogicApp-RG/providers/Microsoft.Authorization/policyAssignments/4231890fc3bd4352acb0b673" |
| ポリシー定義 ID | "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/policyDefinitions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e" |
関連コンテンツ
- Azure Policy の詳細を確認する