Google App Engine で秘密キーをホストする
「github.com/dgrijalva/jwt-go」ライブラリを使用して JSON Web トークンを作成する秘密キーの使用が含まれます。このキーはローカルでホストする場合は簡単に利用できますが、Google App Engine (GAE) にデプロイすると、ファイル システムにアクセスできないため課題が生じます。
キー ストレージのオプション
GAE でホストする場合、秘密キーを保存するには主に 2 つのオプションがあります:
静的ファイル ストレージ
プライベート ファイルを保存するにはkey を GAE の静的ファイルとして保存すると、アプリのルート ディレクトリに配置し、相対パスを使用して参照できます。たとえば、key/my_key.txt にあるキーには key/my_key.txt としてアクセスできます。
データストア ストレージ
データストアに秘密キーを保存するには、KeyEntity を作成できます:
import ( "context" "cloud.google.com/go/datastore" ) type KeyEntity struct { Key string } func StoreKey(ctx context.Context) error { client, err := datastore.NewClient(ctx, projectID) if err != nil { return err } _, err = client.Put(ctx, datastore.NameKey("Key", "key", nil), &KeyEntity{Key: privateKey}) return err }
保存されたキーは GetKey 関数を通じてアクセスできます:
func GetKey(ctx context.Context) (string, error) { client, err := datastore.NewClient(ctx, projectID) if err != nil { return "", err } var keyEntity KeyEntity if err = client.Get(ctx, datastore.NameKey("Key", "key", nil), &keyEntity); err != nil { return "", err } return keyEntity.Key, nil }
注: 静的ファイルは使用できませんアプリのコードに。したがって、静的ファイルとして保存された秘密キーを参照するには、ファイルがアプリで使用できるようにするための慎重な構成が必要です。
以上がGoogle App Engine で JWT 生成用の秘密キーを安全に保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。