

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

# 外部キーストアへのアクセスの制御
<a name="authorize-xks-key-store"></a>

標準の KMS キーで使用するすべての AWS KMS アクセスコントロール機能 - [キーポリシー](key-policies.md)、[IAM ポリシー](iam-policies.md)、[許可](grants.md) - は、外部キーストアの KMS キーでも同じように機能します。IAM ポリシーを使うことで、外部キーストアを作成し管理するための API オペレーションへのアクセスを、制御できます。IAM ポリシーとキーポリシーを使用して、外部キーストア AWS KMS keys の へのアクセスを制御します。 AWS 組織および VPC エンドポイント[ポリシーのサービスコントロール](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)ポリシーを使用して、外部キーストアの KMS キーへのアクセスを制御することもできます。 [https://docs.aws.amazon.com/vpc/latest/privatelink/interface-endpoints.html#edit-vpc-endpoint-policy](https://docs.aws.amazon.com/vpc/latest/privatelink/interface-endpoints.html#edit-vpc-endpoint-policy)

ユーザーとロールには、それらが実行する可能性の高いタスクに必要なアクセス許可のみ、付与することが推奨されます。

**Topics**
+ [外部キーストアマネージャーの承認](#authorize-xks-managers)
+ [外部キーストアにおける KMS キーのユーザー認証](#authorize-xks-users)
+ [が外部キーストアプロキシと通信 AWS KMS することを許可する](#allowlist-kms-xks)
+ [外部キーストアプロキシ認可 (オプション)](#xks-proxy-authorization)
+ [mTLS 認証 (廃止)](#xks-mtls)

## 外部キーストアマネージャーの承認
<a name="authorize-xks-managers"></a>

外部キーストアを作成し管理するプリンシパルには、カスタムキーストアオペレーションへのアクセス許可が必要になります。次のリストは、 外部キーストアマネージャーに必要な最小限のアクセス許可です。カスタムキーストアは AWS リソースではないため、他の のプリンシパルの外部キーストアにアクセス許可を付与することはできません AWS アカウント。
+ `kms:CreateCustomKeyStore`
+ `kms:DescribeCustomKeyStores`
+ `kms:ConnectCustomKeyStore`
+ `kms:DisconnectCustomKeyStore`
+ `kms:UpdateCustomKeyStore`
+ `kms:DeleteCustomKeyStore`

[Amazon VPC エンドポイントサービス接続](choose-xks-connectivity.md#xks-vpc-connectivity)を使用して外部キーストアを作成し、VPC エンドポイントサービスが別の によって所有されている場合は AWS アカウント、次のアクセス許可も必要です。
+ `ec2:DescribeVPCEndpointServices`

外部キーストアを作成するプリンシパルは、外部キーストアコンポーネントを作成し構成するためのアクセス許可が必要になります。プリンシパルは、外部キーストアを自分のアカウントのみで作成できます。[VPC エンドポイントサービスに接続できる](choose-xks-connectivity.md#xks-vpc-connectivity)外部キーストアを作成するには、プリンシパルは、次のコンポーネントを作成するためのアクセス許可を持っている必要があります。
+ An Amazon VPC
+ パブリックサブネットおよびプライベートサブネット
+ Network Load Balancer とターゲットグループ
+ Amazon VPC エンドポイントサービス

詳細については、「[Amazon VPC の Identity and Access Management](https://docs.aws.amazon.com/vpc/latest/userguide/security-iam.html)」、「[VPC エンドポイントおよび VPC エンドポイントサービスの Identity and Access Management](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-iam.html)」、「[Elastic Load Balancing API のアクセス許可](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/elb-api-permissions.html)」を参照してください。

## 外部キーストアにおける KMS キーのユーザー認証
<a name="authorize-xks-users"></a>

外部キーストア AWS KMS keys で を作成および管理するプリンシパルには、 で KMS キーを作成および管理するプリンシパルと同じ[アクセス許可](create-keys.md#create-key-permissions)が必要です AWS KMS。外部キーストアの KMS キーの、[デフォルトのキーポリシー](key-policy-default.md)は、 AWS KMSの KMS キーの、デフォルトのキーポリシーと同一です。タグとエイリアスを使用して KMS キーへのアクセスを制御する[属性ベースのアクセス制御](abac.md) (ABAC) は、カスタムキーストアの KMS キーでも同様に有効です。

カスタムキーストアで暗号化オペレーションに KMS キーを使用するプリンシパルには、KMS キーで[暗号化オペレーション](manage-cmk-keystore.md#use-cmk-keystore) ([KMS: Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)など) を実行するアクセス許可が必要です。　 これらのアクセス権限は、IAM またはキーポリシーで指定できます。ただし、カスタムキーストアで KMS キーを使用するための追加のアクセス許可は必要ありません。

外部キーストアの KMS キーにのみ適用されるアクセス許可を設定するには、値が `EXTERNAL_KEY_STORE` の [`kms:KeyOrigin`](conditions-kms.md#conditions-kms-key-origin) ポリシー条件を使用します。この条件を使用すれば、[kms: CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) アクセス許可、または KMS キーリソースに固有のアクセス許可を制限できます。例えば、次の IAM ポリシーを使えば、アタッチされた ID は、KMS が外部キーストアにある限り、アカウントのすべての KMS キーで、指定されたオペレーションを呼び出すことができます。アクセス許可は、外部キーストアの KMS キーと の KMS キーに制限できますが AWS アカウント、アカウント内の特定の外部キーストアには制限できないことに注意してください。

```
{
  "Sid": "AllowKeysInExternalKeyStores",
  "Effect": "Allow",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:DescribeKey"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringEquals": {
      "kms:KeyOrigin": "EXTERNAL_KEY_STORE"
    }
  }
}
```

## が外部キーストアプロキシと通信 AWS KMS することを許可する
<a name="allowlist-kms-xks"></a>

AWS KMS は、指定した外部キー[ストアプロキシを介してのみ外部キー](keystore-external.md#concept-xks-proxy)マネージャーと通信します。 AWS KMS は、指定した外部キーストアプロキシ認証情報を使用して[署名バージョン 4 (SigV4) プロセス](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)を使用してリクエストに署名することで、プロキシを認証します。 [外部キーストアのプロキシ認証の認証情報](keystore-external.md#concept-xks-credential)外部キーストアプロキシに[パブリックエンドポイント接続](choose-xks-connectivity.md#xks-connectivity-public-endpoint)を使用している場合、 AWS KMS に追加のアクセス許可は必要ありません。

ただし、[VPC エンドポイントサービス接続](choose-xks-connectivity.md#xks-vpc-connectivity)を使用している場合は、Amazon VPC エンドポイントサービスへのインターフェイスエンドポイントを作成する AWS KMS アクセス許可を付与する必要があります。このアクセス許可は、外部キーストアプロキシが VPC にあるか、外部キーストアプロキシが他の場所にあるかにかかわらず必要ですが、VPC エンドポイントサービスを使用して通信します AWS KMS。

 AWS KMS がインターフェイスエンドポイントを作成できるようにするには、[Amazon VPC コンソール](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#add-remove-permissions)または [ModifyVpcEndpointServicePermissions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpointServicePermissions.html) オペレーションを使用します。次のプリンシパルにアクセス許可を付与します:`cks.kms.{{<region>}}.amazonaws.com`。

Amazon VPC エンドポイントサービスが外部キーストア (XKS) を所有している AWS アカウント 以外の によって AWS アカウント 所有されている場合は、VPC エンドポイントサービスへの XKS アクセスも許可する必要があります。これを行うには、Amazon VPC エンドポイントサービスの[プリンシパルとして XKS AWS アカウント ID を許可リストに登録します](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#add-remove-permissions)。

------
#### [ Same AWS アカウント ]

VPC エンドポイントサービスが外部キーストア AWS アカウント と同じ によって所有されている場合、VPC エンドポイントサービスのプリン**シパルを許可する**リスト AWS KMS に を追加する必要があります。

次の例では、 [https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-vpc-endpoint-service-permissions.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-vpc-endpoint-service-permissions.html) AWS CLI コマンドを使用して、 AWS KMS が米国西部 (オレゴン) (us-west-2) リージョンで指定された VPC エンドポイントサービスに接続できるようにします。このコマンドを使用する前に、Amazon VPC サービス ID と を設定の AWS リージョン 有効な値に置き換えます。

```
modify-vpc-endpoint-service-permissions
--service-id {{vpce-svc-12abc34567def0987}}
--add-allowed-principals '["cks.kms.{{us-west-2}}.amazonaws.com"]'
```

このアクセス許可を削除するには、[Amazon VPC コンソール](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#add-remove-permissions)か、[ModifyVpcEndpointServicePermissions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpointServicePermissions.html) を `RemoveAllowedPrincipals` パラメータと共に使用します。

------
#### [ Cross AWS アカウント ]

VPC エンドポイントサービスが別の によって所有されている場合は AWS アカウント、 AWS KMS と外部キーストアの両方を VPC エンドポイントサービスのプリン**シパル**を許可するリストに追加する必要があります。

次の例では、 [https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-vpc-endpoint-service-permissions.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-vpc-endpoint-service-permissions.html) AWS CLI コマンドを使用して、 AWS KMS と外部キーストア (XKS) の両方が、米国西部 (オレゴン) (us-west-2) リージョンで指定された VPC エンドポイントサービスに接続できるようにします。このコマンドを使用する場合は、設定上の有効な値で Amazon VPC サービス ID、 AWS リージョン、IAM プリンシパル ARN を置き換えてください。IAM プリンシパルは、XKS 所有者のプリンシパルに置き換える必要があります AWS アカウント。

この例では、 `arn:aws:iam::{{123456789012}}:role/{{cks_role}}` は XKS 所有者アカウントの IAM プリンシパルで、XKS の作成と更新に加えて、XKS を VPC エンドポイントサービスに接続するために使用されます。XKS 所有者アカウントのすべてのプリンシパルに VPC エンドポイントサービスへのアクセスを許可する場合は、`arn:aws:iam::{{123456789012}}:root` を指定できます。

```
modify-vpc-endpoint-service-permissions
--service-id {{vpce-svc-12abc34567def0987}}
--add-allowed-principals '["cks.kms.{{us-west-2}}.amazonaws.com", "arn:aws:iam::{{123456789012}}:role/{{cks_role}}"]'
```

このアクセス許可を削除するには、[Amazon VPC コンソール](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#add-remove-permissions)か、[ModifyVpcEndpointServicePermissions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpointServicePermissions.html) を `RemoveAllowedPrincipals` パラメータと共に使用します。

------

## 外部キーストアプロキシ認可 (オプション)
<a name="xks-proxy-authorization"></a>

外部キーストアプロキシの中には、外部キーを使用するための認可要件を実装しているものがあります。外部キーストアプロキシは、特定のユーザーが特定の条件下でのみ特定のオペレーションをリクエストすることを許可する、認可スキームの設計と実装が許可されていますが、必須ではありません。例えばプロキシは、ユーザー A に、特定の外部キーを使用した暗号化は許可するが、それを使用した復号は許可しないように設計されていることがあります。

プロキシ認可は、すべての外部キーストア[プロキシに必要な SigV4-basedプロキシ認証](keystore-external.md#concept-xks-credential)とは無関係です。 AWS KMS また、外部キーストアやその KMS キーに影響するオペレーションへのアクセスを認可する、キーポリシー、IAM ポリシー、グラントとも無関係です。

外部キーストアプロキシによる認可を有効にするには、発信者、KMS キー、 AWS KMS オペレーション、 AWS のサービス (存在する場合) など、各[プロキシ API リクエスト](keystore-external.md#concept-proxy-apis)にメタデータ AWS KMS を含めます。外部キープロキシ API のバージョン 1 (v1) のリクエストメタデータは、次のとおりです。

```
"requestMetadata": {
    "awsPrincipalArn": string,
    "awsSourceVpc": string, // optional
    "awsSourceVpce": string, // optional
    "kmsKeyArn": string,
    "kmsOperation": string,
    "kmsRequestId": string,
    "kmsViaService": string // optional
}
```

たとえば、特定のプリンシパル (`awsPrincipalArn`) からのリクエストを許可するようにプロキシを設定できますが、リクエストがプリンシパルに代わって特定の AWS のサービス () によって行われた場合のみです`kmsViaService`。

プロキシ認可に失敗すると、関連する AWS KMS オペレーションは失敗し、エラーの内容を説明するメッセージが表示されます。詳細については、「[プロキシの承認に関する問題](xks-troubleshooting.md#fix-xks-authorization) 」を参照してください。

## mTLS 認証 (廃止)
<a name="xks-mtls"></a>

このガイドの以前のバージョンでは、リクエストを認証するためのオプションのセカンダリ認証メカニズムとして*相互 Transport Layer Security* (mTLS) について説明していました AWS KMS。mTLS では、TLS チャネルを介して通信する (クライアントAWS KMS として、およびサーバーとして XKS プロキシとして) 両方の当事者が証明書を使用して相互に認証します。

ただし、[Chrome ルートプログラムポリシー (セクション 4.2.2)](https://googlechrome.github.io/chromerootprogram/policy-archive/policy-version-1-7/#422-pki-hierarchies-included-in-the-chrome-root-store) の変更により、Chrome ルートストアに含まれるパブリックに信頼されたルート CAs が、2026 年 6 月 15 日以降に clientAuth Extended Key Usage (EKU) 拡張機能を使用して証明書を発行することが禁止されます。その結果、 は [Amazon Trust Services](https://www.amazontrust.com/repository/) から mTLS に適したクライアント証明書を取得 AWS KMS できなくなります。2026 年 3 月 16 AWS KMS 日以降に で新しい外部キーストアを作成するために使用される XKS プロキシには、mTLS は必要ありません。2026 年 6 月 15 日以降、mTLS を要求するように設定された XKS プロキシは と通信できなくなります AWS KMS。お客様は、リクエストの送信元を検証するために SigV4 認証を使用する必要があります AWS KMS。詳細については、[「外部キーストアプロキシ認証情報](keystore-external.md#concept-xks-credential)」を参照してください。