はじめに
Windows で .pem ファイルを扱う際、適切なアクセス権を設定しないと、セキュリティ上のリスクが発生する可能性があります。
特に、秘密鍵ファイルは第三者に漏洩すると重大な問題を引き起こすため、適切な権限設定が重要です。
本記事では、icacls コマンドを使用して .pem ファイルのアクセス権を適切に管理する方法を解説します。
書こうと思ったきっかけ
Windows で .pem ファイルの適切なアクセス権を設定する方法を調べている際に、icacls コマンドを活用することでセキュリティを強化できることを知りました。
同様の課題に直面する人のために、具体的な手順と注意点を整理しようと思いました。
また、コマンドの意味を理解することで、安全なファイル管理ができるようになります。
本記事では、
icacls xxx.pem /inheritance:r /grant:r "$($env:USERNAME):R"
の意味とその用途について解説します。
コマンドの解説
このコマンドは、Windows のアクセス制御リスト(ACL)を管理する icacls を用いて、.pem ファイルのアクセス権を設定するものです。
- 
icacls xxx.pem- 
xxx.pemファイルのアクセス権を変更する。 
 - 
 - 
/inheritance:r- 親フォルダからのアクセス権の継承を無効にする。
 - これにより、セキュリティを強化し、特定のユーザーのみに権限を付与できるようにする。
 
 - 
/grant:r "$($env:USERNAME):R"- 現在ログインしているユーザー(
$env:USERNAME)に 読み取り(R) 権限のみを付与する。 - 
:Rの部分は「読み取り専用」を示しており、書き込みや変更ができない設定となる。 
 - 現在ログインしているユーザー(
 
コマンドの目的
このコマンドの目的は、
- 
.pemファイルのアクセス権限を制限し、不要なユーザーがアクセスできないようにする。 - 
.pemファイルの権限をログインユーザーのみに制限し、他のユーザーやシステムプロセスがアクセスできないようにする。 
実行方法
- 
管理者権限の PowerShell を開く
- 
Win + X→Windows ターミナル (管理者)またはPowerShell (管理者)を選択 
 - 
 - 
コマンドを実行する
- 
.pemファイルのあるディレクトリに移動し、コマンドを実行 
icacls xxx.pem /inheritance:r /grant:r "$($env:USERNAME):R" - 
 
注意点
- 
.pemファイルは秘密鍵などの機密情報を含む場合が多いため、不適切なアクセス権設定はセキュリティリスクにつながる。 - 管理者権限で実行しないと適用されない場合がある。
 - 他のユーザーがこの 
.pemファイルを使用する必要がある場合は、適切な権限を追加で設定する必要がある。 
まとめ
icacls コマンドを使用することで、.pem ファイルのアクセス権を制限し、セキュリティを向上させることができます。
特に、SSH やクラウドの認証に使用する .pem ファイルは、適切なアクセス制御を行うことで、不正アクセスのリスクを最小限に抑えることができます。
今回の備忘録のまとめが、どなたかの技術の支えになれば幸いです!