メインコンテンツへスキップ
AMPL/ dev
開発系講座一覧

セキュリティ 医療情報をどう守るか

MCPで連携が広がるほど、医療情報漏洩のリスクも広がる。何が絶対NGで、何ならOKか。具体的な判断基準と実装方法を整理する。

この講座は「AMPL dev 教科書」に移しています。はじめて学ぶ方は、教科書から読んでください。

このレッスンで

終わる頃には、次ができるようになります

  • 氏名や患者IDなど個人を特定できる医療情報をAIに入力してよいか判断できる
  • APIキーを.envファイルとgitignoreで管理しGitHubへの漏洩を防げる
  • 患者情報・APIキー・院内情報の順に問う送信前チェックフローを使える

第7回 セキュリティ 医療情報をどう守るか

なぜ今、これを扱うのか

Lesson 03〜06で、PubMed・Notion・Slack・Googleカレンダーと多くのツールを繋いできました。 繋ぐたびに便利になりますが、同時にClaudeが「外部に接触できる先」も増えています。連携の数だけ、情報の出口が増えます。

このレッスンは「できること」ではなく「やってはいけないこと」を中心に扱います。


まず:医療情報とは何か

「医療情報」は広い言葉です。具体的に何が問題なのかを最初に整理します。

PHI(Protected Health Information)

米国のHIPAA法で定義される「保護すべき健康情報」です。 日本の個人情報保護法でも、健康情報は要配慮個人情報として特に保護されます。

PHIに含まれる18項目(例):

  • 氏名
  • 生年月日
  • 住所(都道府県より細かい情報)
  • 電話番号・メールアドレス
  • 患者ID・医療記録番号
  • 顔写真・指紋などの生体情報
  • 診断名・検査結果(個人と結びついた場合)
  • 処方内容(個人と結びついた場合)

これらは、単独でも、組み合わせでも個人を特定できます。


絶対NGの行動

以下の行動は、ツールや設定に関わらず行いません。

絶対NGの行動

1

患者情報をAIサービスに入力する

氏名・年齢・診断名などの個人識別情報を入れることは、同意なく第三者に送ることになる

2

電子カルテをコピー&ペーストする

氏名を消すだけでは不十分。年齢・日付・診断名の組み合わせで個人が推定できることがある

3

MCPで患者情報のファイルを送信する

Dispatchや他のMCPでも、患者情報を含むファイルのパスや内容を送らない

4

APIキーを平文で書く

GitHub(パブリック/プライベート問わず)やNotion・Slackに直接貼り付けない


やっていいこと

やっていいこと

1

疾患名・症状の一般論

特定患者と結びついていなければOK(例:小児の発熱のマネジメント)

2

薬剤名・用量の一般情報

公開情報の整理はOK(例:アセトアミノフェンの小児投与量)

3

公開文献の要約

PubMedの論文・ガイドライン・添付文書などもとから公開されているもの

4

自分の業務タスクの内容

個人情報が含まれなければOK(例:学会発表の準備、カンファの議事録整形)


匿名化の方法

どうしても実際の症例を使いたい場合は、事前に匿名化します。

元の情報匿名化後
田中花子、42歳40代女性
患者ID:12345削除
2026年5月15日 入院5月 入院(年月だけ)
三田病院当院(名称削除)

匿名化できたかは、この1点で確認します。

「この文章だけ見て、誰のことか特定できるか?」

特定できるなら、まだ匿名化が不十分です。


APIキーの安全な管理

APIキーは、サービスへのパスワードです。流出すると、料金が不正請求されたり、データが盗まれたりします。

正しい保存場所:.envファイル

プロジェクトフォルダの直下に.envファイルを作り、ここに書きます。

NCBI_API_KEY=your_ncbi_key_here
NOTION_API_KEY=secret_xxxxxx
SLACK_BOT_TOKEN=xoxb-xxxxxx

このファイルは.gitignoreに必ず追加します。

# .gitignore
.env
.env.local

.gitignoreに入れると、GitHubに上げても.envの内容は送られません。

プログラムからの読み込み

Pythonで読み込む場合、python-dotenvライブラリを使います。

import os
from dotenv import load_dotenv

load_dotenv()

api_key = os.getenv("NCBI_API_KEY")
pip install python-dotenv

間違えてGitHubにAPIキーを上げた場合

すぐに以下の2ステップを踏みます。

  1. 該当サービスのダッシュボードで、そのAPIキーを失効させる(Revoke)
  2. 新しいAPIキーを発行し直す

キーを削除したコミットをGitHubに上げても、過去のコミット履歴には残ります。 必ずキー側を失効させることが最初のステップです。


MCPの接続時のセキュリティ確認

新しいMCPを繋ぐとき、以下を確認します。

出所を確認する:コミュニティ製のMCPは、GitHubリポジトリでコードが読める状態か、不審な外部通信をしていないか、スター数・コントリビュータ数で一定の信頼性があるかを見ます。公式が出しているMCP(Notion・Slack公式など)は基本的に安全です。

権限は最小限にする:NotionのAPIトークンは必要なページだけに共有を絞り、Slackのbotは必要なチャンネルだけにアクセス権を付与します。「全部繋いでおいた方が楽」という判断はリスクを広げます。

定期的にキーを棚卸しする:使っていないAPIキーは削除します。3ヶ月に1回、.envファイルを見直して不要なキーを失効させます。


院内システムとの連携について

電子カルテや病院のHISシステムとAIを繋ぐことを検討する場合は、以下のステップが必要です。

01

情報管理部門・セキュリティ担当への相談

最初の窓口

02

個人情報保護方針との整合確認

院内規定に沿っているかを確認する

03

患者同意の取得

研究利用の場合

04

外部委託契約の確認

AIサービス企業への情報提供に相当する場合

院内システムと連携するまでの手順

これは個人の判断で進められる領域ではありません。 現時点でのAI連携は、公開情報・一般情報の範囲で行うことを強く推奨します。


セキュリティ判断の即決フロー

迷ったとき、この順で考えます。

AIに送ろうとしている情報は何か?
  ↓
特定の患者と結びつく情報が含まれるか?
  YES → 匿名化してから使う、または使わない
  NO  ↓
APIキーや認証情報が含まれるか?
  YES → .envに分離してから
  NO  ↓
公開されていない院内情報が含まれるか?
  YES → 担当部門に確認
  NO  → 使ってOK

患者情報、院内情報、APIキー、Git管理外。 この4つを毎回同じ順番で見ると、連携の前に止まるべき場所が見つかります。


演習:自分の現在の設定を棚卸しする

このチェックリストを確認してください。

□ .envファイルがプロジェクトフォルダにある
□ .gitignoreに.envが追加されている
□ GitHubのリポジトリに.envがアップロードされていない
□ 使っていないAPIキーを把握している
□ 各MCPの権限が必要最小限に設定されている

全部チェックできれば、基本的なセキュリティ設定は整っています。 1つでも「わからない」があれば、そこから確認を始めてください。

このレッスンは役に立ちましたか?