キーマテリアルをマルチリージョンキーにインポートする
独自のキーマテリアルをマルチリージョン対称暗号化キーにインポートすることができます。独自のキーマテリアルを使用して作成するマルチリージョンキーは相互運用可能です。関連するマルチリージョンキーを使用してあるリージョンでデータを暗号化し、別のリージョンでデータを復号できます。
ただし、キーマテリアルを管理する必要があります。
-
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 コンソールで、インポートされたキーマテリアルを持つプライマリキーを作成するには、[Advanced options] (アドバンストオプション) セクションの設定を使用します。KMS キー作成後にこれらのプロパティを変更することはできません。
-
[Key material origin] (キーマテリアルのオリジン) を [External (Import key material)] (外部 (キーマテリアルのインポート)) に設定します。
-
[Multi-Region replication (マルチリージョンレプリケーション)] を [Allow this key to be replicated into other Regions (このキーを他のリージョンにレプリケートすることを許可する)] に設定します。
CreateKey オペレーションを使用して、インポートされたキーマテリアルを持つプライマリキーを作成するには、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、キー仕様、キーの用途、キーマテリアルのオリジンを持つレプリカキーを作成します。また、レプリカキーにインポートするキーマテリアルが、プライマリキーにインポートしたキーマテリアルと同一であることも保証されます。
インポートされたキーマテリアルを持つレプリカキーを作成するには
-
インポートされたキーマテリアルを持つマルチリージョンのプライマリキーを作成します。
-
以下のいずれかを行ってください。
AWS KMS コンソールで、インポートされたキーマテリアルを持つマルチリージョンのプライマリキーを選択します。次に、その [Regionality (リージョナリティー)] タブで、[Create new replica keys (新しいレプリカキーの作成)] を選択します。。手順については、「レプリカキーを作成する (コンソール)」を参照してください。
または、ReplicateKey オペレーションを使用します。
KeyId
パラメータに、インポートされたキーマテリアルを持つマルチリージョンのプライマリキーのキー ID またはキー ARN を入力します。手順については、「レプリカキーを作成する (AWS KMS API)」を参照してください。 -
新しいレプリカキーごとに、公開キーとインポートトークンをダウンロードするステップを実行します。公開キーを使用してプライマリキーのキーマテリアルを暗号化し、プライマリキーのキーマテリアルをレプリカキーにインポートします。レプリカキーごとに、異なる公開キーとインポートトークンが必要です。
レプリカキーにインポートしようとするキーマテリアルがプライマリキーと異なる場合、オペレーションは失敗します。AWS KMS では、有効期限モデルと有効期限の連携は不要ですが、マルチリージョンキーのビジネスルールを確立する必要があります。手順については、「AWS KMS キーにキーマテリアルをインポートする」を参照してください。
インポートされたキーマテリアルを持つキーをレプリケートする許可
インポートされたキーマテリアルを持つレプリカキーを作成するには、次のアクセス許可が必要です。
プライマリキーリージョンで:
-
kms:ReplicateKey をプライマリキーに (プライマリキーのリージョンで) 設定します。プライマリキーのキーポリシーまたは IAM ポリシーにこのアクセス許可を含めます。
レプリカキーリージョンで:
-
kms:CreateKey を IAM ポリシーで設定します。
-
kms:GetParametersForImport。レプリカキーのキーポリシーまたは IAM ポリシーにこのアクセス許可を含めることができます。
-
kms:ImportKeyMaterial。レプリカキーのキーポリシーまたは IAM ポリシーにこのアクセス許可を含めることができます。
-
kms:TagResource は、レプリケーション時にタグを割り当てるために必要です。レプリカリージョンの IAM ポリシーにこのアクセス許可を含めます。
-
kms:CreateAlias は、AWS KMS コンソールでキーをレプリケートするために必要です。詳細については、エイリアスへのアクセスの制御 を参照してください