このページでは、有効な非対称鍵バージョンの公開鍵部分を取得する方法について説明します。
公開鍵はプライバシー強化メール(PEM)形式です。詳しくは、一般的な考慮事項の RFC 7468 のセクションと主体者公開鍵情報のテキスト エンコーディングをご覧ください。
必要なロール
公開鍵を取得するために必要な権限を取得するには、鍵または親リソースに対する Cloud KMS CryptoKey の公開鍵閲覧者(roles/cloudkms.publicKeyViewer
)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
この事前定義ロールには、公開鍵の取得に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
公開鍵を取得するには、次の権限が必要です。
-
cloudkms.cryptoKeyVersions.viewPublicKey
-
cloudkms.locations.get
-
cloudkms.locations.list
-
resourcemanager.projects.get
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
公開鍵を取得する
有効な非対称鍵バージョンの公開鍵をダウンロードするには:
Console
Google Cloud コンソールで [Key Management] ページに移動します。
公開鍵を取得する非対称鍵を含む鍵リングの名前をクリックします。
公開鍵を取得する鍵の名前をクリックします。
公開鍵を取得する鍵バージョンに対応する行で、[さらに表示
] をクリックします。[一般公開鍵の取得] をクリックします。
プロンプトに公開鍵が表示されます。公開鍵はクリップボードにコピーできます。公開鍵をダウンロードするには、[ダウンロード] をクリックします。
[公開鍵の取得] オプションが表示されない場合は、次の点を確認します。
- 鍵は非対称鍵である。
- 鍵バージョンが有効になっています。
cloudkms.cryptoKeyVersions.viewPublicKey
権限を付与されている。
Google Cloud コンソールからダウンロードした公開鍵のファイル名の形式は次のとおりです。
KEY_RING-KEY_NAME-KEY_VERSION.pub
ファイル名の各部分はハイフンで区切られます(例: ringname-keyname-version.pub
)
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
gcloud kms keys versions get-public-key KEY_VERSION \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --output-file OUTPUT_FILE_PATH
以下を置き換えます。
KEY_VERSION
: 鍵のバージョン番号KEY_NAME
: 鍵の名前KEY_RING
: 鍵を含むキーリングの名前。LOCATION
: キーリングの Cloud KMS のロケーションOUTPUT_FILE_PATH
: 公開鍵ファイルを保存するパス(例:public-key.pub
)
すべてのフラグと有効な値については、--help
フラグを指定してコマンドを実行してください。
C#
このコードを実行するには、まず C# 開発環境を設定し、Cloud KMS C# SDK をインストールします。
Go
このコードを実行するには、まず Go 開発環境を設定し、Cloud KMS Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Cloud KMS Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Cloud KMS Node.js SDK をインストールします。
PHP
このコードを実行するには、まず Google Cloud での PHP の使用について学び、Cloud KMS PHP SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Cloud KMS Python SDK をインストールします。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Cloud KMS Ruby SDK をインストールします。
API
これらの例では、HTTP クライアントとして curl を使用して API の使用例を示しています。アクセス制御の詳細については、Cloud KMS API へのアクセスをご覧ください。
CryptoKeyVersions.getPublicKey メソッドを呼び出して公開鍵を取得します。
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION/publicKey" \ --request "GET" \ --header "authorization: Bearer TOKEN"
以下を置き換えます。
PROJECT_ID
: キーリングを含むプロジェクトの ID。LOCATION
: キーリングの Cloud KMS のロケーションKEY_RING
: 鍵を含むキーリングの名前。KEY_NAME
: 鍵の名前KEY_VERSION
: 鍵のバージョン番号
出力は次のようになります。
{ "pem": "-----BEGIN PUBLIC KEY-----\nQ29uZ3JhdHVsYXRpb25zLCB5b3UndmUgZGlzY292ZX JlZCB0aGF0IHRoaXMgaXNuJ3QgYWN0dWFsbHkgYSBwdWJsaWMga2V5ISBIYXZlIGEgbmlj ZSBkYXkgOik=\n-----END PUBLIC KEY-----\n", "algorithm": "ALGORITHM", "pemCrc32c": "2561089887", "name": "projects/PROJECT_ID/locations/LOCATION/keyRings/ KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/ KEY_VERSION", "protectionLevel": "PROTECTION_LEVEL" }