GDPR対象がわからないのなら、国別IPアドレス制限が正解?

GDPRWordPress
この記事は約14分で読めます。

わからないものを無視し、最悪の可能性(見せしめ)を放置してはいないだろうか。

といいつつ、GDPRの対象範囲はおそらく企業のことで、ほとんどの個人サイトは関係がない。

このおそらくが抜けきれないのは英語が読めないという理由だけでなく、

  • 公式サイトが日本語訳を用意していない
  • 日本語訳を調べても権威のある人なのかわからない
  • そもそも日本語訳は二番煎じで確信ができない

以上のようなこともあり、憶測で進展しないからだ。

なので、IP制限をするに至った経緯とWordPressで国別にIP制限をかける「IP Geo BlockでIP制限」・「Cloudflare(クラウドフレア)でIP制限」の2つを、コピペや画像のとおりに設定するだけのわかりやすい表現でお送りする。

「.htaccessでIP制限」を予定していたが、IPリストが膨大になってしまったので無視する。
IP Geo BlockでIP制限をする場合は、キャッシュプラグインを諦める必要があるかもしれない。この点は「キャッシュプラグイン注意事項」で説明する。
残念なことに、CloudflareでIP制限をすると弾いたIPを取得している盲点が発覚した。Cloudflareが報われないかもしれないが、それはそれで「同意させるプラグイン導入」の後押しになるかもしれない。
【さらなる悲報】2018年8月頃までできた、Cloudflareの国別IP制限はバグだった模様。今後ブロックからチャレンジに変更される可能性があり、もともとエンタープライズプランの特典だったようだ。
公式コミュニティ国別IP制限ができなくなった(英語)

 もはやIP Geo BlockでIP制限をする記事になったため、Cloudflareの方は諦めよう。

しかも、当サイトは現在Cookie同意に切り替えている(知らせるだけなのでほぼ無意味)。

一応、GDPRに関して「EU圏ではなくEEA圏なのではないか」だとか、他国からアクセスしたことにして確認する方法も述べているので、興味があればそこだけ確認するといい。

スポンサーリンク

GDPRとは

自動で取得していたEU圏のデータなどを、今まで以上にしっかり管理する素晴らしい法律。

インターネットの知識がなくても、ある程度の個人情報が厳重管理されることはとても良いことなので、今後世界規模で普及していくかもしれない。

どれほど素晴らしいかは「Whois(フーイズ)」を思い出そう。今後Whoisがどうなるかわからないが、ドメイン登録の際にガッツリ個人情報が公開されると「万人」が想定して取得するだろうか。わかりやすい注意喚起(同意)は必要である。

詳しいGDPR説明は省くが、確信を得られないまま当サイトにたどり着き、ソコソコ知っていると思うので、個人サイト・ブログ(WordPress)が含まれるかもしれない部分を簡単にまとめる。

  • IPアドレスとCookieは個人情報扱い
  • コメント欄ではIPを取得している
  • アナリティクスやアドセンスなどの広告
  • お問い合わせ時の個人情報

上記が不安な点だ。

プラグインやjavaScriptで対応は確かに可能のようだが、

  • 同意を得る表示を日本で表示したくない(発見)
  • 同意の範囲がわからない
  • 最初からCookie(クッキー)が有効になっていない状態の仕方がわからない(オプトイン)
  • EU圏だけに絞るなら有料(無料発見)
  • プラグインの歴史が浅く、情報が少ない
  • javaScriptの知識が場合により必要(無料公開されている)
  • アドセンスは結局同意が必要
  • AMPに同意表示を出せるプラグインがない(2018年9月4日現在)

と、「同意を得ることが一番良い」のはわかるが、何かとハードルが高く考えるのをやめた。

2019年2月4日追記:無料でオープンソースのjavaScriptコードを、デモ付きでオプトイン・アウトをわかりやすく説明してくれるサイトを発見した。非常に役に立つので、自力でできる方は参考にすると良い。なお、現在AMPはjavaScriptを使えない。

なんと、国別もできるようだ。

参考好きなJavaScriptをAMPで実行できるようになるかも。Web Workerで実現か? | 海外SEO情報ブログ

あれから時が経ち、企業は最初からCookieを有効化させ、別の特設ページでCookieを無効化させる手段を選択しているようだ。

スポンサーリンク

範囲はEU圏ではない?

EU圏のような話をしていたが、このような文章を発見した。

「EU一般データ保護規則(General Data Protection Regulation:GDPR)」は、欧州経済領域(European Economic Area:EEA=EU加盟28カ国およびアイスランド、リヒテンシュタイン、ノルウェー)の個人データ保護を目的とした管理規則であり、個人データの移転と処理について法的要件が定められているものです。

出典:EU一般データ保護規則(GDPR)の概要(前編) | NTTデータ先端技術株式会社

某巨大掲示板サイトがGDPR対策で「EU圏のアクセスを遮断」しており、アイスランドとノルウェーからアクセスしたところ、451エラー(検問:Chromeで確認)で遮断された。

リヒテンシュタインはVPNサーバーがなかったのでわからない。

このことから、EEA参加国をIP制限するのが無難と判断した。

参考にしたサイト・IP制限をする理由

公式サイトは「企業」のことを述べていると思われる。罰金の部分を重点的に確認したが、翻訳次第で「企業・会社・事業」の位置が変わり、意味合いが増えて悩むだけだ。

部分引用だと解釈の違いに拍車が掛かりそうなので、詳しい内容は参照されたし。

使用した翻訳はGoogle 翻訳で、Wikipedia日本語版だけが罰金の部分に企業だとわかりやすい表示をしている。

公式サイト:参照

以下公式サイトではないが参考にしたサイト。

参照

同じWikipediaでも日本語・英語の「処罰(Sanctions:制裁)部分」の印象は変わる。

参照

このように、英語を理解できる段階でなければ「企業」の位置が入れ替わり、私が理解できていないだけかもしれないがそこがよくわからない。

なので、「問題を強制的に無視するIP制限で遮断」という結論に至った。

当サイトはIP Geo Blockでも防げない環境のため、現在はCookie同意に変更中。

紹介するIP制限は、綺麗事抜きにEEA圏ユーザーを差別しているようなものなので、「対策が確立された」・「すべてを網羅したプラグインが登場」など、ハッキリと乗り換えのできる段階になり次第IP制限の解除をするべきだ。

これ以上はプラグイン関係の話と、VPNを使って他国からアクセスしたことにして遮断を確認する方法しか述べていない。プラグインに興味がなければブラウザバックか遮断の確認へ飛ぼう。
スポンサーリンク

キャッシュプラグイン注意事項

Cloudflareは関係ないが、IP Geo Blockプラグインを使用するなら必ず確認しよう。

IP制限をしても、キャッシュが以下のような動きをしているようだ。

  1. キャッシュを削除する
  2. EEA参加国以外の誰かが「一番最初」に自分のサイトを訪問する → 正常なページのキャッシュが生成
  3. IP制限をかけたEEA参加国からアクセス →「一番最初」に作られたキャッシュを訪問者に見せてしまう

IP制限をかけたはずが、正常なページのキャッシュを閲覧できてしまい無意味になる。

なので、キャッシュプラグインを使わなければ正常どおり遮断してくれるが、ほとんどの人はキャッシュプラグインを使っているだろう。

この現象を無視する方法があるようで、キャッシュプラグインが「WP Super Cache」・「W3 Total Cache」だったり、LiteSpeed Cache以外だった場合は停止をしなくても使えるかもしれない。

私もこの仕様をよく理解していなく、これらのキャッシュプラグインを使用していないため、迷ったらLiving with caching plugin | IP Geo Blockを見よう。

私の環境のキャッシュプラグイン「LiteSpeed Cache」はサポートされていないようで、この方法は使えなかった。どうしても使いたい場合は「LiteSpeed Cache」を停止するか悩もう。
スポンサーリンク

IP Geo Blockをインストール

このプラグインをGDPR対策用途で使うのはなんとも言えないが、とても優秀なセキュリティ向上プラグインかつ日本製で評判が良い。

しかも、GDPR向けにデフォルトでIP匿名化などの機能が備わっている。

CloudflareでIPを遮断すると、遮断履歴にIPが匿名化されないまま残ってしまうので、このIP匿名化は非常に重要だ。

ファイアウォール関係での匿名化はIP Geo Block以外のプラグインにする気配がないのだが、もしかして問題ないのだろうか。確かに知らなければブラックリストに登録することができず、こちらの防御手段がなくなってしまうが……。

GDPR対応処置3.0.11 Release Note | IP Geo Block

通常どおり使うのもいいが、ここではIPもろとも遮断する。

ログインできなくなるかもしれないので、インストール前にバックアップだ!

「プラグイン」→「新規追加」→検索欄に「IP Geo Block」と入れると、tokkonopapaさんのプラグインが出てくるのでインストール。

設定は公式推奨設定があるのですぐ終わるが、IP制限を目的としてるので詳細は省く。

インストール

IP Geo Block | WordPress.orgからもダウンロードは可能。よく更新されているプラグインのようだ。

有効化すると「位置情報データベース」のダウンロードが開始される。

すぐ終わるので、そのまま「検証ルールの設定」をクリックするか、「設定」→「IP Geo Block」で設定画面を開こう。

位置情報データベースをダウンロード中

終わっていればこの表示がでているはずだ。

ローカルデータベースとマッチング規則が更新される

初期設定

「検証ルールの設定」にある「あなたのIPアドレス/国コード」の国コード部分と、「国コードのホワイトリスト」の国コードが一致しているかを確認しよう。日本から普通にアクセスしている場合は、「JP」の状態になっているはずだ。

国コードのホワイトリストを確認

プロキシ・VPN・Cloudflareなどを使用している場合、それらのIPアドレス・国コードをホワイトリストに入れないとログインできなくなる。以下の表示がでたら、ホワイトリストに現在接続中の国コードを入れよう。

ホワイトリストに登録してないよと警告される

バックエンドの設定

人に見せるところではない場所のセキュリティ強化設定をする。一番下の「バックエンドの推奨設定」をクリック。

「変更の保存」をクリックしないかぎり実行されないので試しに押してみよう。

バックエンドの推奨設定

変更したところは「*」マークが付き、まったくわからないだろうが最後に「変更の保存」を押そう(Enterでも可)。

なにか問題が発生してしまったら、さきほどの「バックエンドの推奨設定」の左隣「初期設定」で元に戻し、「検証ルールの設定のマッチング規則」の部分が未選択になってしまうので、ホワイトリストに変更しよう。
マッチング規則をホワイトリストにする

IP制限

すごく簡単で、ほぼコピペだ。

同じ設定画面(「設定」→「IP Geo Block」)の中間より上くらいに、「フロントエンドの設定」がある。この項目を画像のように設定。

「国コードのブラックリスト」に次のEEA参加国の国コードをコピペしよう。

EEA参加国参考欧州経済領域 – Wikipedia

AT,BE,BG,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LI,LT,LU,LV,MT,NL,NO,PL,PT,RO,SE,SI,SK

国コード参考:ISO 3166-1 – Wikipedia
フロントエンドの設定

今後「参加国が増えたら増やさなければならない」ことを、頭に入れておいてほしい。

Liechtenstein(リヒテンシュタイン)・Lithuania(リトアニア)・Malta(マルタ)のアクセスはVPNサーバーがなく遮断を確認できなかったが(おそらくされている)、その他の28カ国は遮断を確認済。
遮断時の403ページ例

遮断の確認は後述する「他国からアクセスしたことにして確認」の章を見よう。

スポンサーリンク

CloudflareでIP制限

Cloudflareの国別IP制限はバグだった模様。今後ブロックからチャレンジに変更される可能性があり、もともとエンタープライズプランの特典だったようだ。ようするに、もう使えないはず。

公式コミュニティ国別IP制限ができなくなった(英語)

IP Geo Blockとは違い、遮断したIPが匿名化されておらず、ガッツリIP(個人情報)を閲覧できる盲点が発覚。それでも良い方はこちらを試そう。なお、当サイトはこの方法でIP制限をしていたができなくなったので、とりあえずクッキー承認に変更している。

とても簡単だが、すでに導入している前提で進行。

CloudflareにするとQUICプロトコル(mixhostが対応済)の恩恵を受けられなくなるため、大いに悩もう。CDNにも利点があるので、気にはなっていないし、ページスピード評価はわずかに上昇した。

Cloudflareログイン→「制限をしたいドメインを選択」→「Firewall(ファイアウォール)」タブへ進む。

ファイアウォールタブをクリック

中間にある、IP Firewallの「Access Rules(アクセスルール)」を探そう。

次の国名を1カ国コピペ→メモ欄に「GDPR」とブロックする理由を入れて追加するが、この流れを多少面倒だが31カ国分する。

Austria・Belgium・Bulgaria・Cyprus・Czech Republic・Germany・Denmark・Estonia・Spain・Finland・France・United Kingdom・Greece・Croatia・Hungary・Ireland・Iceland・Italy
・Liechtenstein・Lithuania・Luxembourg・Latvia・Malta・Netherlands・Norway・Poland・Portugal・Romania・Sweden・Slovenia・Slovakia

EEA参加国参考:European Economic Area – Wikipedia

間違えて同じ国を登録しても、エラーが出て登録できないので大丈夫だ。

アクセスルール作成

ルール作成を終えたら、他に作成している場合を除き「31」になっている。

ルールの数が31になっていればOK

あまりに日本と呼び名が違う国名になっていてわけがわからないので、国コードでも確認する。

「Value(バリュー:値)」の部分を何回かクリックし、▲にすればアルファベット順になってくれるので、次の国コードと見比べよう。

AT,BE,BG,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LI,LT,LU,LV,MT,NL,NO,PL,PT,RO,SE,SI,SK

国コード参考:ISO 3166-1 – Wikipedia
アクセスルール確認

IP制限で遮断されたログは、Firewallタブ一番下の「Firewall Events(ファイアウォールイベント)」で確認できる。

ファイアウォールの動作ログ

必要ないだろうが、フリープランは遮断ページのカスタマイズができない。

エラーページで弾かれる。
ブロック項目以外に「Challenge(チャレンジ)」というのがあり、有料のプロプラン以上はチャレンジページをカスタマイズできる。ということは、カスタマイズページで「同意」を得る設定ができるかもしれないが、私は無料版なのでわからない。使用中なら、一度確認してみてはいかがだろうか。
Liechtenstein(リヒテンシュタイン)・Lithuania(リトアニア)・Malta(マルタ)のアクセスはVPNサーバーがなく遮断を確認できなかったが(おそらくされている)、その他の28カ国は遮断を確認済。
スポンサーリンク

他国からアクセスしたことにして確認

遮断中か確認しないと大変なことになるので、VPNを使い「EEA参加国からアクセスしている」ことにし、IP制限が発動しているかを確認する。

無料で確認できる方法や有料の激安VPNも存在するので、時間があれば確認してみよう。

私が利用している一番サーバーの多いNordVPNでも、Liechtenstein(リヒテンシュタイン)・Lithuania(リトアニア)・Malta(マルタ)の3カ国はサーバーが存在しないので確認できない。
スポンサーリンク

対応策の答え

「同意を得ることが正解」なのは確かだが、元々理解していないCookie・キャッシュなどの話をされても進展するわけがない。

答えがわからないからこそ、理解できる方法の延命処置だけをおこない、完全対応できるようになるまでじっとしていよう。

とりあえず、当サイトは技術力がないため、現時点でCookie同意を選んだ。

コメント

タイトルとURLをコピーしました