マルチリージョンキーへのアクセスを制御する - AWS Key Management Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

マルチリージョンキーへのアクセスを制御する

マルチリージョンキーは、単一リージョンキーを使用するとより複雑な、コンプライアンス、災害対策、バックアップのシナリオで使用できます。ただし、マルチリージョンキーのセキュリティプロパティは単一リージョンキーのセキュリティプロパティとは大きく異なるため、マルチリージョンキーの作成、管理、使用の認可には注意が必要です。

注記

Resource フィールドのワイルドカード文字を含む既存の IAM ポリシーステートメントが、単一リージョンキーおよびマルチリージョンキーの両方に適用されるようになりました。単一リージョン KMS キーまたはマルチリージョンキーに制限するには、kms:MultiRegion 条件キーを使用します。

認可ツールを使用して、単一リージョンで十分なシナリオでのマルチリージョンキーの作成および使用を阻止します。プリンシパルが、必要とする AWS リージョン のみにマルチリージョンキーをコピーできるようにします。マルチリージョンキーのアクセス許可を、それらを必要とするプリンシパルおよびタスクに対してのみ付与します。

キーポリシー、IAM ポリシー、権限を使用して、IAM プリンシパルが AWS アカウント でマルチリージョンキーを管理および使用できるようにします。各マルチリージョンキーは、一意のキー ARN とキーポリシーを持つ独立したリソースです。各キーのキーポリシーを確立して維持し、新規および既存の IAM ポリシーが認可戦略を実装していることを確認する必要があります。

マルチリージョンキーの認可の原則

マルチリージョンキーのキーポリシーと IAM ポリシーを設計するときは、次の原則を考慮します。

  • キーポリシー — 各マルチリージョンキーは、固有のキーポリシーを持つ独立した KMS キーリソースです。関連するマルチリージョンキーセットの各キーに、同じ、または異なるキーポリシーを適用できます。キーポリシーはマルチリージョンキーの共有プロパティではありません。AWS KMS は関連するマルチリージョンキー間のキーポリシーをコピーまたは同期しません。

    AWS KMS コンソールでレプリカキーを作成するときに、コンソールは便宜上、プライマリキーの現在のキーポリシーを表示します。このキーポリシーの使用、編集、削除、置き換えを行うことができます。ただし、プライマリキーポリシーを変更せずに受け入れる場合でも、AWS KMS はポリシーを同期しません。例えば、プライマリキーのキーポリシーを変更しても、レプリカキーのキーポリシーは変わりません。

  • デフォルトキーポリシーCreateKeyおよび ReplicateKeyオペレーションを使用してマルチリージョンキーを作成する場合、リクエストでキーポリシーを指定しない限り、デフォルトキーポリシーが適用されます。これは、単一リージョンキーに適用されるのと同じデフォルトのキーポリシーです。

  • IAM ポリシー — すべての KMS キーと同様に、キーポリシーによって許可される場合にのみ、IAM ポリシーを使用してマルチリージョンキーへのアクセスを制御できます。IAM ポリシーは、すべての AWS リージョン にデフォルトで適用されます。ただし、aws:RequestedRegion などの条件キーを使用して、特定のリージョンへのアクセス許可を制限できます。

    プライマリキーおよびレプリカキーを作成するには、キーが作成されたリージョンに適用される、IAM ポリシーの kms:CreateKey アクセス許可をプリンシパルに付与する必要があります。

  • 権限 — AWS KMS 権限はリージョナルです。各権限は、1 つの KMS キーにアクセス許可を付与します。権限を使用して、マルチリージョンのプライマリキーまたはレプリカキーへのアクセス許可を付与できます。ただし、マルチリージョンキーが関連付けられている場合でも、単一の権限を使用して複数の KMS キーにアクセス許可を付与することはできません。

  • キー ARN — 各マルチリージョンキーは一意のキー ARN を持ちます。関連するマルチリージョンキーのキー ARN は、同じパーティション、アカウント、キー ID を持ちますが、リージョンが異なります。

    IAM ポリシーステートメントを特定のマルチリージョンキーに適用するには、そのキー ARN またはリージョンを含むキー ARN パターンを使用します。関連するすべてのマルチリージョンキーに IAM ポリシーステートメントを適用するには、次の例に示すように、ARN のリージョン要素でワイルドカード文字 (*) を使用します。

    { "Effect": "Allow", "Action": [ "kms:Describe*", "kms:List*" ], "Resource": { "arn:aws:kms:*::111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab" } }

    ポリシーステートメントを 内のすべてのマルチリージョンキーに適用するにはAWS アカウント、kms:MultiRegion policy 条件または固有のmrk-プレフィックスを含むキー ID パターンを使用できます。

  • サービスにリンクされたロール — マルチリージョンのプライマリキーを作成するプリンシパルには、iam:CreateServiceLinkedRole アクセス許可が必要です。

    関連するマルチリージョンキーの共有プロパティを同期するために、AWS KMS は IAM サービスリンクロールを引き受けます。AWS KMS はマルチリージョンのプライマリキーを作成するたびに、AWS アカウント でサービスリンクロールを作成します。(ロールが存在する場合は、AWS KMS は悪影響のないロールを再作成します)。ロールはすべてのリージョンで有効です。AWS KMS がサービスにリンクされたロールを作成 (または再作成) できるようにするには、マルチリージョンのプライマリキーを作成するプリンシパルに iam:CreateServiceLinkedRole アクセス許可が必要です。

マルチリージョンキー管理者およびユーザーを認可する

マルチリージョンキーを作成および管理するプリンシパルには、プライマリリージョンとレプリカリージョンで次のアクセス許可が必要です。

  • kms:CreateKey

  • kms:ReplicateKey

  • kms:UpdatePrimaryRegion

  • iam:CreateServiceLinkedRole

プライマリキーを作成する

マルチリージョンのプライマリキーを作成するには、プリンシパルにプライマリキーのリージョンで有効な IAM ポリシーの kms:CreateKey および iam:CreateServiceLinkedRole アクセス許可が必要です。これらのアクセス許可を持つプリンシパルは、アクセス許可が制限されない限り 単一リージョンキーおよびマルチリージョンキーを作成できます。

アクセスiam:CreateServiceLinkedRole許可によりAWS KMS、 はAWSServiceRoleForKeyManagementServiceMultiRegionKeysロールを作成して、関連するマルチリージョンキーの共有プロパティを同期できます。

例えば、この IAM ポリシーはプリンシパルに、任意のタイプの KMS キーの作成を許可します。

{ "Version": "2012-10-17", "Statement":{ "Action": [ "kms:CreateKey", "iam:CreateServiceLinkedRole" ], "Effect":"Allow", "Resource":"*" } }

マルチリージョンのプライマリキーを作成するアクセス許可を許可または拒否するには、kms:MultiRegion 条件キーを使用します。有効な値は、true (マルチリージョンキー) または false (単一リージョンキー) です。例えば、次の IAM ポリシーステートメントでは、kms:MultiRegion 条件キーを持つ Deny アクションを使用して、プリンシパルがマルチリージョンキーを作成しないようにします。

{ "Version": "2012-10-17", "Statement":{ "Action":"kms:CreateKey", "Effect":"Deny", "Resource":"*", "Condition": { "Bool": "kms:MultiRegion": true } } }

キーをレプリケートする

マルチリージョンのレプリカキーを作成するには、プリンシパルに次のアクセス許可が必要です。

  • kms:ReplicateKey プライマリキーのキーポリシーの アクセス許可。

  • kms:CreateKey レプリカキーリージョンで有効な IAM ポリシーの アクセス許可。

これらのアクセス許可を許可する場合は注意が必要です。これにより、プリンシパルは KMS キーと、その使用を認可するキーポリシーを作成できます。kms:ReplicateKey アクセス許可は AWS KMS 内のリージョンの境界を越えるキーマテリアルの転送も認可します。

マルチリージョンキーAWS リージョンをレプリケートできる を制限するには、kms:ReplicaRegion 条件キーを使用します。これは、kms:ReplicateKey アクセス許可のみを制限します。それ以外には影響を与えません。例えば、次のキーポリシーは、指定されたリージョンでのみプリンシパルにこのプライマリキーのレプリケーションを許可します。

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Administrator" }, "Action": "kms:ReplicateKey", "Resource": "*", "Condition": { "StringEquals": { "kms:ReplicaRegion": [ "us-east-1", "eu-west-3", "ap-southeast-2" ] } } }

プライマリリージョンを更新する

認可されたプリンシパルは、レプリカキーをプライマリキーに変換し、プライマリキーは以前のプライマリキーをレプリカキーに変更します。このアクションはプライマリリージョンの更新として知られています。。プライマリリージョンを更新するには、プリンシパルに両方のリージョンの kms:UpdatePrimaryRegion アクセス許可が必要です。キーポリシーまたは IAM ポリシーでこれらのアクセス許可を付与できます。

  • プライマリキーの kms:UpdatePrimaryRegion。このアクセス許可は、プライマリキーリージョンで有効である必要があります。

  • レプリカキーの kms:UpdatePrimaryRegion。このアクセス許可は、レプリカキーリージョンで有効である必要があります。

例えば、次のキーポリシーは、KMS キーのプライマリリージョンを更新する管理者のロールを引き受けることができるユーザーに付与します。この KMS キーを、このオペレーションでプライマリキーまたはレプリカキーにすることができます。

{ "Effect": "Allow", "Resource": "*", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Administrator" }, "Action": "kms:UpdatePrimaryRegion" }

プライマリキーをホストAWS リージョンできる を制限するには、kms:PrimaryRegion 条件キーを使用します。例えば、次の IAM ポリシーステートメントでは、新しいプライマリリージョンが、指定されたリージョンの 1 つである場合にのみ、プリンシパルは AWS アカウント でマルチリージョンキーのプライマリリージョンを更新できます。

{ "Effect": "Allow", "Action": "kms:UpdatePrimaryRegion", "Resource": { "arn:aws:kms:*:111122223333:key/*" }, "Condition": { "StringEquals": { "kms:PrimaryRegion": [ "us-west-2", "sa-east-1", "ap-southeast-1" ] } } }

マルチリージョンキーを使用および管理する

デフォルトでは、AWS アカウント でKMS キーを使用および管理するためのアクセス許可を持つプリンシパルは、マルチリージョンキーを使用および管理するためのアクセス許可も持っています。ただし、kms:MultiRegion 条件キーを使用して、単一リージョンキーのみ、またはマルチリージョンキーのみを許可できます。または、kms:MultiRegionKeyType 条件キーを使用して、マルチリージョンのプライマリキーのみ、またはレプリカキーのみを許可します。どちらの条件キーも、 CreateKey オペレーション、および Encrypt や などの既存の KMS キーを使用するオペレーションへのアクセスを制御しますEnableKey

以下の IAM ポリシーステートメントの例では、kms:MultiRegion 条件キーを使用して、プリンシパルがマルチリージョンキーを使用または管理できないようにします。

{ "Effect": "Deny", "Action": "kms:*", "Resource": "*", "Condition": { "Bool": "kms:MultiRegion": true } }

この IAM ポリシーステートメントの例では、kms:MultiRegionKeyType 条件を使用して、マルチリージョンレプリカキーのみでキー削除のスケジュールおよびキャンセルを実行することをプリンシパルに許可します。

{ "Effect": "Allow", "Action": [ "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": { "arn:aws:kms:us-west-2:111122223333:key/*" }, "Condition": { "StringEquals": "kms:MultiRegionKeyType": "REPLICA" } }

マルチリージョンキーの同期を AWS KMS に認可する

マルチリージョンキーをサポートするために、AWS KMS は IAM サービスリンクロールを使用します。このロールは、AWS KMS に共有プロパティの同期に必要なアクセス許可を付与します。AWS CloudTrail ログで共有プロパティのAWS KMS同期を記録するSynchronizeMultiRegionKey CloudTrail イベントを表示できます。

マルチリージョンキーのサービスリンクロールについて

サービスリンクロールは、ユーザーの代わりに他の AWS サービスを呼び出す 1 つの AWS サービスアクセス許可を付与する IAM ロールです。これは、複数の統合された AWS サービスの機能を、複雑な IAM ポリシーを作成したり維持したりせずに簡単に使用できるように設計されました。

マルチリージョンキーの場合、 は AWSKeyManagementServiceMultiRegionKeysServiceRolePolicyポリシーを使用してAWSServiceRoleForKeyManagementServiceMultiRegionKeysサービスにリンクされたロールAWS KMSを作成します。このポリシーは、ロールに kms:SynchronizeMultiRegionKey アクセス許可を付与します。これにより、マルチリージョンキーの共有プロパティを同期できます。

AWSServiceRoleForKeyManagementServiceMultiRegionKeys サービスにリンクされたロールは のみを信頼するためmrk.kms.amazonaws.com、 のみがこのサービスにリンクされたロールを引き受けAWS KMSることができます。このロールは、AWS KMS がマルチリージョンの共有プロパティを同期するために必要なオペレーションを制限します。AWS KMS に対して追加のアクセス許可は付与されません。例えば、AWS KMS に KMS キーを作成、レプリケート、削除するためのアクセス許可はありません。

AWS のサービスでサービスリンクロールを使用する方法の詳細については、IAM ユーザーガイドのサービスリンクロールの使用を参照してください。

サービスにリンクされたロールの作成

AWS KMS マルチリージョンキーを作成するAWS アカウントときに、ロールがまだ存在しない場合、 でAWSServiceRoleForKeyManagementServiceMultiRegionKeysサービスにリンクされたロールが自動的に作成されます。このサービスにリンクされたロールを直接作成または再作成することはできません。

サービスにリンクされたロールの説明を編集する

AWSServiceRoleForKeyManagementServiceMultiRegionKeys サービスにリンクされたロールでは、ロール名またはポリシーステートメントを編集することはできませんが、ロールの説明を編集することはできます。手順については、IAM ユーザーガイドサービスリンクロールの編集を参照してください。

サービスにリンクされたロールを削除する

AWS KMS はAWSServiceRoleForKeyManagementServiceMultiRegionKeys、サービスにリンクされたロールを から削除せずAWS アカウント、削除することもできません。ただし、 AWS KMS は、 AWS アカウントおよびリージョンにマルチリージョンキーがない限り、AWSServiceRoleForKeyManagementServiceMultiRegionKeysロールを引き受けたり、そのアクセス許可を使用したりしません。