キーマテリアルをマルチリージョンキーにインポートする - AWS Key Management Service

キーマテリアルをマルチリージョンキーにインポートする

独自のキーマテリアルをマルチリージョン対称暗号化キーにインポートすることができます。独自のキーマテリアルを使用して作成するマルチリージョンキーは相互運用可能です。関連するマルチリージョンキーを使用してあるリージョンでデータを暗号化し、別のリージョンでデータを復号できます。

ただし、キーマテリアルを管理する必要があります。

  • AWS KMS は、インポートされたキーマテリアルを持つプライマリキーからそのレプリカキーに、キーマテリアルをコピーまたは同期しません。同じキーマテリアルを、関連するプライマリキーとレプリカキーにインポートする必要があります。

  • キーマテリアルをインポートするときに、各キーの有効期限モデルと有効期限を個別に設定します。関連するマルチリージョンキーに対して、同じ、または異なる有効期限モデルと有効期限を設定できます。キーマテリアルが有効期限に近づいた場合は、影響を受けるマルチリージョンキーにそのキーマテリアルを再インポートする必要があります。

    関連するマルチリージョンキーのキーステータスは、お互いに独立しています。例えば、プライマリキーのキーマテリアルが有効期限切れになっても、そのレプリカキーは影響を受けません。

同じレプリカキーのリージョン要件が、インポートされたキーマテリアルを持つマルチリージョンキーに適用されます。同じキーマテリアルを単一リージョンキーまたは関連のないマルチリージョンキーにインポートした場合、これらの KMS キーは相互運用できません。

インポートされたキーマテリアルを持つマルチリージョンキーは、EXTERNAL のキーマテリアルオリジンを持つ対称 KMS キーである必要があります。AWS KMS は、非対称 KMS キーまたはカスタムキーストアの KMS キーのインポートされたキーマテリアルをサポートしません。インポートされたキーマテリアルを持つ KMS キーの自動キーローテーションを有効にすることもできません。

マルチリージョンの機能を除いて、インポートされたキーマテリアルを持つマルチリージョンキーは、インポートされたキーマテリアルを持つ他の KMS キーと同じです。インポートされたキーマテリアルを持つ単一リージョンキーを作成し、設定する方法の詳細については、インポートしたキーマテリアルについて を参照してください。

インポートされたキーマテリアルを持つすべての KMS キーが相互運用できない理由

インポートされたキーマテリアルを持つ単一リージョン KMS キーは、同じキーマテリアルを持つ場合でも相互運用できません。AWS KMS が KMS キーを使用してデータを暗号化する際は、キーメタデータの一部を暗号化テキストに暗号でバインドします。これにより、暗号化テキストが保護され、データを暗号化した KMS キーのみがそのデータを復号できます。

マルチリージョンキーは相互運用できるように設計されています。キーマテリアルが同じであるだけでなく、キー ID と他のメタデータも同じです。したがって、それらが生成する暗号化テキストは、関連する任意のマルチリージョンキーで復号できます。結果として、マルチリージョンキーの信頼プロパティは、単一リージョンキーの信頼プロパティとは異なります。ただし、一部のお客様にとって、複数のリージョンで復号する利点は、単一 AWS リージョン の 1 つの KMS キーの暗号化テキストによるセキュリティバリューを上回ります。

インポートされたキーマテリアルを持つプライマリキーを作成する

インポートされたキーマテリアルを持つプライマリキーを作成するには、キーマテリアルを持たないプライマリキーとして対称暗号化キーを作成することから始めます。次に、キーマテリアルをプライマリキーにインポートします。

キーマテリアルを持たないマルチリージョンのプライマリキーを作成する手順は、「キーマテリアルを持たない単一リージョン対称暗号化キーの作成」のための手順とほぼ同じです。唯一の違いは、マルチリージョンキーと外部キーマテリアルの両方を指定することです。

インポートされたキーマテリアルを持つマルチリージョンのプライマリキーを作成する許可は、AWS KMS キーマテリアルを持つマルチリージョンのプライマリキーを作成するために必要な許可 (IAM ポリシーの kms:CreateKey および iam:CreateServiceLinkedRole の許可) と同じです。kms:MultiRegionKeyType および kms:KeyOrigin 条件キーを使用して、インポートされたキーマテリアルを持つマルチリージョンのプライマリキーを作成するアクセス許可を許可または拒否できます。

AWS KMS コンソールでプライマリキーを作成するには、アドバンストオプションセクションの設定を使用します。[Key material origin (キーマテリアルのオリジン)] を [External (外部)] に設定します。[Multi-Region replication (マルチリージョンレプリケーション)] を [Allow this key to be replicated into other Regions (このキーを他のリージョンにレプリケートすることを許可する)] に設定します。KMS キー作成後にこれらのプロパティを変更することはできません。

API オペレーションを使用する際は、Origin および MultiRegion パラメータを使用して、外部キーマテリアルのオリジンを持つマルチリージョンキーを作成します。

$ aws kms create-key --origin EXTERNAL --multi-region true

結果として、キーマテリアルを持たない、キーステータスが PendingImport のマルチリージョンのプライマリキーが作成されます。

この KMS キーを有効にするには、公開キーとインポートトークンをダウンロードし、公開キーを使用してキーマテリアルを暗号化してから、キーマテリアルをインポートする必要があります。手順については、AWS KMS キーにキーマテリアルをインポートする を参照してください。

インポートされたキーマテリアルを持つレプリカキーを作成する

AWS KMS コンソールで、または AWS KMS API オペレーションを使用して、マルチリージョンのレプリカキーを作成できます。インポートされたキーマテリアルを持つマルチリージョンのプライマリキーをレプリケートするには、AWS KMS キーマテリアルを持つレプリカキーを作成するのと同じ手順を使用します。ただし、結果は異なります。レプリケーションプロセスは、プライマリキーと同じキーマテリアルを持つレプリカキーを返す代わりに、キーステータスが PendingImport の、キーマテリアルを持たないレプリカキーを返します。  レプリカキーを有効にするには、プライマリキーにインポートしたのと同じキーマテリアルをレプリカキーにインポートする必要があります。

キーマテリアルはレプリケートされませんが、AWS KMS は、プライマリキーと同じキー IDキー仕様キーの用途キーマテリアルのオリジンを持つレプリカキーを作成します。また、レプリカキーにインポートするキーマテリアルが、プライマリキーにインポートしたキーマテリアルと同一であることも保証されます。

インポートされたキーマテリアルを持つレプリカキーを作成するには

  1. インポートされたキーマテリアルを持つマルチリージョンのプライマリキーを作成します。

  2. 以下のいずれかを行ってください。

    AWS KMS コンソールで、インポートされたキーマテリアルを持つマルチリージョンのプライマリキーを選択します。次に、その [Regionality (リージョナリティー)] タブで、[Create new replica keys (新しいレプリカキーの作成)] を選択します。。手順については、レプリカキーを作成する (コンソール) を参照してください。

    または、ReplicateKey オペレーションを使用します。KeyId パラメータに、インポートされたキーマテリアルを持つマルチリージョンのプライマリキーのキー ID またはキー ARN を入力します。手順については、レプリカキーを作成する (AWS KMS API) を参照してください。

  3. 新しいレプリカキーごとに、公開キーとインポートトークンをダウンロードするステップを実行します。公開キーを使用してプライマリキーのキーマテリアルを暗号化し、プライマリキーのキーマテリアルをレプリカキーにインポートします。レプリカキーごとに、異なる公開キーとインポートトークンが必要です。

    レプリカキーにインポートしようとするキーマテリアルがプライマリキーと異なる場合、オペレーションは失敗します。AWS KMS では、有効期限モデルと有効期限の連携は不要ですが、マルチリージョンキーのビジネスルールを確立する必要があります。手順については、AWS KMS キーにキーマテリアルをインポートする を参照してください。

インポートされたキーマテリアルを持つキーをレプリケートする許可

インポートされたキーマテリアルを持つレプリカキーを作成するには、次のアクセス許可が必要です。

プライマリキーリージョンで:

  • kms:ReplicateKey をプライマリキーに (プライマリキーのリージョンで) 設定します。プライマリキーのキーポリシーまたは IAM ポリシーにこのアクセス許可を含めます。

レプリカキーリージョンで:

  • kms:CreateKey を IAM ポリシーで設定します。

  • kms:GetParametersForImport。レプリカキーのキーポリシーまたは IAM ポリシーにこのアクセス許可を含めることができます。

  • kms:ImportKeyMaterial。レプリカキーのキーポリシーまたは IAM ポリシーにこのアクセス許可を含めることができます。

  • kms:TagResource は、レプリケーション時にタグを割り当てるために必要です。レプリカリージョンの IAM ポリシーにこのアクセス許可を含めます。

  • kms:CreateAlias は、AWS KMS コンソールでキーをレプリケートするために必要です。詳細については、「エイリアスへのアクセスの制御」を参照してください。