2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravel Credentials Package (暗号化した認証情報をVCSに保存)

Posted at

元の記事

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を使った事がある方なら、既に機密性の高いデータに対してファイルを暗号化する手法をご存知かもしれません。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?