My Home NW Lab

逸般の誤家庭のネットワーク

Meraki Dashboard APIとセキュリティ設計

概要

Meraki Dashboard APIの有効化方法を交えながら、セキュリティ設計の観点で情報を整理します。
本記事の内容は2022年03月頃の情報をベースにしているため、適宜最新の情報を確認してください。

まず前提情報として、Meraki Dashboard APIを使用するには2つのステップを踏む必要があります。

  1. Organizationに対するAPIの使用を有効化します。
  2. AccountでAPI Keyを生成します。

ここで重要な点は、API KeyはAccountに紐付く点です。
さらにAccountには複数のOrganizationが紐付く場合があるため、単一のAPI Keyで複数のOrganizationにアクセスが可能になります。 よって、Organization毎に専用のAPI Keyが発行されない点に注意してください。

そしてAccountでAPI Keyを生成していても、OrganizationによってはAPIの使用を無効化している場合もあるため、 API KeyでアクセスができるOrganizationと、アクセスできないOrganizationに分かれます。

Meraki Dashboard APIのOrganizationやAccountとの関連性

実際の設定画面

実際の設定画面でAPIの有効化方法を確認してみましょう。

Organizationに対するAPIの使用可否を設定

メニュー: Organization > Settings より Dashboard API access セクションにある API Access にて、Organizationに対するAPIの使用可否を決定できます。

API Access

AccountでAPI Keyを生成

メニュー: Account名 > My profile より API access セクションにある Generate new API keyAPI Keyを生成可能です。

Account > My profile

API keys

古いAPI Keyと新しいAPI Keyの交換期間を設けれるように、API Keyは最大2つまで生成できます。API Keyが2スロット分あるイメージです。

API Keyとセキュリティの観点

API KeyはAccountの権限の範囲でOrganizationの情報にアクセスが可能であるため、 第三者API Keyが漏洩すると不正アクセスされる可能性があります。
API Keyはプログラムからの使用を前提とされている都合で、多要素認証による不正使用のブロックもできないので慎重に取り扱う必要があります。

そしてここで重要になるのは、Accountに複数のOrganizationが紐付いていれば、横断的なOrganizationのアクセスが可能になってしまう点になります。

API Key漏洩時の影響範囲

AccountとAPIの権限の限定

MerakiのAccountは、OrganizationレベルとNetworkレベルで権限を分けれます。
そのため、APIを使用するAccountにはアクセス対象のNetworkの限定や、必要最小限の権限の割り当てをして、API Key漏洩時の影響範囲を限定を検討してください。
更に必要に応じて、Organizationを跨ぐAccountを避ける方法も検討してください。 ただし、Accountが不必要に増えていくと管理が煩雑になり、管理漏れが起きるリスクも付きまとう点に留意が必要です。

AccountとAPIの権限の限定

また、API Keyの生成はAccountの使用者に委ねられており、管理者が制御できない点に留意してください。
AccountにAPI Keyが紐付いている都合で、Organizationを跨いだアクセスが可能である仕様になっているため、 特定のOrganizationにすぎない管理者が、AccountのAPI Keyに対する制御が行えないのが背景にあると推察されます。

そして、本記事の執筆時点 (2022年03月頃)で、Organization側でAPIを使用するAccountを個別に制限する機能はありません。 そのため、上述の権限の最小化で制御せざるを得ないのが実情です。

API使用対象のAccountを個別に制限する機能はない

Organizationレベルの制限

メニュー: Organization > Administrators では、OrganizationとNetworkの管理者の両方の設定が可能です。

  • Organizationの管理者として扱う場合は、Organization access の設定で Full (設定変更可)もしくは Read-only (読み取り専用)を適宜指定します。

    Organization管理者として扱う場合

  • Networkの管理者として扱う場合は、Organization access の設定は None として、Target に対象Networkを指定した上で Access に権限を指定します。

    Network管理者として扱う場合

  • Organizationでは Read-only で読み取り専用として、一部のNetworkには Full で設定変更の権限を与えるような組み合わせの設定も可能です。

    権限の組み合わせ

Networkレベルの制限

メニュー: Network-wide > Administration より Network admins にて、Networkに割り当てられている管理者の設定が可能です。
Networkの管理者は前述のメニュー: Organization > Administrators でも設定可能のため適宜使い分けてください。

Network admins

Meraki Dashboard APIの送信元IPアドレスの制限

メニュー: Organization > Settings より Login IP ranges セクションにある Limit Dashboard API access to these IP ranges にて、 "API使用者のみ"に対する送信元IPアドレスの制限を行えます。

Limit Dashboard and Dashboard API access to these IP ranges の設定項目だと、DashboardAPIの両方に適用されてしまうので設定を間違えないように注意してください。

Login IP ranges

Dashboardも含めて送信元IPアドレスを絞る場合は、 経由先のInternet RouterやForward Proxyなどの障害時にも迂回経路のIPアドレスでアクセスが可能になっている点を適宜確認してください。

関連ドキュメント

documentation.meraki.com

コミュニティの関連トピック

community.meraki.com

関連記事

myhomenwlab.hatenablog.com

myhomenwlab.hatenablog.com