Azure Key Vault のシークレットについてAbout Azure Key Vault secrets

Key Vault は、パスワードやデータベース接続文字列などの汎用シークレットのセキュリティで保護されたストレージを提供します。Key Vault provides secure storage of generic secrets, such as passwords and database connection strings.

開発者から見ると、Key Vault API はシークレット値を文字列として受け取って返します。From a developer's perspective, Key Vault APIs accept and return secret values as strings. Key Vault の内部では、シークレットはオクテット (8 ビット バイト) のシーケンスとして格納および管理され、最大サイズはそれぞれ 25k バイトです。Internally, Key Vault stores and manages secrets as sequences of octets (8-bit bytes), with a maximum size of 25k bytes each. Key Vault サービスでは、シークレットのセマンティクスは提供されていません。The Key Vault service doesn't provide semantics for secrets. データを受け取り、暗号化し、格納して、シークレット識別子 ("id") を返すだけです。It merely accepts the data, encrypts it, stores it, and returns a secret identifier ("id"). 後で識別子を使用して、シークレットを取得できます。The identifier can be used to retrieve the secret at a later time.

機密性の高いデータについては、クライアントで追加のデータ保護レイヤーを検討する必要があります。For highly sensitive data, clients should consider additional layers of protection for data. たとえば、Key Vault に保存する前に別の保護キーを使用してデータを暗号化します。Encrypting data using a separate protection key prior to storage in Key Vault is one example.

Key Vault では、シークレットの contentType フィールドもサポートされています。Key Vault also supports a contentType field for secrets. クライアントは、シークレットのコンテンツ タイプを指定して、取得されるときのシークレット データの解釈を支援できます。Clients may specify the content type of a secret to assist in interpreting the secret data when it's retrieved. このフィールドの最大長は 255 文字です。The maximum length of this field is 255 characters. 定義済みの値はありません。There are no pre-defined values. 推奨される使用方法は、シークレット データを解釈するためのヒントです。The suggested usage is as a hint for interpreting the secret data. たとえば、実装がパスワードと証明書の両方をシークレットとして格納する場合は、このフィールドを使用して区別します。For instance, an implementation may store both passwords and certificates as secrets, then use this field to differentiate. 定義済みの値はありません。There are no predefined values.

暗号化Encryption

Key Vault 内のシークレットはすべて、暗号化した状態で格納されます。All secrets in your Key Vault are stored encrypted. この暗号化は透過的に行われ、ユーザーによる操作は必要ありません。This encryption is transparent, and requires no action from the user. ユーザーによって追加されたシークレットは、Azure Key Vault サービスによって暗号化され、ユーザーが読み取るとき自動的に暗号化が解除されます。The Azure Key Vault service encrypts your secrets when you add them, and decrypts them automatically when you read them. 暗号化キーは、キー コンテナーごとに一意となります。The encryption key is unique to each key vault.

シークレットの属性Secret attributes

シークレット データに加えて、次の属性を指定できます。In addition to the secret data, the following attributes may be specified:

  • exp:IntDate、省略可能、既定値は 無期限exp: IntDate, optional, default is forever. exp (expiration time: 有効期限) 属性は、特定の条件の場合を除き、それを過ぎたらシークレット データを取得してはならない日時を示します。The exp (expiration time) attribute identifies the expiration time on or after which the secret data SHOULD NOT be retrieved, except in particular situations. このフィールドは、特定のシークレットで使用できないキー コンテナー サービスをユーザーに通知するための 情報提供 のみを目的としています。This field is for informational purposes only as it informs users of key vault service that a particular secret may not be used. その値は、IntDate 値を含む数値でなければなりません。Its value MUST be a number containing an IntDate value.
  • nbf:IntDate、省略可能、既定値は 現在nbf: IntDate, optional, default is now. nbf (not before: 有効期間開始日時) 属性は、特定の条件の場合を除き、それより前はシークレット データを取得してはならない日時を示します。The nbf (not before) attribute identifies the time before which the secret data SHOULD NOT be retrieved, except in particular situations. このフィールドは 情報提供 のみを目的としています。This field is for informational purposes only. その値は、IntDate 値を含む数値でなければなりません。Its value MUST be a number containing an IntDate value.
  • enabled: boolean、省略可能、既定値は trueenabled: boolean, optional, default is true. この属性は、シークレット データを取得できるかどうかを指定します。This attribute specifies whether the secret data can be retrieved. enabled 属性は、nbf および exp と組み合わせて使います。nbfexp の間で操作が発生する場合、enabled が true に設定されている場合にのみ許可されます。The enabled attribute is used in conjunction with nbf and exp when an operation occurs between nbf and exp, it will only be permitted if enabled is set to true. nbf から exp までのウィンドウの外部での操作は、特定の条件下を除き、自動的に禁止されます。Operations outside the nbf and exp window are automatically disallowed, except in particular situations.

シークレット属性を含むすべての応答に含まれる追加の読み取り専用属性があります。There are additional read-only attributes that are included in any response that includes secret attributes:

  • created:IntDate、省略可能。created: IntDate, optional. created 属性は、このバージョンのシークレットが作成された日時を示します。The created attribute indicates when this version of the secret was created. この属性が追加される前に作成されたシークレットについては、この値は null です。This value is null for secrets created prior to the addition of this attribute. その値は、IntDate 値を含む数値でなければなりません。Its value must be a number containing an IntDate value.
  • updated:IntDate、省略可能。updated: IntDate, optional. updated 属性は、このバージョンのシークレットが更新された日時を示します。The updated attribute indicates when this version of the secret was updated. この属性が追加される前に最後に更新されたシークレットについては、この値は null です。This value is null for secrets that were last updated prior to the addition of this attribute. その値は、IntDate 値を含む数値でなければなりません。Its value must be a number containing an IntDate value.

各キー コンテナー オブジェクトの種類の一般的な属性については、「Azure Key Vault のキー、シークレット、証明書の概要」をご覧ください。For information on common attributes for each key vault object type, see Azure Key Vault keys, secrets and certificates overview

日付と時刻で制御される操作Date-time controlled operations

シークレットの 取得 操作は、nbf / exp ウィンドウの外側の、有効期間前および期限切れ後のシークレットでも動作します。A secret's get operation will work for not-yet-valid and expired secrets, outside the nbf / exp window. 有効期間前のシークレットの 取得 操作は、テスト目的に使用できます。Calling a secret's get operation, for a not-yet-valid secret, can be used for test purposes. 期限切れのシークレットの 取得 は、復旧操作に使用できます。Retrieving (get ting) an expired secret, can be used for recovery operations.

シークレットのアクセス制御Secret access control

Key Vault で管理されているシークレットのアクセス制御は、そのシークレットを格納している Key Vault のレベルで提供されます。Access Control for secrets managed in Key Vault, is provided at the level of the Key Vault that contains those secrets. シークレットのアクセス制御ポリシーは、同じキー コンテナー内のキーに対するアクセス制御ポリシーとは別です。The access control policy for secrets, is distinct from the access control policy for keys in the same Key Vault. ユーザーは、1 つまたは複数のコンテナーを作成してシークレットを保持することができ、シークレットのセグメント化と管理に適切なシナリオを維持する必要があります。Users may create one or more vaults to hold secrets, and are required to maintain scenario appropriate segmentation and management of secrets.

次のアクセス許可は、コンテナーのシークレット アクセス制御エントリでプリンシパルごとに使用でき、シークレット オブジェクトに対して許可される操作を厳密に反映します。The following permissions can be used, on a per-principal basis, in the secrets access control entry on a vault, and closely mirror the operations allowed on a secret object:

  • シークレット管理操作に対するアクセス許可Permissions for secret management operations

    • get:シークレットを読み取りますget: Read a secret
    • list:キー コンテナーに格納されているシークレットまたはシークレットのバージョンを一覧表示しますlist: List the secrets or versions of a secret stored in a Key Vault
    • set:シークレットの作成set: Create a secret
    • delete:シークレットを削除しますdelete: Delete a secret
    • recover:削除されたシークレットを復旧しますrecover: Recover a deleted secret
    • backup:キー コンテナー内のシークレットをバックアップしますbackup: Back up a secret in a key vault
    • restore:バックアップしたシークレットをキー コンテナーに復元しますrestore: Restore a backed up secret to a key vault
  • 特権操作に対するアクセス許可Permissions for privileged operations

    • purge:削除されたシークレットをパージ (完全に削除) しますpurge: Purge (permanently delete) a deleted secret

シークレットの処理について詳しくは、Key Vault REST API リファレンス内のシークレットの操作の説明をご覧ください。For more information on working with secrets, see Secret operations in the Key Vault REST API reference. アクセス許可の設定については、「Vaults - Create or Update」(コンテナー - 作成または更新) および「Vaults - Update Access Policy」(コンテナー -アクセス ポリシーの更新) をご覧ください。For information on establishing permissions, see Vaults - Create or Update and Vaults - Update Access Policy.

Key Vault でアクセスを制御するための攻略ガイドについては、次の記事をご覧ください。How-to guides to control access in Key Vault:

シークレットのタグSecret tags

タグの形式で、アプリケーション固有の追加メタデータを指定できます。You can specify additional application-specific metadata in the form of tags. Key Vault は最大 15 個のタグをサポートし、それぞれが 256 文字の名前と 256 文字の値を持つことができます。Key Vault supports up to 15 tags, each of which can have a 256 character name and a 256 character value.

注意

タグは、呼び出し元が list または get のアクセス許可を持っている場合に呼び出し元によって読み取ることができます。Tags are readable by a caller if they have the list or get permission.

Azure ストレージ アカウント キーの管理Azure Storage account key management

Key Vault では、Azure ストレージ アカウント キーを管理できます。Key Vault can manage Azure storage account keys:

  • Key Vault の内部では、Azure ストレージ アカウントを使用してキーの一覧表示 (同期) ができます。Internally, Key Vault can list (sync) keys with an Azure storage account.
  • Key Vault は定期的にキーを再生成 (ローテーション) します。Key Vault regenerates (rotates) the keys periodically.
  • キーの値は、呼び出し元に応答で返されることはありません。Key values are never returned in response to caller.
  • Key Vault では、ストレージ アカウントと従来のストレージ アカウントの両方のキーが管理されます。Key Vault manages keys of both storage accounts and classic storage accounts.

詳細については、次を参照してください。For more information, see:

ストレージ アカウントのアクセス制御Storage account access control

ユーザーまたはアプリケーション プリンシパルがマネージド ストレージ アカウントに対する操作を実行するのを承認するときは、次のアクセス許可を使用できます。The following permissions can be used when authorizing a user or application principal to perform operations on a managed storage account:

  • マネージド ストレージ アカウントと SaS 定義の操作に対するアクセス許可Permissions for managed storage account and SaS-definition operations

    • get:ストレージ アカウントに関する情報を取得しますget: Gets information about a storage account
    • list:キー コンテナーによって管理されているストレージ アカウントを一覧表示しますlist: List storage accounts managed by a Key Vault
    • update:ストレージ アカウントを更新しますupdate: Update a storage account
    • delete:ストレージ アカウントを削除するdelete: Delete a storage account
    • recover:削除されたストレージ アカウントを復旧しますrecover: Recover a deleted storage account
    • backup:ストレージ アカウントをバックアップしますbackup: Back up a storage account
    • restore:バックアップしたストレージ アカウントをキー コンテナーに復元しますrestore: Restore a backed-up storage account to a Key Vault
    • set:ストレージ アカウントを作成または更新しますset: Create or update a storage account
    • regeneratekey:ストレージ アカウントの指定されたキー値を再生成しますregeneratekey: Regenerate a specified key value for a storage account
    • getsas:ストレージ アカウントの SAS 定義に関する情報を取得しますgetsas: Get information about a SAS definition for a storage account
    • listsas:ストレージ アカウントのストレージ SAS 定義を一覧表示しますlistsas: List storage SAS definitions for a storage account
    • deletesas:ストレージ アカウントから SAS 定義を削除しますdeletesas: Delete a SAS definition from a storage account
    • setsas:ストレージ アカウントの新しい SAS 定義/属性を作成または更新しますsetsas: Create or update a new SAS definition/attributes for a storage account
  • 特権操作に対するアクセス許可Permissions for privileged operations

    • purge:マネージド ストレージ アカウントをパージ (完全に削除) しますpurge: Purge (permanently delete) a managed storage account

詳しくは、Key Vault REST API リファレンス内のストレージ アカウントの操作に関するページをご覧ください。For more information, see the Storage account operations in the Key Vault REST API reference. アクセス許可の設定については、「Vaults - Create or Update」(コンテナー - 作成または更新) および「Vaults - Update Access Policy」(コンテナー -アクセス ポリシーの更新) をご覧ください。For information on establishing permissions, see Vaults - Create or Update and Vaults - Update Access Policy.

Key Vault でアクセスを制御するための攻略ガイドについては、次の記事をご覧ください。How-to guides to control access in Key Vault:

次のステップNext steps