効率的で高品質なサービスを提供するには、特定のリージョンとゾーンにアップグレードと改善が必要です。 移行通知を受け取った場合は、できるだけ早い機会にキー管理サービス (KMS) キーとシークレットを移行する必要があります。 このトピックでは、KMSのシークレットをリージョン間で移行する方法について説明します。
一般的な秘密
KMSインスタンスでジェネリックシークレットを移行する場合は、移行先リージョンでKMSインスタンスを購入し、バックアップと復元を使用してシークレットを移行する必要があります。 詳細については、「バックアップ」をご参照ください。 KMSインスタンスの外部にジェネリックシークレットを移行する場合は、ソースリージョンのジェネリックシークレットに関する情報を照会してから、ターゲットリージョンで同じ情報を持つジェネリックシークレットを作成する必要があります。
KMSの旧バージョンでは、KMSインスタンスを購入する必要なしにジェネリックシークレットを作成できます。 このタイプのジェネリックシークレットは、KMSインスタンス外のシークレットと見なされます。 KMS 3.0では、ジェネリックシークレットを作成する前にKMSインスタンスを購入する必要があります。
使用上の注意
シークレットの移行中は、移行が完了してソースリージョンのシークレットを削除するまで、ソースリージョンのシークレットに対して操作を実行しないでください。 たとえば、秘密のメタデータを変更したり、PutSecretValue操作を呼び出して秘密のバージョンを作成したりしないでください。
移行が完了した後、シークレットの作成時間とシークレットバージョンの作成時間は、ソースリージョンとターゲットリージョンで異なります。 ただし、この不一致はサービスには影響しません。
手順
ソースリージョンで管理するシークレットの詳細を照会して保存します。
APIを呼び出して、シークレットのメタデータ、すべてのシークレットバージョン、各シークレットバージョンのシークレット値など、シークレットに関する情報を照会して保存できます。
API 操作
説明
DescribeSecret
説明FetchTagsをtrueに設定します。
シークレットに関するメタデータ情報を照会します。
ListSecretVersionIds
説明IncludeDeprecatedをtrueに設定します。
シークレットのすべてのシークレットバージョンを照会します。
レスポンスのVersionIdsで示されるIDは、作成時刻によってソートされません。 オンプレミスの作成時間でIDを並べ替えます。 たとえば、次の3つのバージョンが返されます。
バージョンv1。2023年1月1日に作成された初期バージョンで、ステータスは001です。
バージョンv2。2023年5月1日に作成され、ステータスはACSPreviousです。
バージョンv3。2023年11月1日に作成され、ステータスはACSCurrentです。
GetSecretValue
シークレット値を照会します。 各秘密バージョンは秘密値に対応する。 各シークレットバージョンのシークレット値とシークレット値タイプを照会する必要があります。
アプリケーションをターゲットリージョンに移行し、設定を変更します。
アプリケーションをターゲットリージョンに移行します。
アプリケーションの資格情報を作成します。
アプリケーションがソースリージョンのResource Access Management (RAM) ユーザーまたはRAMロールのAccessKeyペアを使用する場合は、RAMユーザーまたはRAMロールを作成し、AliyunKMSSecretAdminAccessポリシーをターゲットリージョンのRAMユーザーまたはRAMロールにアタッチします。 詳細については、「RAMユーザーの作成とRAMユーザーへのアクセス許可の付与」および「RAMロールの作成と必要なポリシーのロールへのアタッチ」をご参照ください。
アプリケーションがソースリージョンのアプリケーションアクセスポイント (AAP) のクライアントキーを使用する場合は、ターゲットリージョンにクライアントキーを作成します。 詳細については、「AAPの作成」をご参照ください。
説明AAPを作成する前に、KMSインスタンスを購入する必要があります。
アプリケーションのエンドポイントと資格情報の設定を変更します。
説明KMSエンドポイントは、KMSインスタンスエンドポイントとは異なります。 使用するSDKに基づいてエンドポイントを設定します。 エンドポイントの詳細については、「SDKリファレンス」をご参照ください。
ターゲットリージョンでシークレットを作成します。
KMSインスタンスを購入します。 詳細については、「インスタンスの選択」および「KMSインスタンスの購入と有効化」をご参照ください。
KMSインスタンスにキーを作成して、シークレットを暗号化します。 詳細については、「キーの使用開始方法」をご参照ください。
API操作を呼び出してシークレットを作成します。 メタデータ、すべてのシークレットバージョン、およびシークレットの各シークレットバージョンのシークレット値は、ソースリージョンとターゲットリージョンで同じである必要があります。
API
説明
CreateSecret
ジェネリックシークレットを作成します。
secretName、secretType、Tags、説明、およびExtendedConfig: ソースリージョンでDescribeSecret操作を呼び出して取得する値を入力します。
VersionId: ソースリージョンでListSecretVersionIds操作を呼び出して取得する初期バージョンを入力します。 この例では、v1が使用されます。
SecretDataとSecretDataType: ソースリージョンでGetSecretValue操作を呼び出して取得する初期バージョンのシークレット値とシークレット値の型を入力します。 この例では、初期バージョンはv1です。
PutSecretValue
すべての秘密のバージョンをシークレットに格納します。
シークレットが作成されると、初期バージョンはすでにシークレットに格納されています。 この場合、秘密の残りのバージョンのみを保存する必要があります。 この例では、v2とv3を格納する必要があります。
UpdateSecretVersionStage
すべての秘密バージョンのステータスを設定します。
この例では、v1のバージョンステータスは001に設定され、v2のバージョンステータスはACSPreviousに設定され、v3のバージョンステータスはACSCurrentに設定されます。
DescribeSecret操作を呼び出して、シークレットに関する情報がソースリージョンとターゲットリージョンで同じかどうかを確認します。
シークレットをアプリケーションに統合した後、アプリケーションが期待どおりに実行できるかどうかを確認します。
ソースリージョンでシークレットを使用する必要がなくなったことを確認したら、ソースリージョンのシークレットを削除します。 詳細については、「ジェネリックシークレットの管理と使用」をご参照ください。
説明ActionTrailを使用して、シークレットの最近の呼び出しを表示できます。 詳細については、「ActionTrailを使用したKMSイベントの照会」をご参照ください。 ActionTrailでサポートされているイベントの詳細については、「KMSのイベントの監査」をご参照ください。 シークレット関連のイベントには、GetSecretValue、DescribeSecret、ListSecretVersionIds、PutSecretValue、UpdateSecretVersionStage、UpdateSecretRotationPolicy、RestoreSecretが含まれます。
RAMシークレット
移行はサポートされていません。
RAMユーザーがKMSで作成できるシークレットは1つだけです。 ソースリージョンのRAMシークレットを削除してから、ターゲットリージョンにRAMシークレットを作成する必要があります。
KMSからRAMシークレットを削除する前に、RAMシークレットを使用しないようにしてください。
KMSからRAMシークレットを削除しても、関連するAccessKeyペアは削除されません。
ApsaraDB RDSシークレット
移行は必要ありません。
ApsaraDB RDSインスタンスはリージョン固有のリソースです。 必要なシークレットを移行する必要はありません。
ECSシークレット
移行は必要ありません。
ECS (Elastic Compute Service) インスタンスは、リージョン固有のリソースです。 必要なシークレットを移行する必要はありません。