カスタムアプリケーションを KMS インスタンス SDK またはシークレット SDK と統合する場合、ID と権限の検証のために、アプリケーションアクセスポイントの ClientKey を使用する必要があります。このトピックでは、アプリケーションアクセスポイントの作成方法について説明します。
注意事項
セキュリティのベストプラクティスとして、KMS と統合するアプリケーションごとに個別のアプリケーションアクセスポイントを作成してください。これにより、アクセス権限が分離されます。
デフォルトでは、ClientKey の有効期間は 5 年です。ClientKey の作成時に有効期間を指定できます。有効期間を 1 年に設定することを推奨します。サービスの中断を避けるために、有効期限が切れる前に ClientKey をローテーションする必要があります。詳細については、「ClientKey のローテーション」をご参照ください。
前提条件
KMS インスタンスを購入し、有効化していること。詳細については、「KMS インスタンスの購入と有効化」をご参照ください。
キーまたはシークレットを作成済みであること。詳細については、「Key Management の概要」および「Secrets Manager の概要」をご参照ください。
コンソールでのアプリケーションアクセスポイントの作成
クイック作成または標準作成を使用できます。アプリケーションを SDK と迅速に統合する必要がある場合は、クイック作成を使用できます。標準作成と比較して、クイック作成には次の制限があります:
クイック作成では、KMS インスタンスエンドポイントを介してのみキーとシークレットにアクセスできます。標準作成では、KMS サービスエンドポイントを介してシークレットにアクセスすることもできます。
ClientKey の有効期間は 5 年に固定されており、カスタマイズできません。1 年間の使用後に ClientKey をローテーションすることを推奨します。詳細については、「ClientKey のローテーション」をご参照ください。
アプリケーションアクセスポイントの権限ポリシーでは、Accessible Resources パラメーターは、デフォルトで指定された KMS インスタンス内のすべてのキーとシークレットに設定されます。アプリケーションアクセスポイントの作成後に権限ポリシーを変更できます。詳細については、「アプリケーションアクセスポイントの管理」をご参照ください。
方法 1:クイック作成
Key Management Service コンソールにログインします。上部のナビゲーションバーでリージョンを選択します。左側のナビゲーションウィンドウで、 をクリックします。
アプリケーションアクセス タブで、Create AAP をクリックします。Create AAP パネルで、パラメーターを設定します。
パラメーター
説明
Mode
Quick Creation を選択します。
Scope (KMS Instance)
アプリケーションがアクセスする必要のある KMS インスタンスを選択します。
Application Access Point Name
アプリケーションアクセスポイントの名前を入力します。
Authentication Method
これは ClientKey に設定されており、変更できません。
Default Permission Policy
値は
key/*secret/*であり、変更できません。これは、アプリケーションが指定された KMS インスタンス内のすべてのキーとシークレットにアクセスできることを意味します。OK をクリックします。ブラウザによって ClientKey が自動的にダウンロードされます。ClientKey には次のファイルが含まれます:
Credential (ClientKeyContent):デフォルトのファイル名は
clientKey_****.jsonです。認証情報パスワード (ClientKeyPassword): デフォルトのファイル名は
clientKey_****_Password.txtです。
方法 2:標準作成
Key Management Service コンソールにログインします。上部のナビゲーションバーでリージョンを選択します。左側のナビゲーションウィンドウで、 をクリックします。
ネットワークアクセスルールを作成します。
説明送信元 IP アドレスに基づいてアクセスを制限する必要がない場合は、ネットワークアクセスルールを作成する必要はありません。ただし、セキュリティを強化するために、設定することを推奨します。
Network Access Rules タブをクリックし、次に Create Network Access Rule をクリックします。
Create Network Access Rule パネルで、パラメーターを設定し、OK をクリックします。
パラメーター
説明
Rule Name
ネットワークアクセスルールの名前を入力します。
Network Type
プライベート:アプリケーションは KMS インスタンスエンドポイントを使用してキーとシークレットにアクセスします。
パブリック:アプリケーションは KMS サービスエンドポイント (パブリックエンドポイント) を使用してシークレットにアクセスします。
VPC:アプリケーションは KMS サービスエンドポイント (VPC エンドポイント) を使用してシークレットにアクセスします。このオプションは、中国 (杭州)、中国 (上海)、中国 (深セン)、および中国 (張家口) リージョンでのみ利用可能です。
説明暗号操作:KMS インスタンス SDK を使用して KMS インスタンスエンドポイント経由で KMS にアクセスする場合にのみサポートされます。これには、[ネットワークタイプ] が [プライベート] に設定されたネットワークアクセスルールが必要です。
シークレット値の取得:KMS インスタンス SDK またはシークレット SDK を使用できます。より高い QPS とセキュリティを実現するために、[ネットワークタイプ] が [プライベート] に設定されたネットワークアクセスルールでシークレット SDK を使用することを推奨します。
KMS インスタンス SDK:ネットワークタイプは [プライベート] である必要があります。送信元 IP アドレスは、KMS インスタンスに関連付けられた VPC 内の IP アドレスである必要があります。
シークレット SDK:ネットワークタイプは [プライベート]、[パブリック]、または [VPC] にすることができます。
Allowed Source IP Addresses
ほとんどの場合、ご利用のアプリケーションサーバの IP アドレスを入力します。IP アドレスは、選択したネットワークタイプに対応している必要があります。
ネットワークタイプが [プライベート] の場合、KMS インスタンスに関連付けられた VPC からの IP アドレスを入力します。
ネットワークタイプが [パブリック] の場合、パブリック IP アドレスを入力します。
ネットワークタイプが [VPC] の場合、VPC ID と VPC IP アドレスを入力します。
Description
ルールの説明を入力します。
権限ポリシーを作成します。
権限ポリシー タブをクリックし、次に 権限ポリシーの作成 をクリックします。
権限ポリシーの作成 パネルで、パラメーターを設定し、[OK] をクリックします。
パラメーター
説明
Policy Name
権限ポリシーの名前を入力します。
スコープ
ネットワークアクセスルールを作成する際に Network Type に [プライベート] を選択した場合は、特定の KMS インスタンスを選択します。Network Type に [パブリック] または VPC を選択した場合は、Shared KMS Gateway を選択します。
RBAC の権限
スコープ に特定の KMS インスタンスを選択した場合:
CryptoServiceKeyUser:KMS インスタンス内のキーの使用を許可します。この権限は、インスタンス API の暗号操作をサポートします。詳細については、「キー関連の操作」をご参照ください。
CryptoServiceSecretUser:KMS インスタンス内のシークレットの使用を許可します。この権限は、インスタンス API のシークレット関連の操作をサポートします。詳細については、「シークレット関連の操作」をご参照ください。
Shared KMS Gateway の スコープ を選択した場合:
SecretUser:現在のアカウント配下のすべてのシークレットの使用を許可します。この権限は、GetSecretValue OpenAPI オペレーションをサポートします。
アクセス可能のリソース
アプリケーションがアクセスする必要のあるキーとシークレットを選択します。
重要複数のシークレットを選択し、シークレット名の合計長が制限を超えると、「invalid parameter」エラーが表示されます。この場合、ワイルドカードを使用してアクセス可能なシークレットを指定します。
たとえば、このパラメーターを
secret/rds-ibm*に設定すると、アプリケーションはプレフィックスがrds-ibmのすべてのシークレットにアクセスできます。Network Access Rules
作成したネットワークアクセスルールを選択します。
説明送信元 IP アドレスに基づいてアクセスを制限する必要がない場合は、ネットワークアクセスルールを選択する必要はありません。ただし、セキュリティを強化するために、設定することを推奨します。
Description
ポリシーの説明を入力します。
アプリケーションアクセスポイントを作成します。
アプリケーションアクセス タブをクリックし、次に Create AAP をクリックします。
Create AAP パネルで、パラメーターを設定します。
パラメーター
説明
Mode
Standard Creation を選択します。
Application Access Point Name
アプリケーションアクセスポイントの名前を入力します。
Authentication Method
サポートされている方式:ClientKey と RAMRole。このトピックでは ClientKey を例として使用します。
Encryption Password
ClientKey を暗号化するためのパスワード。パスワードは 8〜64 文字の長さで、数字、大文字と小文字の英字、特殊文字
~!@#$%^&*?_-のうち少なくとも 2 種類を含める必要があります。Validity Period
ClientKey の有効期間。
重要ClientKey の漏洩リスクを低減するために、有効期間を 1 年に設定することを推奨します。サービスの中断を避けるために、有効期限が切れる前に ClientKey をローテーションする必要があります。詳細については、「ClientKey のローテーション」をご参照ください。
権限ポリシー
作成した権限ポリシーを選択します。
Description
アプリケーションアクセスポイントの説明を入力します。
OK をクリックします。ブラウザによって ClientKey が自動的にダウンロードされます。ClientKey には次のファイルが含まれます:
Credential (ClientKeyContent): デフォルトのファイル名は
clientKey_****.jsonです。認証情報パスワード (ClientKeyPassword): デフォルトのファイル名は
clientKey_****_Password.txtです。
OpenAPI を使用したアプリケーションアクセスポイントの作成
CreateNetworkRule オペレーションを呼び出して、KMS へのアクセスが許可されるプライベート IP アドレスまたは CIDR ブロックを設定します。
CreatePolicy オペレーションを呼び出して、アプリケーションがアクセスできるキーとシークレットを指定し、ネットワークアクセスルールをバインドします。
CreateApplicationAccessPoint オペレーションを呼び出して、認証方式を設定し、権限ポリシーをバインドします。
CreateClientKey オペレーションを呼び出して、ClientKey の暗号化パスワードと有効期間を設定し、アプリケーションアクセスポイントをバインドします。
Terraform を使用したアプリケーションアクセスポイントの作成
詳細については、「Terraform を使用したアプリケーションアクセスポイントの作成」をご参照ください。
関連操作
アプリケーションアクセスポイントが KMS インスタンスにスコープされている場合、SDK 統合中にインスタンス CA 証明書と KMS インスタンスエンドポイントを設定する必要があります。スコープが共有 KMS ゲートウェイの場合は、この設定は不要です。
KMS インスタンス CA 証明書の取得
KMS インスタンスには組み込みの SSL/TLS 証明書があり、認証と暗号化通信に HTTPS プロトコルを使用します。インスタンス CA 証明書を使用して、インスタンスの SSL/TLS 証明書の有効性を検証します。この検証では、証明書が正しい CA によって発行されたか、有効期間内であるか、KMS インスタンスエンドポイントに対応しているかを確認します。
KMS インスタンスは TLS 1.2 のみをサポートします。
インスタンス管理 ページで、ソフトウェアキー管理 または ハードウェアキー管理 タブをクリックし、対象の KMS インスタンスを選択します。
インスタンス ID をクリックするか、[操作] 列の Details をクリックします。Details ページの Instance CA Certificate セクションで、ダウンロード をクリックし、証明書を安全に保存します。
説明ダウンロードされた CA 証明書ファイルのデフォルト名は
PrivateKmsCA_kst-******.pemです。
KMS インスタンスエンドポイントの取得
インスタンス管理 ページで、ソフトウェアキー管理 または ハードウェアキー管理 タブをクリックし、対象の KMS インスタンスを選択します。
インスタンス ID をクリックして詳細ページに移動し、インスタンス VPC エンドポイント を表示します。
KMS インスタンスエンドポイントを取得するには、インスタンス VPC エンドポイント の値から
https://を削除します。
関連ドキュメント
使用しなくなったアプリケーションアクセスポイントは削除することを推奨します。詳細については、「アプリケーションアクセスポイントの管理」をご参照ください。
1 年以上使用している ClientKey はローテーションすることを推奨します。詳細については、「ClientKey のローテーション」をご参照ください。
ClientKey の有効期限が近づくと、KMS はアラートイベントを送信します。これらのイベントを速やかに監視し、対応する必要があります。詳細については、「アラートイベント」をご参照ください。