

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 외부 키 저장소에 대한 액세스 제어
<a name="authorize-xks-key-store"></a>

표준 KMS 키와 함께 사용하는 [키 정책](key-policies.md), [IAM 정책](iam-policies.md) 및 [권한 부여](grants.md)와 같은 모든 AWS KMS 액세스 제어 기능은 외부 키 스토어의 KMS 키에 대해 동일한 방식으로 작동합니다. IAM 정책을 사용하여 외부 키 스토어를 생성하고 관리하는 API 작업에 대한 액세스를 제어할 수 있습니다. IAM 정책 및 키 정책을 사용하여 외부 키 스토어 AWS KMS keys 의에 대한 액세스를 제어합니다. AWS 조직의 [서비스 제어 정책과](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) [VPC 엔드포인트 정책을](https://docs.aws.amazon.com/vpc/latest/privatelink/interface-endpoints.html#edit-vpc-endpoint-policy) 사용하여 외부 키 스토어의 KMS 키에 대한 액세스를 제어할 수도 있습니다.

사용자와 역할에 수행할 가능성이 있는 작업에 필요한 권한만 제공하는 것이 좋습니다.

**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)이 있는 외부 키 스토어를 생성하려면 보안 주체에 다음 구성 요소를 생성할 수 있는 권한이 있어야 합니다.
+ 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 엔드포인트 서비스에 대한 ID 및 액세스 관리](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 키에도 유효합니다.

[암호화 작업](manage-cmk-keystore.md#use-cmk-keystore)을 위해 사용자 지정 키 스토어에서 KMS 키를 사용하는 보안 주체에게는 [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) 같은 암호화 작업을 KMS 키에서 수행할 수 있는 권한이 필요합니다. 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 정책은 KMS 키가 외부 키 스토어에 있는 경우 연결된 ID가 계정의 모든 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 액세스도 허용해야 합니다. 이렇게 하려면 [XKS AWS 계정 ID를 Amazon VPC 엔드포인트 서비스의 보안 주체로 허용 목록에](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) 또는 `RemoveAllowedPrincipals` 파라미터와 함께 [ModifyVpcEndpointServicePermissions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpointServicePermissions.html)를 사용합니다.

------
#### [ Cross AWS 계정 ]

VPC 엔드포인트 서비스를 다른이 소유한 경우 VPC 엔드포인트 서비스의 보안 **주체 허용** 목록에 AWS KMS 및 외부 키 스토어를 모두 추가 AWS 계정해야 합니다.

다음 예제에서는 [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를 생성, 업데이트 또는 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) 또는 `RemoveAllowedPrincipals` 파라미터와 함께 [ModifyVpcEndpointServicePermissions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpointServicePermissions.html)를 사용합니다.

------

## 외부 키 스토어 프록시 권한 부여(선택 사항)
<a name="xks-proxy-authorization"></a>

일부 외부 키 스토어 프록시는 외부 키 사용에 대한 권한 부여 요구 사항을 구현합니다. 외부 키 스토어 프록시는 특정 사용자가 특정 조건에서만 특정 작업을 요청할 수 있도록 하는 권한 부여 체계를 설계하고 구현하는 데 허용되지만 필수는 아닙니다. 예를 들어 사용자 A가 특정 외부 키로 암호화할 수는 있지만 복호화할 수는 없도록 프록시를 구성할 수 있습니다.

프록시 권한 부여는 모든 외부 키 스토어 프록시에가 AWS KMS 필요한 [SigV4-based 프록시 인증](keystore-external.md#concept-xks-credential)과 독립적입니다. 또한 외부 키 스토어 또는 해당 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>

이 가이드의 이전 버전에서는 *상호 전송 계층 보안*(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 확장 키 사용(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) 참조하세요.