기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
요청이 VPC에서 오거나 VPC 엔드포인트를 사용할 때 AWS KMS 리소스 및 작업에 대한 액세스를 제어할 수 있습니다. 이렇게 하려면 키 정책 또는 IAM 정책에서 다음 전역 조건 키 중 하나를 사용합니다.
-
aws:sourceVpce
조건 키를 사용해 VPC 엔드포인트를 기반으로 액세스 권한을 부여하거나 액세스를 제한합니다. -
aws:sourceVpc
조건 키를 사용해 프라이빗 엔드포인트를 호스팅하는 VPC를 기반으로 액세스를 부여하거나 제한합니다.
참고
VPC 엔드포인트를 기반으로 키 정책과 IAM 정책을 작성할 때 주의해야 합니다. 정책 설명에 특정 VPC 또는 VPC 엔드포인트에서 요청을 해야 하는 경우 사용자를 대신하여 AWS KMS 리소스를 사용하는 통합 AWS 서비스의 요청이 실패할 수 있습니다. 도움말은 AWS KMS 권한으로 정책에서 VPC 엔드포인트 조건 사용를 참조하십시오.
또한 요청이 Amazon VPC 엔드포인트에서 이루어지는 경우 aws:sourceIP
조건 키는 유효하지 않습니다. 요청을 VPC 엔드포인트로 제한하려면 aws:sourceVpce
또는 aws:sourceVpc
조건 키를 사용합니다. 자세한 내용은AWS PrivateLink 가이드의 VPC 엔드포인트 및 VPC 엔드포인트 서비스에 대한 ID 및 액세스 관리 섹션을 참조하세요.
이러한 전역 조건 키를 사용하여 AWS KMS keys (KMS 키), 별칭 및 특정 리소스에 의존하지 않는 CreateKey와 같은 작업에 대한 액세스를 제어할 수 있습니다.
예를 들어 다음 샘플 키 정책은 요청이 지정된 VPC 엔드포인트를 사용하는 경우에만 사용자가 KMS 키로 일부 암호화 작업을 수행하도록 허용합니다. 사용자가에 요청하면 요청의 AWS KMS VPC 엔드포인트 ID가 정책의 aws:sourceVpce
조건 키 값과 비교됩니다. 두 값이 일치하지 않는 경우 요청이 거부됩니다.
이와 같은 정책을 사용하려면 자리 표시자 AWS 계정 ID 및 VPC 엔드포인트 IDs 계정의 유효한 값으로 바꿉니다.
{
"Id": "example-key-1",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Enable IAM policies",
"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 계정의 유효한 값으로 바꿉니다.
{
"Id": "example-key-2",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Allow administrative actions from vpc-12345678
",
"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": "Allow key usage from vpc-2b2b2b2b
",
"Effect": "Allow",
"Principal": {"AWS": "111122223333
"},
"Action": [
"kms:Encrypt","kms:Decrypt","kms:GenerateDataKey*"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:sourceVpc": "vpc-2b2b2b2b
"
}
}
},
{
"Sid": "Allow read actions from everywhere",
"Effect": "Allow",
"Principal": {"AWS": "111122223333
"},
"Action": [
"kms:Describe*","kms:List*","kms:Get*"
],
"Resource": "*",
}
]
}