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.
Cloud Code のステータスバーで、アクティブなプロジェクト名をクリックします。
表示されたクイック選択メニューで、[新規アプリケーション] をクリックし、[Cloud Run アプリケーション] をクリックします。
Cloud Run サンプルのリストから、[Python (Flask): Cloud Run] を選択します。
サンプルのフォルダを選択して、[新規アプリケーションを作成] をクリックします。
- [
Secret Manager ] をクリックして、読み込まれるまで待ちます。 - Cloud Shell に Google Cloud API の呼び出しを認可するよう求められたら、[承認] をクリックします。
- 追加 [
Secretを作成 ] をクリックします。 - プロンプトが表示されたら、プルダウン セレクタから Google Cloud プロジェクトを選択します。
- プロンプトが表示されたら、Secret Manager API を有効にします。
表示される [Secret Manager - Create Secret] タブで、[名前] フィールドに次のように入力します。
my-secret
[シークレットの値] フィールドに、次のように入力します。
Hello secret!
[シークレットの作成] をクリックすると、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 Code ] メニューを起動します。 - サービスをビルドしてエミュレータにデプロイするには、[
Run on Cloud Run Emulator ] を選択します。 - 表示された [Run/Debug on Cloud Run Emulator] タブで [Run] をクリックします。
構成を初めて実行する場合、このプロセスには最長で 5 分ほどかかることがあります。アプリのビルドとデプロイの進捗状況が
[Output] パネルに表示されます。アプリがビルドされたら、
[Output] パネルに表示された localhost のリンクをクリックして、アプリを起動します。Secret の値は、成功の画像の下に表示されます。- [
Secret Manager ] ビューをクリックします。 - クリックして Secret を展開します。
- [Versions] フォルダで、Secret の値を表示する番号付きのバージョンを右クリックし、[Show Version Value] を選択します。
- [
Secret Manager ] ビューをクリックします。 - Secret の名前を右クリックし、[Secret バージョンを作成] を選択します。
- 表示される [Secret Manager - Create Version] タブで、新しい値を入力し、[バージョンを作成] をクリックします。
- [Secret Manager - Secret の作成] タブが開いたら、file_copy の上部にある [コピー] をクリックして、ID をコピーします。
- 新しいバージョン ID を追加するには、
app.py でメッセージ変数に表示される現在のバージョンを、コピーした新しいバージョン ID に置き換えます。 - [Cloud Code] をクリックし、[Secret Manager] セクションを展開します。
- クリックして Secret を展開します。
- [バージョン] フォルダで、無効にする番号付きのバージョンを右クリックします。
- [Disable Version] を選択します。
- [Cloud Code] をクリックし、[Secret Manager] セクションを展開します。
- クリックして Secret を展開します。
- [バージョン] フォルダで、破棄するバージョンを右クリックします。
- [Destroy Version] を選択します。
- [Cloud Code] をクリックし、[Kubernetes] セクションを展開します。
- ポインタをクラスタ名に合わせて、open_in_new [Google Cloud コンソールで開く] をクリックします。
- [削除] をクリックし、[削除] をクリックします。
Google Cloud コンソールの [プロジェクト] ページに移動します。
このクイックスタート用に作成したプロジェクトを選択し、[削除] をクリックします。
プロジェクト ID を入力して確定し、[シャットダウン] をクリックします。
プロジェクトがシャットダウンし、プロジェクト削除のスケジュールが決定されます。
Cloud Run サービスを作成する
Cloud Run サービスと Secret を作成する環境として Cloud Shell エディタを使用します。このエディタには、クラウド開発に必要なツールがプリロードされています。
サービスを作成するには:
Cloud Shell エディタが新しいワークスペースにサービスを読み込んだら、
シークレットを作成する
Secret Manager では、Secret をバイナリ blob またはテキスト文字列として保存、管理、アクセスできます。さらに、Secret を管理するため、仮想マシンやオペレーティング サービスに対処する必要はありません。
Cloud Code の Secret Manager 統合を使用して Secret を作成するには:
コードに Secret を追加する
Secret は、実行時にアプリケーションが必要とする構成情報(データベース パスワード、API キー、TLS 証明書など)を保存するのに保存するのに便利です。
コードに Secret を追加するには、
Cloud Run エミュレータで実行する
新しい Secret をテストするには、Cloud Run エミュレータで Cloud Run サービスをローカルで実行します。
新しい Secret バージョンを表示して作成する
Cloud Code の Secret Manager ビューでは、プロジェクトの Secret をすばやく確認でき、Secret を管理するアクションを利用できます。
Secret バージョンの値の表示
Secret バージョンは編集できません。Secret の値を更新するには、新しいバージョンを作成する必要があります。
新しい Secret バージョンを作成する
Secret の値は Secret バージョンに保存されます。Secret には複数のバージョンがあります。これは、Secret が変更された場合に役立ちます。Secret を新しいバージョンで更新する場合は、コードを更新する必要はありません。
latest
に置き換えます。
Secret を表示して管理する
Secret バージョンを無効化にする
Secret バージョンは、作成後にデフォルトで有効になり、アクセスできます。無効にした Secret にはアクセスできませんが、いつでもアクセスを復元できます。
Secret バージョンを無効にするには:
シークレット バージョンの破棄
シークレット バージョンを破棄すると、アクセスできなくなります。Secret バージョンの破棄は後から変更できません。
クリーンアップ
このクイックスタート用に作成したクラスタのみを削除するには:
プロジェクト(およびクラスタを含む関連リソース)を削除するには、次のようにします。