2026年8月22日

2026年8月22日

WordPressのIAM(権限管理)を厳格に設定する方法

はじめに

WordPressサイトを安全に運用するためには、適切なアクセス権限の管理が欠かせません。この記事では、WordPress環境におけるIAM(Identity and Access Management)の設定方法とその重要性について解説します。

症状・背景

このテーマが必要になる主な場面:

  • <サイト管理者が不要なユーザーを削除する必要がある場合>
  • <マルウェアや攻撃者によるアクセス権限の不正利用を防止したい場合>
  • <複数人の管理者が存在し、それぞれに適切なレベルのアクセス権を与える必要がある場合>

手順・設定方法

ステップ1: ユーザーとロールの作成

# WordPressの管理者アカウントを作成します。
wp user create admin_user admin@example.com --role=administrator --user_pass=password123

# 新規ユーザーに適切なロールを割り当てます。
wp role add_cap contributor edit_posts

ステップ2: ファイルやディレクトリのアクセス権限設定

# WordPressのwp-contentディレクトリ内のファイルとサブディレクトリに適切なアクセス権を設定します。
chown -R www-data:www-data /var/www/html/wp-content
chmod -R 750 /var/www/html/wp-content

ステップ3: セキュアなデータベースアクセス

# MySQLのrootユーザーからWordPress専用のユーザーを作成します。
mysql -u root -p
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'password123';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON wordpressdb.* TO 'wp_user'@'localhost';

# WordPressデータベースへの接続情報を変更します。
nano /var/www/html/wp-config.php

ステップ4: 事前認証とアクセス制御

# .htaccessファイルを編集して、不必要なリクエストをブロックします。
nano .htaccess
Order Deny,Allow
Deny from all
<FilesMatch "\.(php|pl|cgi|py)$">
  Allow from env=REMOTE_USER
</FilesMatch>

# ディレクトリのアクセス制御も強化します。
chgrp www-data /var/www/html/wp-admin/
chmod g+s /var/www/html/wp-admin/

注意事項

  • <実践的な注意点1>: WordPressコマンドを使用する際は、必ずサイトデータをバックアップに取ってから行うことが重要です。
  • <実践的な注意点2>: パスワードの強度や定期的な変更も重要なセキュリティ対策となります。
  • <セキュリティ上の注意>: 不必要なPHPファイルやプラグインは削除し、開発者用アカウントは使用しないでください。
  • <パフォーマンス/運用上の注意>: 多くのアクセス制御を設定すると、サイトの応答速度に影響を与える可能性があります。適切なバランスを見つけることが必要です。

まとめ

1. ユーザーアクセス: 各ユーザーとそのロールには、必要な最小限の権限のみが与えられるべきです。

2. ファイルアクセス: ファイルやディレクトリのオーナーシップとパーミッションは厳格に管理します。

3. データベース安全性: 単一の専用ユーザーを作成し、そのユーザーだけがWordPressのために必要な最小限の権限を持つように設定します。

4. 不正アクセス防止: .htaccessファイルを使用して、特定のIPアドレスからのアクセスをブロックしたり、PHPやCGIスクリプトへの不適切なアクセスを防いだりします。

5. 定期的なレビュー: アクセス権限とセキュリティ設定は、サイトの状況に応じて定期的に見直しを行うべきです。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ