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. Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 
- 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==VERSION_NUMBER- バージョン番号は、前の手順でインストールを実行した後にコンソールで確認できます。たとえば、コンソールに - Successfully installed google-cloud-secret-manager-2.23.1と表示された場合、- 変更内容は自動的に保存されます。 
- 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 を追加するには、プレースホルダ - <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 を入力して確定し、[シャットダウン] をクリックします。 - プロジェクトがシャットダウンし、プロジェクト削除のスケジュールが決定されます。