元の記事
Laravel Credentials Package for Encrypted Application Secrets
はじめに
この投稿は↑の記事を和訳したものです。
本文
GitHubなどのVCSから認証情報などを削除するのは、VCSに対して開胸手術をするようなもので、どうにかして避けたいものです。その一方で
、機密情報をVCSで管理するのは、最新の注意を払って行うのであれば、変更履歴をトラックする場合などにとても便利です。
Laravel Credentials はMarcel Pociotによって作成された、Laravelのプロジェクトにおいて、機密データを安全に管理するのを助ける新しいパッケージです。
Laravel Credentialsの利点
- 認証情報は暗号化されているため、鍵なしでは誰も認証情報を読み取ることができません(もちろん、鍵をGitHubなどのVCSに保存しなければの話ですが)。
- 暗号化された認証情報がVCSに保存されているので、変更履歴を見る事ができる。
- コードの変更と一緒に更新された認証情報もデプロイする事が可能です。
- 機密情報が一箇所で管理できる。
認証情報は暗号化されていて読み取るためには鍵が必要なのですが、変更があった場合などにどのようにして認証情報を更新すればよいのでしょうか?
Laravelの認証情報を編集する
IDやパスワードなどの認証情報を編集するには、Laravel Credentialsパッケージが提供する下記のartisan コマンドを実行する。
php artisan credentials:edit
認証情報が更新されると、新規に暗号化されたバージョンが認証情報ファイルに保存されます。デフォルトの状態では、ファイルはconfig/credentials.php.enc
に保存されます。この認証情報ファイルはヘルパー関数を利用して読み取る事ができます。
Laravelの認証情報を利用する
暗号化された認証情報にアクセスするには、ヘルパー関数であるcredentials()
を利用する。
$credential = credentials('api-password');
パッケージをインストールする
Laravel Credentialsパッケージを利用するには、Composer経由で下記のようにインストールしてください。
composer require beyondcode/laravel-credentials
設定ファイルを作成したい場合には、以下のartisanコマンドを実行してください。
php artisan vendor:publish --provider="BeyondCode\Credentials\CredentialsServiceProvider" --tag="config"
詳しく知りたい方へ
Laravel Credentials パッケージについて詳しく知りたい方は、GitHubのbeyondcode/laravel-credentials のソースコードをご覧になってください。
Ansible Vaultを使った事がある方なら、既に機密性の高いデータに対してファイルを暗号化する手法をご存知かもしれません。