2026年9月8日
2026年9月8日
WordPressのIAP(Identity-Aware Proxy)連携方法
はじめに
WordPressサイトを安全に管理するために、Google Cloud Platform(GCP)上のサーバーにはIdentity-Aware Proxy(IAP)の利用が推奨されます。IAPは認証とアクセス制御機能を持つ高度なセキュリティソリューションであり、これを利用することで、WordPressへのログインや操作をより安全に行うことができます。
症状・背景
このテーマが必要になる主な場面:
- WordPressサイトの管理者権限が漏洩した場合
- サードパーティ製プラグインによる不正アクセスがあった場合
- ネットワークセキュリティポリシーを強化する必要がある場合
- Google Cloud Platform上でWordPressサイトを管理する場合
手順・設定方法
ステップ1: IAPの有効化とサービスアカウントの作成
# GCPプロジェクトを選択します。
gcloud config set project [PROJECT_ID]
# デフォルトサービスアカウントを作成します。
gcloud iam service-accounts create wp-admin --display-name "WordPress Administrator"
# サービスアカウントにIAPのアクセス権限を付与します。
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member="serviceAccount:wp-admin@[PROJECT_ID].iam.gserviceaccount.com" \
--role="roles/iap.tunnelResourceAccessor"
ステップ2: WordPressサイトへのIAPアクセスルールの設定
# IAPリソースを作成します。
gcloud iap resource-rules create wp-access-rule \
--resource-name "projects/[PROJECT_ID]/global/httpServices/[TARGET_PROXY_NAME]" \
--access-list="[ACCESS_LIST_NAME]"
# アクセスリストを定義します。
gcloud iap access-lists create [ACCESS_LIST_NAME] \
--description="WordPress admin access" \
--members="serviceAccount:wp-admin@[PROJECT_ID].iam.gserviceaccount.com"
ステップ3: WordPressへのログインURLの作成と設定
# IAP URLを取得します。
iap_url=$(gcloud iap web-backend-config get "projects/[PROJECT_ID]/global/httpServices/[TARGET_PROXY_NAME]" \
--format="value(iap.oidcAudiences)")
# WordPressにIAP経由でアクセスするための設定を追加します。
sed -i '/\[W3TC\].*/a \[wpseo\]\nlogin_url=https://iap-idp-oauth2-proxy.[PROJECT_ID].iap.gserviceaccount.com/oauth2/v4/token?audience='"$iap_url"'\&scope=openid%20email' /var/www/html/wp-config.php
ステップ4: ログと監視の設定
# IAPログを有効にします。
gcloud logging sinks create iap-logs \
--output-monitored-resources=iap.googleapis.com\
--sink-filter="resource.type=\"iap_tcpproxy\" OR resource.type=\"iap_httpproxy\"" \
gs://[BUCKET_NAME]/iap_logs
注意事項
- <実践的な注意点1>: サービスアカウントの権限は最小限に抑えること。
- <実践的な注意点2>: IAP URLを変更する際は、WordPressの設定も更新すること。
- <セキュリティ上の注意>: 他者のサービスアカウントを使用しないようにすること。
- <パフォーマンス/運用上の注意>: 高負荷時や大量アクセス時にはIAPの性能に影響が出る可能性がある。
まとめ
1. 基本設定: GCPプロジェクトとサービスアカウントを準備し、IAPへのアクセス権限を設定します。
2. リソースルール作成: WordPressサイト用のIAPリソースを作成して、アクセス制御リストを定義します。
3. ログインURL変更: WordPressへのログインURLをIAP経由に変更することでセキュアなアクセスを実現します。
4. ログと監視: IAPからのログ出力を有効にして、サイトの状態を確認できるように設定します。
関連記事: