Cloud Code の Secret Manager 統合を使用して Secret を作成、管理する方法について説明します。
このタスクを Cloud Shell エディタで直接行う際のガイダンスについては、「ガイドを表示」をクリックしてください。
始める前に
-
In the Google Cloud console, go to the project selector page.
-
Select or create a Google Cloud project.
- Git をインストールして、Cloud Code がサンプルのクローン作成などの Git オペレーションを実行できるようにします。
- Cloud Code プラグインをインストールします(まだインストールしていない場合)。
Cloud Run サービスを作成する
Cloud Run サービスと Secret を作成する環境として Cloud Shell エディタを使用します。このエディタには、クラウド開発に必要なツールがプリロードされています。
サービスを作成するには:
Cloud Code のステータスバーで、アクティブなプロジェクト名をクリックします。
表示されたクイック選択メニューで、[新規アプリケーション] をクリックし、[Cloud Run アプリケーション] をクリックします。
Cloud Run サンプルのリストから、[Python (Flask): Cloud Run] を選択します。
サンプルのフォルダを選択して、[新規アプリケーションを作成] をクリックします。
Cloud Shell エディタで新しいワークスペースにサービスが読み込まれたら、
シークレットを作成する
Secret Manager では、Secret をバイナリ blob またはテキスト文字列として保存、管理、アクセスできます。さらに、Secret を管理するため、仮想マシンやオペレーティング サービスに対処する必要はありません。
Cloud Code の Secret Manager 統合を使用して Secret を作成するには:
- [
Secret Manager ] をクリックして、読み込まれるまで待ちます。 - Cloud Shell に Google Cloud API の呼び出しを認可するよう求められたら、[承認] をクリックします。
- 追加 [
Secretを作成 ] をクリックします。 - プロンプトが表示されたら、プルダウン セレクタから Google Cloud プロジェクトを選択します。
- プロンプトが表示されたら、Secret Manager API を有効にします。
表示される [Secret Manager - Create Secret] タブで、[名前] フィールドに次のように入力します。
my-secret
[シークレットの値] フィールドに、次のように入力します。
Hello secret!
[シークレットの作成] をクリックすると、Secret が正常に作成されたというメッセージが表示されます。
コードに Secret を追加する
Secret は、実行時にアプリケーションが必要とする構成情報(データベース パスワード、API キー、TLS 証明書など)を保存するのに保存するのに便利です。
コードに Secret を追加するには、
[
Cloud API ] ビューを開き、[Secret Manager API ] を選択します。見出しとして [Secret Manager API] が表示される Google Cloud API の詳細タブが開きます。
[クライアント ライブラリのインストール] セクションで [Python] タブをクリックし、play_arrow [ターミナルで再生] をクリックします。これにより、
google-cloud-secret-manager
クライアント ライブラリがインストールされます。requirements.txt を開き、ファイルの末尾に次の行を追加します。google-cloud-secret-manager==2.1.0
変更内容は自動的に保存されます。
Secret の最新の値を取得するには、
app.py を開き、hello 関数の後に 、次の関数をコピーして貼り付けます。def access_secret_version(secret_version_id): """Return the value of a secret's version""" from google.cloud import secretmanager # Create the Secret Manager client. client = secretmanager.SecretManagerServiceClient() # Access the secret version. response = client.access_secret_version(name=secret_version_id) # Return the decoded payload. return response.payload.data.decode('UTF-8')
access_secret_version
関数を呼び出すには、メッセージ変数 を次のものと置き換えます。message = access_secret_version("<SECRET_VERSION_ID>")
まだ Secret Manager - Secret の作成タブが開いていたら、file_copy ID をコピーします。
Secret のバージョンの ID を取得するには、[
Secret Manager ] > [SECRET_NAME] > [バージョン] に移動し、バージョンの上にポインタを置き、[リソース ID をコピー] をクリックします。バージョン ID を追加するには、プレースホルダ
をコピーしたバージョン ID に置き換えます。<SECRET_VERSION_ID>
Cloud Run エミュレータで実行する
新しい Secret をテストするには、Cloud Run エミュレータで Cloud Run サービスをローカルで実行します。
- ステータスバーから [
Cloud Code ] メニューを起動します。 - サービスをビルドしてエミュレータにデプロイするには、[
Run on Cloud Run Emulator ] を選択します。 - 表示された [Run/Debug on Cloud Run Emulator] タブで [Run] をクリックします。
構成を初めて実行する場合、このプロセスには最長で 5 分ほどかかることがあります。アプリのビルドとデプロイの進捗状況が
[Output] パネルに表示されます。アプリがビルドされたら、
[Output] パネルに表示された localhost のリンクをクリックして、アプリを起動します。Secret の値は、成功の画像の下に表示されます。
新しい Secret バージョンを表示して作成する
Cloud Code の Secret Manager ビューでは、プロジェクトの Secret をすばやく確認でき、Secret を管理するアクションを利用できます。
Secret バージョンの値の表示
- [
Secret Manager ] ビューをクリックします。 - クリックして Secret を展開します。
- [Versions] フォルダで、Secret の値を表示する番号付きのバージョンを右クリックし、[Show Version Value] を選択します。
Secret バージョンは編集できません。Secret の値を更新するには、新しいバージョンを作成する必要があります。
新しい Secret バージョンを作成する
Secret の値は Secret バージョンに保存されます。Secret には複数のバージョンがあります。これは、Secret が変更された場合に役立ちます。Secret を新しいバージョンで更新する場合は、コードを更新する必要はありません。
- [
Secret Manager ] ビューをクリックします。 - Secret の名前を右クリックし、[Secret バージョンを作成] を選択します。
- 表示される [Secret Manager - Create Version] タブで、新しい値を入力し、[バージョンを作成] をクリックします。
- [Secret Manager - Secret の作成] タブが開いたら、file_copy の上部にある [コピー] をクリックして、ID をコピーします。
- 新しいバージョン ID を追加するには、
app.py でメッセージ変数に表示される現在のバージョンを、コピーした新しいバージョン ID に置き換えます。
latest
に置き換えます。
Secret を表示して管理する
Secret バージョンを無効化にする
Secret バージョンは、作成後にデフォルトで有効になり、アクセスできます。無効にした Secret にはアクセスできませんが、いつでもアクセスを復元できます。
Secret バージョンを無効にするには:
- [Cloud Code] をクリックし、[Secret Manager] セクションを展開します。
- クリックして Secret を展開します。
- [バージョン] フォルダで、無効にする番号付きのバージョンを右クリックします。
- [Disable Version] を選択します。
シークレット バージョンの破棄
シークレット バージョンを破棄すると、アクセスできなくなります。Secret バージョンの破棄は後から変更できません。
- [Cloud Code] をクリックし、[Secret Manager] セクションを展開します。
- クリックして Secret を展開します。
- [バージョン] フォルダで、破棄するバージョンを右クリックします。
- [Destroy Version] を選択します。
クリーンアップ
このクイックスタート用に作成したクラスタのみを削除するには:
- [Cloud Code] をクリックし、[Kubernetes] セクションを展開します。
- ポインタをクラスタ名に合わせて、open_in_new [Google Cloud コンソールで開く] をクリックします。
- [削除] をクリックし、[削除] をクリックします。
プロジェクト(およびクラスタを含む関連リソース)を削除するには、次のようにします。
Google Cloud コンソールの [プロジェクト] ページに移動します。
このクイックスタート用に作成したプロジェクトを選択し、[削除] をクリックします。
プロジェクト ID を入力して確定し、[シャットダウン] をクリックします。
プロジェクトがシャットダウンし、プロジェクト削除のスケジュールが決定されます。