Speech-to-Text リソースを暗号化する

このページでは、Speech-to-Text 暗号鍵を設定し Speech-to-Text リソースを暗号化する方法について説明します。

Speech-to-Text では、Cloud Key Management Service の暗号鍵が用意されており、その鍵でデータを暗号化します。暗号化の詳細については、暗号化ページをご覧ください。

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Speech-to-Text API を有効にします。

    API を有効にする

  5. プロジェクトに次のロールがあることを確認します。 Cloud Speech Administrator

    ロールを確認する

    1. Google Cloud コンソールの [IAM] ページに移動します。

      [IAM] に移動
    2. プロジェクトを選択します。
    3. [プリンシパル] 列で、自分のメールアドレスを含む行を見つけます。

      自分のメールアドレスがその列にない場合、ロールは割り当てられていません。

    4. 自分のメールアドレスを含む行の [ロール] 列で、ロールのリストに必要なロールが含まれているかどうかを確認します。

    ロールを付与する

    1. Google Cloud コンソールの [IAM] ページに移動します。

      [IAM] に移動
    2. プロジェクトを選択します。
    3. [ アクセスを許可] をクリックします。
    4. [新しいプリンシパル] フィールドに、自分のメールアドレスを入力します。
    5. [ロールを選択] リストでロールを選択します。
    6. 追加のロールを付与するには、 [別のロールを追加] をクリックして各ロールを追加します。
    7. [保存] をクリックします。
  6. Google Cloud CLI をインストールします。
  7. gcloud CLI を初期化するには:

    gcloud init
  8. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  9. Google Cloud プロジェクトで課金が有効になっていることを確認します

  10. Speech-to-Text API を有効にします。

    API を有効にする

  11. プロジェクトに次のロールがあることを確認します。 Cloud Speech Administrator

    ロールを確認する

    1. Google Cloud コンソールの [IAM] ページに移動します。

      [IAM] に移動
    2. プロジェクトを選択します。
    3. [プリンシパル] 列で、自分のメールアドレスを含む行を見つけます。

      自分のメールアドレスがその列にない場合、ロールは割り当てられていません。

    4. 自分のメールアドレスを含む行の [ロール] 列で、ロールのリストに必要なロールが含まれているかどうかを確認します。

    ロールを付与する

    1. Google Cloud コンソールの [IAM] ページに移動します。

      [IAM] に移動
    2. プロジェクトを選択します。
    3. [ アクセスを許可] をクリックします。
    4. [新しいプリンシパル] フィールドに、自分のメールアドレスを入力します。
    5. [ロールを選択] リストでロールを選択します。
    6. 追加のロールを付与するには、 [別のロールを追加] をクリックして各ロールを追加します。
    7. [保存] をクリックします。
  12. Google Cloud CLI をインストールします。
  13. gcloud CLI を初期化するには:

    gcloud init
  14. クライアント ライブラリは、アプリケーションのデフォルト認証情報を使用することによって、Google API で簡単に認証を行い、これらの API にリクエストを送信できます。アプリケーションのデフォルト認証情報を使用すると、ベースとなるコードを変更することなく、ローカルでのアプリケーションのテストやアプリケーションのデプロイが可能です。詳しくは、<atrack-type="commonincludes" l10n-attrs-original-order="href,track-type,track-name" l10n-encrypted-href="WDE63JFVMK0YqIWBqG8nCycgwkRfOeEqRvzYs1N+2tJUEhcZvE5VtDH5LoWw0lj/" track-name="referenceLink">クライアント ライブラリを使用して認証する</atrack-type="commonincludes">をご覧ください。

  15. Google アカウントのローカル認証情報を作成します。

    gcloud auth application-default login

また、クライアント ライブラリがインストールされていることを確認してください。

Cloud Key Management Service 鍵へのアクセスを有効にする

Speech-to-Text はサービス アカウントを使用して Cloud KMS 鍵にアクセスします。デフォルトでは、サービス アカウントは Cloud KMS 鍵にアクセスできません。

サービス アカウントのメールアドレスは次のとおりです。

service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com

Cloud KMS 鍵を使用して Speech-to-Text リソースを暗号化するには、このサービス アカウントに roles/cloudkms.cryptoKeyEncrypterDecrypter ロールを付与します。

gcloud projects add-iam-policy-binding PROJECT_NUMBER \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com \
    --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

プロジェクトの IAM ポリシーの詳細については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

Cloud Storage へのアクセスの管理の詳細については、Cloud Storage ドキュメントのアクセス制御リストの作成と管理をご覧ください。

暗号鍵を指定する

次に、Config リソースを使用して Speech-to-Text に暗号鍵を提供する例を示します。

Python

from google.cloud.speech_v2 import SpeechClient
from google.cloud.speech_v2.types import cloud_speech

def enable_cmek(
    project_id: str,
    kms_key_name: str,
) -> cloud_speech.RecognizeResponse:
    """Enable CMEK in a project and region."""
    # Instantiates a client
    client = SpeechClient()

    request = cloud_speech.UpdateConfigRequest(
        config=cloud_speech.Config(
            name=f"projects/{project_id}/locations/global/config",
            kms_key_name=kms_key_name,
        ),
        update_mask={"paths": ["kms_key_name"]},
    )

    # Updates the KMS key for the project and region.
    response = client.update_config(request=request)

    print(f"Updated KMS key: {response.kms_key_name}")

    return response

暗号鍵がプロジェクトの [Config] リソースで指定されている場合、対応するロケーションで作成された新しいリソースは、この鍵を使用して暗号化されます。暗号化される内容と条件について詳しくは、暗号化ページをご覧ください。

暗号化されたリソースには、Speech-to-Text API レスポンスで kms_key_name フィールドと kms_key_version_name フィールドが入力されます。

暗号化を解除する

暗号鍵で今後のリソースが暗号化されないようにするには、上記のコードを使用して、リクエストの鍵として空の文字列("")を指定します。これにより、新しいリソースが暗号化されなくなります。このコマンドは、既存のリソースを復号しません。

鍵のローテーションと削除

鍵のローテーション時に、前のバージョンの Cloud KMS 鍵で暗号化されたリソースは、そのバージョンで暗号化されたままになります。鍵のローテーション後に作成されたリソースは、鍵の新しいデフォルト バージョンで暗号化されます。鍵のローテーション後に(Update* メソッドを使用して)更新されたリソースは、鍵の新しいデフォルト バージョンで再度暗号化されます。

鍵の削除時に、Speech-to-Text はデータの復号やリソースの作成を行うことができません。また、削除された鍵で暗号化されたリソースにアクセスすることもできません。同様に、鍵の Speech-to-Text の権限を取り消すと、Speech-to-Text はデータの復号やリソースの作成を行うことができなくなります。また、Speech-to-Text の権限を取り消された鍵で暗号化されたリソースにアクセスできなくなります。

データを再暗号化する

リソースを再暗号化するには、Config リソースの鍵仕様を更新した後に、リソースごとに対応する Update* メソッドを呼び出します。

クリーンアップ

このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の操作を行います。

  1. 作成した認証情報を取り消して、ローカル認証情報ファイルを削除します。

    gcloud auth application-default revoke
  2. (省略可)gcloud CLI から認証情報を取り消します。

    gcloud auth revoke

コンソール

  • In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  • In the project list, select the project that you want to delete, and then click Delete.
  • In the dialog, type the project ID, and then click Shut down to delete the project.
  • gcloud

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

    次のステップ