Google Cloud CLI を使用して証明書を発行する
このページでは、Google Cloud CLI を使用して Certificate Authority Service で証明書を生成または発行する方法について説明します。
CA Service を使用すると、インフラストラクチャを管理することなく、プライベート CA をデプロイして管理できます。
始める前に
-
Google Cloud CLI をインストールします。 インストール後、 初期化するには、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init外部 ID プロバイダ(IdP)を使用している場合は、まず フェデレーション ID を使用して gcloud CLI にログインする必要があります。
プロジェクトを作成または選択します Google Cloud 。
プロジェクトを選択または作成するために必要なロール
- プロジェクトを選択する: プロジェクトの選択には特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトを選択できます。
-
プロジェクトを作成する: プロジェクトを作成するには、プロジェクト作成者ロール
(
roles/resourcemanager.projectCreator)が必要です。これにはresourcemanager.projects.create権限が含まれています。ロールを付与する方法について学習する。
-
プロジェクトを作成する: Google Cloud
gcloud projects create PROJECT_ID
PROJECT_IDは、作成する Google Cloud プロジェクトの名前に置き換えます。 -
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
PROJECT_IDは、 Google Cloud プロジェクトの名前に置き換えます。
Certificate Authority Service API を有効にします。
API を有効にするために必要なロール
API を有効にするには、 権限を含む Service Usage 管理者 IAM ロール(
roles/serviceusage.serviceUsageAdmin)が必要です。serviceusage.services.enableロールを付与する方法について学習する。gcloud services enable privateca.googleapis.com
このクイックスタートの
gcloudコマンドで使用するデフォルトの場所を構成します。gcloud config set privateca/location LOCATIONCA プールや CA などの CA Service のリソースは、単一の Google Cloud ロケーションに存在します。これらのリソースを作成した後は 変更できません。
CA プールを作成します
認証局(CA)プールは、複数の CA の集合です。CA プールには、ワークロードの停止やダウンタイムなしに信頼チェーンをローテーションする機能があります。
Enterprise ティアで CA プールを作成するには、次のコマンドを実行します。
gcloud privateca pools create POOL_ID --location LOCATION --tier "enterprise"
以下を置き換えます。
- POOL_ID: CA プールの名前。
- LOCATION: CA プールのロケーション。ロケーションの完全な リストについては、ロケーションをご覧ください。
リソース名には、英数字、ハイフン(-)、アンダースコア(_)を使用できます。長さは 63 文字までです。
ルート CA を作成する
CA プールは、作成時に空です。CA プールから証明書をリクエストするには、CA プールに CA を追加する必要があります。
ルート CA を作成して、作成した CA プールに追加するには、次のコマンドを実行します。
gcloud privateca roots create CA_ID --pool POOL_ID --location LOCATION --subject "CN=Example Prod Root CA,O=Google"
以下を置き換えます。
- CA_ID: ルート CA の名前。
- POOL_ID: CA プールの名前。
- LOCATION: CA プールのロケーション。ロケーションの完全な リストについては、ロケーションをご覧ください。
CA Service は、ルート CA を作成すると、次の出力を返します。
Created Certificate Authority [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificateAuthorities/CA_ID]
gcloud CLI でプロンプトが表示されたら y と入力して、ルート CA を有効にします。
省略可: 下位 CA プールを作成する
下位 CA プールを作成するには、次のコマンドを実行します。
gcloud privateca pools create SUBORDINATE_POOL_ID
--location LOCATION
--tier TIER
以下を置き換えます。
- SUBORDINATE_POOL_ID: 下位 CA プールの ID。
- LOCATION: 下位 CA プールのロケーション。 ロケーションの完全なリストについては、ロケーションをご覧ください。
- TIER:下位 CA ティア(devops または enterprise)。
省略可: に保存されているルート CA によって署名された下位 CA を作成する Google Cloud
前の手順で作成した下位 CA プールに下位 CA を作成するには、次のコマンドを実行します。
gcloud privateca subordinates create SUBORDINATE_CA_ID \
--location=LOCATION \
--pool=SUBORDINATE_POOL_ID \
--issuer-pool=POOL_ID \
--issuer-location=ISSUER_LOCATION \
--from-ca=EXISTING_CA_ID \
--kms-key-version projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/KEY_VERSION
以下を置き換えます。
- SUBORDINATE_CA_ID: 下位 CA の ID。
- LOCATION: 下位 CA のロケーション。ロケーションの完全なリストについては、ロケーションをご覧ください。
- SUBORDINATE_POOL_ID: 前のセクションで作成した下位 CA プールの ID。
- POOL_ID: 親 CA プールの ID。
- ISSUER_LOCATION: 証明書のロケーション。
- EXISTING_CA_ID: ソース CA の ID。
- PROJECT_ID: プロジェクトの ID。
- LOCATION_ID: キーリングのロケーション。
- KEY_RING:鍵が配置されているキーリングの名前。
- KEY:鍵の名前。
- KEY_VERSION: 鍵のバージョン。
下位 CA が作成されると、次のステートメントが返されます。
Created Certificate Authority [projects/my-project-pki/locations/us-west1/caPools/SUBORDINATE_POOL_ID/certificateAuthorities/SUBORDINATE_CA_ID].
gcloud CLI でプロンプトが表示されたら y と入力して、下位 CA を有効にします。
証明書を作成します
新しく作成した CA を使用して証明書を作成するには、次の手順を行います。
pipコマンドを使用して Pyca 暗号ライブラリをインストールします。pip install --user "cryptography>=2.2.0"CA Service は、Pyca 暗号ライブラリを使用して、ローカルマシンに新しい非対称鍵ペアを生成して保存します。この鍵が CA Service に送信されることはありません。
Google Cloud SDK で Pyca 暗号ライブラリを使用できるようにするには、サイト パッケージを有効にする必要があります。
macOS または Linux
export CLOUDSDK_PYTHON_SITEPACKAGES=1Windows
set CLOUDSDK_PYTHON_SITEPACKAGES=1証明書を作成します。
gcloud privateca certificates create \ --issuer-pool POOL_ID \ --issuer-location ISSUER_LOCATION \ --subject "CN=Example Prod,O=Google" \ --generate-key \ --key-output-file=./key \ --cert-output-file=./cert.pem以下を置き換えます。
- POOL_ID: 作成した CA プールのリソース ID。
- ISSUER_LOCATION: デジタル 証明書を発行した認証局のロケーション。
CA Service は次のレスポンスを返します。
Created Certificate [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificates/CERTIFICATE_ID]
クリーンアップ
このクイックスタート用に作成した CA プール、CA、プロジェクトを削除してクリーンアップします。
証明書を取り消します。
- CERT_NAME: 取り消す証明書の名前。
- POOL_ID: 証明書を発行した CA プールの名前。
- LOCATION:CA プールのロケーション。
証明書を取り消すには、次のコマンドを実行します。
gcloud privateca certificates revoke --certificate CERT_NAME --issuer-pool POOL_ID --location LOCATION
次のように置き換えます。
CA を削除します。
CA は、CA が発行したすべての証明書を取り消した場合にのみ削除できます。
CA を無効にします。
gcloud privateca roots disable CA_ID --pool=POOL_ID --location=LOCATION以下を置き換えます。
- CA_ID: CA のリソース ID。
- POOL_ID: CA プールのリソース ID。
- LOCATION: CA プールのロケーション。ロケーションの 完全なリストについては、ロケーションをご覧ください。
CA を削除します。
gcloud privateca roots delete CA_ID --pool=POOL_ID --location=LOCATION
CA の状態が
Deletedに変わります。CA Service は、削除を開始してから 30 日後に CA を完全に削除します。CA プールを削除します。
CA プールを削除できるのは、CA プール内の CA が完全に削除された後のみです。
gcloud privateca pools delete POOL_ID --location=LOCATIONプロジェクトを削除する。
プロジェクトを削除する: Google Cloud
gcloud projects delete PROJECT_ID
次のステップ
- CA プールの詳細について学習する。
- CA プールの作成の詳細について学習する。
- CA 作成の詳細について学習する。
- 証明書のリクエストの詳細について学習する。
- CA プールが発行できる証明書の種類を制御する方法を学習する。