きめ細かいアクセス制御のための IAM Conditions

このページでは、IAM Conditions を使用して接続へのアクセスを制限する方法について説明します。

IAM 条件を使用すると、Integration Connectors リソースをきめ細かく制御できます。デフォルトでは、Integration Connectors ユーザーまたはロールで、接続に対してサポートされているすべての操作を実行できます。IAM Conditions を使用すると、特定のユーザーまたはロールが接続に対して選択したオペレーションのみを実行するように制限できます。たとえば、ユーザーが test-connection で始まる名前の接続のみを変更できるように制限し、イベントへの登録やスキーマのメタデータの表示など、接続に対するその他の権限を持たないようにすることができます。

準備

Integration Connectors は、Google Cloud の Identity and Access Management(IAM)を使用して、Integration Connectors リソースのロールと権限を管理します。したがって、Integration Connectors リソースに対する IAM の条件を指定または変更する前に、次の IAM コンセプトをよく理解してください。

IAM 条件の追加

Integration Connectors リソースに IAM 条件を追加するには、次の情報が必要です。

  • 名前付きリソース URI - Integration Connectors 内のすべてのリソースに一意のリソース URI があります。たとえば、接続リソースの URI は projects/PROJECT_ID/locations/CONNECTION_LOCATION/connections/{connection_name} です。 使用可能なすべての URI の一覧については、Integration Connectors REST リソースをご覧ください。 リソースに対するアクセス権限をきめ細かいレベルで制御するには、命名規則に従ってリソースに名前を付ける必要があります。要件に基づいて、使用する命名規則を決定できます。たとえば、マーケティング チームが所有するすべての接続には、接頭辞 marketing- を付けることができます。この例では、マーケティング チームの接続のリソース URI は、projects/PROJECT_ID/locations/CONNECTION_LOCATION/connections/marketing- で始まります。
  • 親のみの権限 - リソースまたはその子リソースに親のみの権限が必要であるかどうかを確認します。詳細については、親のみの権限をご覧ください。
  • リソースタイプ: 条件でリソースタイプをフィルタリングすることで、リソースの範囲をさらに絞り込むことができます。Integration Connectors は、次のリソースの条件をサポートしています。
    リソース名 リソースの種類
    接続 connectors.googleapis.com/Connection
    ManagedZone connectors.googleapis.com/ManagedZone
    EndpointAttachment connectors.googleapis.com/EndpointAttachment
    EventSubscription connectors.googleapis.com/EventSubscription
    ConnectionSchemaMetadata connectors.googleapis.com/ConnectionSchemaMetadata

次の表は、Integration Connectors ユーザーまたはロールに適用できるサンプル リソース条件の一覧です。

IAM リソースの条件 説明
(resource.name.startsWith
("projects/PROJECT_ID/locations/CONNECTION_LOCATION/
connections/marketing-") && resource.type == "connectors.googleapis.com/Connection"))
|| resource.type != "connectors.googleapis.com/Connection"
この条件を適用するユーザーまたはロールは、次のオペレーションのみを実行できます。
  • すべての接続を一覧表示します。
  • 名前が marketing- で始まる接続に対して、取得、作成、更新、削除のオペレーションを実行します。
(resource.name.startsWith
("projects/PROJECT_ID/locations/CONNECTION_LOCATION/
connections/marketing-") && resource.type == "connectors.googleapis.com/Connection") ||
(resource.name.startsWith ("projects/PROJECT_ID/locations/CONNECTION_LOCATION/
connections/marketing-") && resource.type == "connectors.googleapis.com/ConnectionSchemaMetadata")
|| (resource.type != "connectors.googleapis.com/Connection" 
&& resource.type != "connectors.googleapis.com/ConnectionSchemaMetadata") 
この条件を適用するユーザーまたはロールは、次のオペレーションのみを実行できます。
  • すべての接続を一覧表示します。
  • 名前が marketing- で始まる接続に対してのみ、取得、作成、更新、削除のオペレーションを実行します。
  • 名前が marketing- で始まる接続のみに対して接続スキーマ メタデータを取得します。

Application Integration サービス アカウント用の IAM Conditions の追加

Application Integration サービス アカウントに IAM Conditions を適用できます。これにより、統合の実行中にサービス アカウントでアクセスできる接続を制限できます。たとえば、名前が marketing- で始まる接続のみにアクセスできるようにサービス アカウントを制限できます。 詳細については、IAM 条件をサービス アカウントに適用するをご覧ください。

次の表に、Application Integration サービス アカウントに適用できるサンプル リソース条件を示します。

IAM リソースの条件 説明
resource.name.startsWith
("projects/PROJECT_ID/locations/CONNECTION_LOCATION/
connections/marketing-")
この条件が適用されるサービス アカウントでは、名前が marketing- で始まる接続のみを実行できます。

次のステップ

IAM のドキュメントで次の情報を確認します。