WindowsPowerShell

PowerShellのスクリプト実行ポリシーとセキュリティ【署名・モジュール管理】

WindowsPowerShell
記事内に広告が含まれています。

PowerShellにはセキュリティのためのスクリプト実行ポリシーがあります。安全にスクリプトを実行するための設定方法とモジュール管理を解説します。

実行ポリシーの設定

ポリシー名説明
Restrictedスクリプト実行を完全に禁止(Windowsデフォルト)
AllSigned信頼できる発行元の署名があるスクリプトのみ実行可
RemoteSignedローカルのスクリプトはOK、ダウンロードしたものは署名が必要
Unrestrictedすべて実行可能(非推奨)
Bypassすべてのポリシーを無効化(自動化環境での使用)
Get-ExecutionPolicy -List  # スコープ別に一覧表示
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser  # 現在のユーザーのみ変更

モジュールの管理(PowerShell Gallery)

# モジュールの検索・インストール
Find-Module -Name "Az"         # Azureモジュールを検索
Install-Module -Name "Az" -Scope CurrentUser

# インストール済みモジュール一覧
Get-Module -ListAvailable

# モジュールの読み込み
Import-Module Az

# モジュールのアップデート
Update-Module -Name "Az"

スクリプトの署名

# 自己署名証明書の作成(テスト用)
$cert = New-SelfSignedCertificate -Type CodeSigningCert `
    -Subject "CN=PowerShell Script Signing" `
    -CertStoreLocation "Cert:\CurrentUser\My"

# スクリプトに署名
Set-AuthenticodeSignature -FilePath "myscript.ps1" -Certificate $cert

まとめ

  • 個人利用にはRemoteSignedをCurrentUserスコープで設定するのが推奨
  • PowerShell GalleryからInstall-Moduleでモジュールを簡単に追加できる
  • 企業環境ではAllSignedポリシーで署名必須にするとセキュリティが向上する

コメント

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