ネットワーク・アクセス・ポリシーの管理
IBM Cloud® Hyper Protect Crypto Services インスタンスをセットアップしてから、Hyper Protect Crypto Services キー管理サービス API を使用してネットワーク・アクセス・ポリシーを管理します。
ネットワーク・アクセス・ポリシーを更新する前に、まずサービス・インスタンスを初期設定する必要があります。 手順については、IBM Cloud TKE CLI プラグインを使用したサービス・インスタンスの初期設定またはスマート・カードと管理ユーティリティーを使用したサービス・インスタンスの初期設定を参照してください。
ネットワーク・アクセスの違いについて詳しくは、ネットワーク・アクセス・ポリシーについてを参照してください。
ネットワークアクセスポリシーの更新Hyper Protect Crypto Services UI を使用したインスタンス
セキュリティ管理者として、グラフィカル インターフェースを使用してインスタンスのネットワーク アクセス ポリシーを更新する場合は、UI を使用できます。
ネットワーク・アクセス・ポリシーを private-only に設定した後は、Hyper Protect Crypto Services のアクションのために UI を使用することはできなくなります。 任意 UI の Hyper Protect Crypto Services 操作で、無許可エラー (HTTP ステータス・コード 401) が返されました。
Hyper Protect Crypto Services インスタンスを作成した後、以下のステップを実行して、ネットワーク・アクセス・ポリシーを作成します。
-
「メニュー」>**「リソース・リスト」**に移動し、リソースのリストを表示します。
-
IBM Cloud リソース・リストで、Hyper Protect Crypto Services のプロビジョン済みインスタンスを選択します。
-
選択したサービス・インスタンスの UI で、サイド・メニューの**「インスタンス・ポリシー (Instance policies)」**タブを選択します。
-
**「許可されたネットワーク」セクションでトラフィックの通過を許可するネットワークを選択し、「ポリシーの保存」**をクリックします。 デフォルトのネットワーク・ポリシーはパブリックおよびプライベートで、パブリック・ネットワークとプライベート・ネットワーク両方からのアクセスを許可します。
プライベートのみのネットワークが有効になっている場合、UI を使用してキーを表示または管理することはできません。 ただし、ネットワーク設定は後で API または CLI を使用して調整することはできます。
キー管理サービス API を使用した Hyper Protect Crypto Services インスタンスのネットワーク・アクセス・ポリシーの更新
セキュリティー管理者は、以下のエンドポイントへの PUT 呼び出しを行うことによって、Hyper Protect Crypto Services インスタンスのネットワーク・アクセス・ポリシーを更新します。 set および list インスタンス・ポリシーに関する以下の API リファレンスを参照してください。
https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/instance/policies?policy=allowedNetwork
-
ネットワーク・アクセス・ポリシーを変更するには、Hyper Protect Crypto Services インスタンスの 「マネージャー」 アクセス権限ポリシーが割り当てられている必要があります。 IAM (ID およびアクセス管理) 役割と Hyper Protect Crypto Services サービス・アクションとの対応については、 サービス・アクセス役割を参照してください。
-
Hyper Protect Crypto Services インスタンスに対してネットワーク・アクセス・ポリシーを更新にするには、以下の cURL コマンドを実行します。
$ curl -X PUT \ "https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/instance/policies?policy=allowedNetwork" \ -H "accept: application/vnd.ibm.kms.policy+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "content-type: application/vnd.ibm.kms.policy+json" \ -d '{ "metadata": { "collectionType": "application/vnd.ibm.kms.policy+json", "collectionTotal": 1 }, "resources": [ { "policy_type": "allowedNetwork", "policy_data": { "enabled": true, "attributes": { "allowed_network": "<access_type>" } } } ] }'次の表に従って、例の要求内の変数を置き換えてください。
表 1. インスタンスレベルでネットワークアクセスポリシーを設定するために必要な変数について説明します。 変数 説明 region必須。 地域の略語、例: us-southまたはeu-de、あなたの地理的エリアを表しますHyper Protect Crypto Servicesインスタンスが存在します。 詳細については、リージョナル・サービス・エンドポイントを参照してください。port必須。 API エンドポイントのポート番号。 IAM_token必須。 IBM Cloud アクセス・トークン。 Bearer 値を含む、 IAMトークンの全コンテンツを cURL 要求に組み込みます。 詳細については、アクセス・トークンのリトリーブを参照してください。instance_ID必須。 Hyper Protect Crypto Services サービス・インスタンスに割り当てられた固有 ID。 詳細については、インスタンス ID のリトリーブを参照してください。 enabled必須。 ネットワーク・アクセス・ポリシーを有効にするには、 trueに設定します。access_type必須。 Hyper Protect Crypto Services インスタンスに適用するネットワーク・アクセス・ポリシー。 受け入れ可能な値は、 public-and-privateまたはprivate-onlyです。 ネットワークアクセスポリシーがprivate-only、パブリック ネットワークからインスタンスにアクセスできず、UI を使用してキーを表示または管理することもできません。 ただし、後で API または CLI を使用してネットワーク設定を調整することは可能です。要求が成功すると、HTTP
204 No Content応答が返されます。これは、Hyper Protect Crypto Services インスタンスでネットワーク・アクセス・ポリシーが適用されるようになったことを示します。 サービスへの API リクエストは、設定したポリシーに制限されます。このポリシーは Hyper Protect Crypto Services インスタンスのみに適用されます。 ネットワーク・アクセス・ポリシーは特定の鍵には適用されません。
-
オプション: Hyper Protect Crypto Services インスタンスで使用可能なポリシーを参照して、ネットワーク・アクセス・ポリシーが作成されていることを確認します。
$ curl -X GET \ "https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/instance/policies?policy=allowedNetwork" \ -H "accept: application/vnd.ibm.kms.policy+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>"
Hyper Protect Crypto Services インスタンスのネットワーク・アクセス・ポリシーを CLI で更新する
Hyper Protect Crypto Services インスタンスのネットワーク・アクセス・ポリシーを、CLI を使用して更新することもできます。 詳しくは、 CLI リファレンスを参照してください。
キー管理サービス API を使用した Hyper Protect Crypto Services インスタンスのネットワーク・アクセス・ポリシーの無効化
セキュリティー管理者は、以下のエンドポイントへの PUT 呼び出しを行うことによって、Hyper Protect Crypto Services インスタンスのネットワーク・アクセス・ポリシーを無効にします。 set および list インスタンス・ポリシーに関する以下の API リファレンスを参照してください。
https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/instance/policies?policy=allowedNetwork
-
ネットワーク・アクセス・ポリシーを変更するには、Hyper Protect Crypto Services インスタンスの 「マネージャー」 アクセス権限ポリシーが割り当てられている必要があります。 IAM (ID およびアクセス管理) 役割と Hyper Protect Crypto Services サービス・アクションとの対応については、 サービス・アクセス役割を参照してください。
-
Hyper Protect Crypto Services インスタンスに対してネットワーク・アクセス・ポリシーを無効にするには、以下の cURL コマンドを実行します。
$ curl -X PUT \ "https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/instance/policies?policy=allowedNetwork" \ -H "accept: application/vnd.ibm.kms.policy+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "content-type: application/vnd.ibm.kms.policy+json" \ -d '{ "metadata": { "collectionType": "application/vnd.ibm.kms.policy+json", "collectionTotal": 1 }, "resources": [ { "policy_type": "allowedNetwork", "policy_data": { "enabled": false, "attributes": { "allowed_network": "private-only" } } } ] }'次の表に従って、例の要求内の変数を置き換えてください。
表 2. インスタンスレベルでネットワークアクセスポリシーを無効にするために必要な変数について説明します。 変数 説明 region必須。 地域の略語、例: us-southまたはeu-de、あなたの地理的エリアを表しますHyper Protect Crypto Servicesインスタンスが存在します。 詳細については、リージョナル・サービス・エンドポイントを参照してください。port必須。 API エンドポイントのポート番号。 IAM_token必須。 IBM Cloud アクセス・トークン。 Bearer 値を含む、 IAMトークンの全コンテンツを cURL 要求に組み込みます。 詳細については、アクセス・トークンのリトリーブを参照してください。instance_ID必須。 Hyper Protect Crypto Services サービス・インスタンスに割り当てられた固有 ID。 詳細については、インスタンス ID のリトリーブを参照してください。 enabled必須。 に設定 falseネットワーク アクセス ポリシーを削除します。つまり、ポリシーは適用されず、サービス インスタンスはパブリック ネットワーク アクセスとプライベート ネットワーク アクセスの両方が許可されるデフォルトの状態に戻ります。要求が成功すると、HTTP
204 No Content応答が返されます。これは、Hyper Protect Crypto Services インスタンスのネットワーク・アクセス・ポリシーが更新されたことを示します。 -
オプション: Hyper Protect Crypto Services インスタンスで暗号キーが誤って削除されたり、悪意を持って削除されたりすることを防止するための追加ポリシーです。
$ curl -X GET \ "https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/instance/policies?policy=allowedNetwork" \ -H "accept: application/vnd.ibm.kms.policy+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>"