# KMS 키

## 리소스 유형

`AWS.KMS.Key`

## 리소스 ID 형식

KMS 키의 경우 리소스 ID는 ARN입니다.

`arn:aws:kms:us-west-2:123456789012:key/1`

## 배경

KMS는 AWS의 다양한 서비스 전반과 애플리케이션 내에서 사용할 암호화 키를 생성하고 관리하는 서비스입니다.

## 필드

| 필드                   | 유형    | 설명                                  |
| -------------------- | ----- | ----------------------------------- |
| `KeyRotationEnabled` | `불리언` | 이 KMS 키에 대해 키 순환이 활성화되어 있는 경우       |
| `Policy`             | `문자열` | 이 키에 대한 접근 권한이 무엇인지 나타내는 JSON 정책 문서 |

## 예시

```javascript
{
    "AccountId": "123456789012",
    "Arn": "arn:aws:kms:us-west-2:123456789012:key/1",
    "CloudHsmClusterId": null,
    "CustomKeyStoreId": null,
    "DeletionDate": null,
    "Description": "다른 키가 정의되어 있지 않을 때 내 ACM 프라이빗 키를 보호하는 기본 마스터 키",
    "Enabled": true,
    "EncryptionAlgorithms": null,
    "ExpirationModel": null,
    "Id": "1",
    "KeyManager": "AWS",
    "KeyRotationEnabled": null,
    "KeySpec": "SYMMETRIC_DEFAULT",
    "KeyState": "Enabled",
    "KeyUsage": "ENCRYPT_DECRYPT",
    "MacAlgorithms": null,
    "MultiRegion": true,
    "MultiRegionConfiguration": {
	"MultiRegionKeyType": "PRIMARY",
	"PrimaryKey": {
		"Arn": "arn:aws:kms:us-west-2:123456789012:key/1",
		"Region": "us-west-2"
	},
	"ReplicaKeys": null
    },
    "Origin": "AWS_KMS",
    "PendingDeletionWindowInDays": null,
    "Policy": "{\n  \"Version\" : \"2012-10-17\",\n  \"Id\" : \"auto-acm-3\",\n  \"Statement\" : [ {\n    \"Sid\" : \"복호화 권한 생성을 허용\",\n    \"Effect\" : \"Allow\",\n    \"Principal\" : {\n      \"AWS\" : \"*\"\n    },\n    \"Action\" : \"kms:CreateGrant\",\n    \"Resource\" : \"*\",\n    \"Condition\" : {\n      \"StringEquals\" : {\n        \"kms:CallerAccount\" : \"123456789012\",\n        \"kms:ViaService\" : \"acm.us-east-1.amazonaws.com\"\n      },\n      \"ForAllValues:StringEquals\" : {\n        \"kms:GrantOperations\" : \"Decrypt\"\n      },\n      \"Bool\" : {\n        \"kms:GrantIsForAWSResource\" : \"true\"\n      }\n    }\n  }, {\n    \"Sid\" : \"암호화 권한 생성을 허용\",\n    \"Effect\" : \"Allow\",\n    \"Principal\" : {\n      \"AWS\" : \"*\"\n    },\n    \"Action\" : \"kms:CreateGrant\",\n    \"Resource\" : \"*\",\n    \"Condition\" : {\n      \"StringEquals\" : {\n        \"kms:CallerAccount\" : \"123456789012\",\n        \"kms:ViaService\" : \"acm.us-east-1.amazonaws.com\"\n      },\n      \"ForAllValues:StringEquals\" : {\n        \"kms:GrantOperations\" : [ \"Encrypt\", \"ReEncryptFrom\", \"ReEncryptTo\" ]\n      },\n      \"Bool\" : {\n        \"kms:GrantIsForAWSResource\" : \"true\"\n      }\n    }\n  }, {\n    \"Sid\" : \"키 소유자에게 허용된 작업\",\n    \"Effect\" : \"Allow\",\n    \"Principal\" : {\n      \"AWS\" : \"*\"\n    },\n    \"Action\" : [ \"kms:DescribeKey\", \"kms:ListGrants\", \"kms:RevokeGrant\", \"kms:GetKeyPolicy\" ],\n    \"Resource\" : \"*\",\n    \"Condition\" : {\n      \"StringEquals\" : {\n        \"kms:CallerAccount\" : \"123456789012\"\n      }\n    }\n  }, {\n    \"Sid\" : \"다른 키로의 재암호화 거부\",\n    \"Effect\" : \"Deny\",\n    \"Principal\" : {\n      \"AWS\" : \"*\"\n    },\n    \"Action\" : \"kms:ReEncrypt*\",\n    \"Resource\" : \"*\",\n    \"Condition\" : {\n      \"Bool\" : {\n        \"kms:ReEncryptOnSameKey\" : \"false\"\n      }\n    }\n  } ]\n}",
    "Region": "us-west-2",
    "ResourceId": "arn:aws:kms:us-west-2:123456789012:key/1",
    "ResourceType": "AWS.KMS.Key",
    "SigningAlgorithms": null,
    "Tags": null,
    "TimeCreated": "2019-01-01T00:00:00.000Z",
    "ValidTo": null
}
```
