

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

# 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 エンドポイントサービスのアイデンティティおよびアクセス管理](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 キーへのアクセスを制限することもできます。

次のサンプルキーポリシーでは、コマンドが `vpc-12345678` から送信される場合にのみ、KMS キーを管理するコマンドが許可されます。また、コマンドが `vpc-2b2b2b2b` から送信される場合にのみ、暗号化オペレーションで KMS キーを使用するコマンドが許可されます。ある VPC でアプリケーションが実行されていれば、このようなポリシーを使用できますが、管理機能のために 2 番目の切り離された 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": "*"
        }
    ]
}
```

------