

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

# VPC 엔드포인트를 사용하여 AWS KMS 리소스에 대한 액세스 제어
<a name="vpce-policy-condition"></a>

요청이 VPC에서 왔거나 VPC 엔드포인트를 사용하는 경우 AWS KMS 리소스 및 작업에 대한 액세스를 제어할 수 있습니다. 이렇게 하려면 [키 정책](key-policies.md) 또는 [IAM 정책](iam-policies.md)에서 다음 [전역 조건 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#AvailableKeys) 중 하나를 사용합니다.
+ `aws:sourceVpce` 조건 키를 사용해 VPC 엔드포인트를 기반으로 액세스 권한을 부여하거나 액세스를 제한합니다.
+ `aws:sourceVpc` 조건 키를 사용해 프라이빗 엔드포인트를 호스팅하는 VPC를 기반으로 액세스를 부여하거나 제한합니다.

**참고**  
VPC 엔드포인트를 기반으로 키 정책과 IAM 정책을 작성할 때 주의해야 합니다. 정책 설명에 특정 VPC 또는 VPC 엔드포인트의 요청이 필요한 경우 사용자를 대신하여 AWS KMS 리소스를 사용하는 통합 AWS 서비스의 요청이 실패할 수 있습니다. 도움말은 [AWS KMS 권한이 있는 정책에서 VPC 엔드포인트 조건 사용](conditions-aws.md#conditions-aws-vpce)를 참조하십시오.  
또한 요청이 [Amazon VPC 엔드포인트](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html)에서 이루어지는 경우 `aws:sourceIP` 조건 키는 유효하지 않습니다. 요청을 VPC 엔드포인트로 제한하려면 `aws:sourceVpce` 또는 `aws:sourceVpc` 조건 키를 사용합니다. 자세한 내용은AWS PrivateLink 가이드**의 [VPC 엔드포인트 및 VPC 엔드포인트 서비스에 대한 ID 및 액세스 관리](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-iam.html) 섹션을 참조하세요.

이러한 전역 조건 키를 사용하여 AWS KMS keys (KMS 키), 별칭 및 특정 리소스에 의존하지 않는 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)와 같은 작업에 대한 액세스를 제어할 수 있습니다.

예를 들어 다음 샘플 키 정책은 요청이 지정된 VPC 엔드포인트를 사용하는 경우에만 사용자가 KMS 키로 일부 암호화 작업을 수행하도록 허용합니다. 사용자가에 요청하면 요청 AWS KMS의 VPC 엔드포인트 ID가 정책의 `aws:sourceVpce` 조건 키 값과 비교됩니다. 두 값이 일치하지 않는 경우 요청이 거부됩니다.

이와 같은 정책을 사용하려면 자리 표시자 AWS 계정 ID 및 VPC 엔드포인트 IDs 계정의 유효한 값으로 바꿉니다.

------
#### [ JSON ]

****  

```
{
    "Id": "example-key-1",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EnableIAMpolicies",
            "Effect": "Allow",
            "Principal": {"AWS":["{{111122223333}}"]},
            "Action": ["kms:*"],
            "Resource": "*"
        },
        {
            "Sid": "Restrict usage to my VPC endpoint",
            "Effect": "Deny",
            "Principal": "*",
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*"
            ],
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                "aws:sourceVpce": "{{vpce-1234abcdf5678c90a}}"
                }
            }
        }

    ]
}
```

------

또한 `aws:sourceVpc` 조건 키를 사용하여 VPC 엔드포인트가 있는 VPC를 기반으로 KMS 키에 대한 액세스를 제한할 수 있습니다.

다음 샘플 키 정책은 KMS 키가 `vpc-12345678`에서 이루어진 경우에만 KMS 키를 관리하는 명령을 허용합니다. 또한 KMS 키를 사용하는 명령이 `vpc-2b2b2b2b`에서 이루어진 경우에만 암호화 작업에 사용할 수 있습니다. 애플리케이션이 하나의 VPC에서 실행 중이지만 관리 용도로 VPC를 하나 더 사용하는 경우, 이와 같은 정책을 사용할 수 있습니다.

이와 같은 정책을 사용하려면 자리 표시자 AWS 계정 ID 및 VPC 엔드포인트 IDs 계정의 유효한 값으로 바꿉니다.

------
#### [ JSON ]

****  

```
{
    "Id": "example-key-2",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAdministrativeActionsFromVPC",
            "Effect": "Allow",
            "Principal": {
                "AWS": "{{111122223333}}"
            },
            "Action": [
                "kms:Create*",
                "kms:Enable*",
                "kms:Put*",
                "kms:Update*",
                "kms:Revoke*",
                "kms:Disable*",
                "kms:Delete*",
                "kms:TagResource",
                "kms:UntagResource"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:sourceVpc": "{{vpc-12345678}}"
                }
            }
        },
        {
            "Sid": "{{AllowKeyUsageFromVPC2b2b2b2b}}",
            "Effect": "Allow",
            "Principal": {
                "AWS": "{{111122223333}}"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:GenerateDataKey*"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:sourceVpc": "{{vpc-2b2b2b2b}}"
                }
            }
        },
        {
            "Sid": "AllowReadActionsEverywhere",
            "Effect": "Allow",
            "Principal": {
                "AWS": "{{111122223333}}"
            },
            "Action": [
                "kms:Describe*",
                "kms:List*",
                "kms:Get*"
            ],
            "Resource": "*"
        }
    ]
}
```

------