

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

# KMS 키의 과거 사용 결정
<a name="monitoring-keys-determining-usage"></a>

모니터링 및 감사를 위해 KMS 키가 과거에 어떻게 사용되었는지 알고 싶을 수 있습니다. 예를 들어 삭제를 위해 KMS 키를 비활성화하거나 예약하기 전에 KMS 키가 여전히 활성 상태로 사용되는지 확인하거나 계정에서 미사용 키를 식별할 수 있습니다. 다음 전략은 KMS 키의 과거 사용량을 결정하는 데 도움이 될 수 있습니다.

**주의**  
과거 사용량을 결정하기 위한 이러한 전략은 AWS 보안 주체 및 AWS KMS 운영에만 유효합니다. 에 대한 API 호출을 포함하지 않는 키의 사용을 감지할 수 없습니다 AWS KMS. 대칭 KMS 키에서 데이터 키가 생성된 후 외부에서 로컬 암호화 또는 복호화에 대한 후속 사용은 마지막 사용 정보에 반영 AWS KMS 되지 않습니다. 마찬가지로 이러한 전략은 외부에서 비대칭 KMS 키의 퍼블릭 키 사용을 감지할 수 없습니다 AWS KMS. 암호를 해독할 수 없는 암호화 텍스트를 만드는 등 퍼블릭 키 암호화에 사용되는 비대칭 KMS 키를 삭제할 때의 특별한 위험에 대한 자세한 내용은 [Deleting asymmetric KMS keys](deleting-keys.md#deleting-asymmetric-cmks) 단원을 참조하십시오.

**Topics**
+ [KMS 키 권한 확인을 통해 사용 가능 범위 파악](#monitoring-keys-usage-key-permissions)
+ [KMS 키로 수행된 마지막 암호화 작업 검사](#examine-last-usage)
+ [AWS CloudTrail 로그를 검사하여 과거 사용량 확인](#deleting-keys-usage-cloudtrail)

## KMS 키 권한 확인을 통해 사용 가능 범위 파악
<a name="monitoring-keys-usage-key-permissions"></a>

현재 KMS 키에 액세스할 수 있는 사용자 또는 대상을 결정하면 KMS 키가 얼마나 널리 사용되고 있는지, 여전히 필요한지 판단하는 데 도움이 될 수 있습니다. 현재 KMS 키에 액세스할 수 있는 사용자 또는 대상을 확인하려면 섹션을 참조하세요[에 대한 액세스 결정 AWS KMS keys](determining-access.md).

## KMS 키로 수행된 마지막 암호화 작업 검사
<a name="examine-last-usage"></a>

AWS KMS 는 연결된 CloudTrail 이벤트 ID와 함께 각 KMS 키로 수행된 마지막으로 성공한 암호화 작업에 대한 사용 정보를 제공합니다. 이렇게 하면 사용되지 않는 KMS 키를 쉽게 식별할 수 있습니다. 키 정책에서 [kms:TrailingDaysWithoutKeyUsage](conditions-kms.md#conditions-kms-trailing-days-without-key-usage) 조건 키를 사용하여 최근에 사용한 키가 실수로 비활성화되거나 삭제 예약되지 않도록 할 수도 있습니다.

 AWS Management Console AWS CLI또는 AWS KMS API를 사용하여 KMS 키로 마지막으로 성공한 암호화 작업을 볼 수 있습니다.

**참고**  
특정 AWS 서비스는 데이터 보호를 위해 KMS 키에 의존하는 리소스를 생성하지만 해당 키에 대한 암호화 작업은 자주 호출하지 않습니다. 예를 들어 Amazon EC2 서비스는 볼륨이 인스턴스에 연결된 경우에만를 호출 AWS KMS 하여 암호화된 Amazon EBS 볼륨의 데이터 키를 해독합니다. 이러한 경우 KMS 키를 삭제할 수 있는지 확인하기 위해 마지막 사용 정보에만 의존해서는 안 됩니다. Amazon EBS 볼륨을 보호하는 KMS 키가 삭제되면 이미 연결된 Amazon EBS 볼륨이 중단되지 않지만 암호화된 Amazon EBS 볼륨을 다른 Amazon EC2 인스턴스에 연결하려는 후속 시도는 실패합니다.

### 사용량 추적 기간 이해
<a name="understanding-tracking-period"></a>

AWS KMS 는 각 KMS 키로 마지막으로 성공한 암호화 작업만 추적합니다. 암호화 작업이 발생하는 시간과 사용량이 기록되는 시간 사이에 최대 1시간의 지연이 있을 수 있습니다.

KMS 키의 마지막 사용 정보를 확인하면 응답에 추적 시작 날짜가 포함됩니다. 는가 해당 키에 대한 암호화 활동을 기록하기 AWS KMS 시작한 날짜`TrackingStartDate`입니다. 이 날짜를 키 생성 날짜와 함께 사용하여 키 생성 날짜와 추적 시작 날짜를 비교하여 사용 기록을 확인합니다.
+ 마지막 사용 정보가 **있는** 경우 추적이 시작된 이후 암호화 작업에 키가 사용된 것입니다. 응답에는 작업 유형, 타임스탬프 및 관련 AWS CloudTrail 이벤트 ID가 포함됩니다.
+ 마지막 사용 정보가 **비어** 있으면 추적이 시작된 이후 키에 기록된 암호화 작업이 없는 것입니다. 키의 생성 날짜를와 비교하여 이것이 무엇을 의미하는지 `TrackingStartDate` 확인합니다.
  + *에서 또는 이후에* 키가 생성된 경우 `TrackingStartDate` 키는 생성된 이후 암호화 작업에 사용되지 않습니다.
  + *이전에* 키가 생성된 경우 추적`TrackingStartDate`이 시작된 이후 사용 중인 키에 대한 레코드가 없습니다. 그러나 추적이 시작되기 전에 키가 사용되었을 수 있습니다. 키가 이전에 사용되었는지 확인하려면 과거 AWS CloudTrail 로그를 검사합니다.

**주의**  
사용하지 않는 키를 삭제할 때 마지막 사용 정보에만 의존하지 마십시오. 대신 먼저 [키를 비활성화](enabling-keys.md)하고 비활성화된 상태에서 키를 사용하려는 시도를 나타내는 `DisabledException` 항목이 있는지 모니터링합니다 AWS CloudTrail . 이를 통해 잠재적 종속성과 워크로드 장애를 식별할 수 있습니다.

### 추적된 암호화 작업
<a name="tracked-crypto-operations"></a>

마지막 사용 정보를 보고하기 위해 다음과 같은 성공적인 암호화 작업만 추적되고 기록됩니다. 비암호화 작업은 제외됩니다.
+ `Decrypt`
+ `DeriveSharedSecret`
+ `Encrypt`
+ `GenerateDataKey`
+ `GenerateDataKeyPair`
+ `GenerateDataKeyPairWithoutPlaintext`
+ `GenerateDataKeyWithoutPlaintext`
+ `GenerateMac`
+ `ReEncrypt`
+ `Sign`
+ `Verify`
+ `VerifyMac`

### 기타 고려 사항
<a name="last-usage-considerations"></a>

사용 정보를 사용할 때는 다음 사항에 유의하세요.
+ **다중 리전 KMS 키** - 다중 리전 KMS 키의 경우 기본 키와 복제본 키는 마지막 사용 정보를 독립적으로 추적합니다. 다중 리전 키 세트의 각 키는 자체 마지막 사용 정보를 유지합니다.
+ **ReEncrypt 작업** - `ReEncrypt` 작업은 복호화를 위한 소스 키와 암호화를 위한 대상 키라는 두 개의 키를 사용합니다. 마지막 사용 정보는 각 키 소유자 계정의 CloudTrail 이벤트 ID와 함께 두 키에 대해 독립적으로 기록됩니다.

다음 방법을 사용하여 마지막 사용 정보를 볼 수 있습니다.

### AWS KMS 콘솔 사용
<a name="key-last-usage-using-console"></a>

각 KMS 키의 세부 정보 페이지에서 KMS 키로 마지막으로 성공한 암호화 작업을 볼 수 있습니다. KMS 키의 세부 정보 페이지를 보는 방법에 대한 절차는 섹션을 참조하세요[KMS 키 세부 정보 액세스 및 나열](finding-keys.md).

### AWS KMS API 사용
<a name="key-last-usage-using-api"></a>

[GetKeyLastUsage](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyLastUsage.html) 작업은 지정된 KMS 키로 수행된 마지막 암호화 작업에 대한 사용 정보를 반환합니다. KMS 키를 식별하려면 [키 ID](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id) 또는 [키 ARN](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN)을 사용합니다.

예를 들어에 대한 다음 호출은 키 ID가 {{1234abcd-12ab-34cd-56ef-1234567890ab}}인 KMS 키에 대한 사용 정보를 `GetKeyLastUsage` 검색합니다.

```
$ aws kms get-key-last-usage --key-id "{{1234abcd-12ab-34cd-56ef-1234567890ab}}"
{
    "KeyCreationDate": 1773253425.56,
    "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "TrackingStartDate": 1773253425.56,
    "KeyLastUsage": {
        "Timestamp": 1773253497.0,
        "Operation": "Encrypt",
        "KmsRequestId": "040cce3e-9ef3-4651-b8cf-e47c9bafdc9b",
        "CloudTrailEventId": "2cfd5892-ea8c-4342-ad49-4b9594b06a8b"
    }
}
```

반대로를 호출하면 키 ID가 {{0987dcba-09fe-87dc-65ba-ab0987654321}}인 KMS 키에 대한 사용 정보가 `GetKeyLastUsage` 표시되지 않습니다.

```
$ aws kms get-key-last-usage --key-id "{{0987dcba-09fe-87dc-65ba-ab0987654321}}"
{
    "KeyCreationDate": 1672531200.0,
    "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321",
    "TrackingStartDate": 1773253425.56,
    "KeyLastUsage": {}
}
```

## AWS CloudTrail 로그를 검사하여 과거 사용량 확인
<a name="deleting-keys-usage-cloudtrail"></a>

KMS 키의 사용 기록을 사용하여 특정 KMS 키로 암호화된 사이퍼텍스트가 있는지 확인할 수 있습니다.

모든 AWS KMS API 활동은 AWS CloudTrail 로그 파일에 기록됩니다. KMS 키가 위치한 리전에서 [ CloudTrail 추적을 생성한](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html) 경우 CloudTrail 로그 파일을 검사하여 특정 KMS 키에 대한 모든 AWS KMS API 활동의 기록을 볼 수 있습니다. 추적이 없는 경우에도 [CloudTrail 이벤트 기록](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)에서 최근 이벤트를 볼 수 있습니다. 에서 CloudTrail을 AWS KMS 사용하는 방법에 대한 자세한 내용은 섹션을 참조하세요[를 사용하여 AWS KMS API 호출 로깅 AWS CloudTrail](logging-using-cloudtrail.md).

다음 예에서는 Amazon Simple Storage Service(Amazon S3)에 저장된 객체를 보호하는 용도로 KMS 키를 사용할 때 생성되는 CloudTrail 로그 항목을 보여 줍니다. 이 예에서 객체는 [KMS 키를 사용한 서버 측 암호화(SSE-KMS) 데이터 보호 기능](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)을 사용하여 Amazon S3에 업로드됩니다. SSE-KMS를 사용하여 Amazon S3에 객체를 업로드할 때 객체를 보호하는 데 사용할 KMS 키를 지정합니다. Amazon S3는 작업을 사용하여 객체에 AWS KMS [https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) 대한 고유한 데이터 키를 요청하며,이 요청 이벤트는 다음과 유사한 항목과 함께 CloudTrail에 로깅됩니다.

```
{
  "eventVersion": "1.02",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "AROACKCEVSQ6C2EXAMPLE:example-user",
    "arn": "arn:aws:sts::111122223333:assumed-role/Admins/example-user",
    "accountId": "111122223333",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
    "sessionContext": {
      "attributes": {
        "mfaAuthenticated": "false",
        "creationDate": "2015-09-10T23:12:48Z"
      },
      "sessionIssuer": {
        "type": "Role",
        "principalId": "AROACKCEVSQ6C2EXAMPLE",
        "arn": "arn:aws:iam::111122223333:role/Admins",
        "accountId": "111122223333",
        "userName": "Admins"
      }
    },
    "invokedBy": "internal.amazonaws.com"
  },
  "eventTime": "2015-09-10T23:58:18Z",
  "eventSource": "kms.amazonaws.com",
  "eventName": "GenerateDataKey",
  "awsRegion": "us-west-2",
  "sourceIPAddress": "internal.amazonaws.com",
  "userAgent": "internal.amazonaws.com",
  "requestParameters": {
    "encryptionContext": {"aws:s3:arn": "arn:aws:s3:::example_bucket/example_object"},
    "keySpec": "AES_256",
    "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
  },
  "responseElements": null,
  "requestID": "cea04450-5817-11e5-85aa-97ce46071236",
  "eventID": "80721262-21a5-49b9-8b63-28740e7ce9c9",
  "readOnly": true,
  "resources": [{
    "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "accountId": "111122223333"
  }],
  "eventType": "AwsApiCall",
  "recipientAccountId": "111122223333"
}
```

나중에 Amazon S3에서이 객체를 다운로드하면 Amazon S3는 지정된 KMS 키를 사용하여 객체의 데이터 키를 해독 AWS KMS 하라는 `Decrypt` 요청을에 보냅니다. 이렇게 하면 CloudTrail 로그 파일에 다음과 비슷한 항목이 포함됩니다.

```
{
  "eventVersion": "1.02",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "AROACKCEVSQ6C2EXAMPLE:example-user",
    "arn": "arn:aws:sts::111122223333:assumed-role/Admins/example-user",
    "accountId": "111122223333",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
    "sessionContext": {
      "attributes": {
        "mfaAuthenticated": "false",
        "creationDate": "2015-09-10T23:12:48Z"
      },
      "sessionIssuer": {
        "type": "Role",
        "principalId": "AROACKCEVSQ6C2EXAMPLE",
        "arn": "arn:aws:iam::111122223333:role/Admins",
        "accountId": "111122223333",
        "userName": "Admins"
      }
    },
    "invokedBy": "internal.amazonaws.com"
  },
  "eventTime": "2015-09-10T23:58:39Z",
  "eventSource": "kms.amazonaws.com",
  "eventName": "Decrypt",
  "awsRegion": "us-west-2",
  "sourceIPAddress": "internal.amazonaws.com",
  "userAgent": "internal.amazonaws.com",
  "requestParameters": {
    "encryptionContext": {"aws:s3:arn": "arn:aws:s3:::example_bucket/example_object"}},
  "responseElements": null,
  "requestID": "db750745-5817-11e5-93a6-5b87e27d91a0",
  "eventID": "ae551b19-8a09-4cfc-a249-205ddba330e3",
  "readOnly": true,
  "resources": [{
    "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "accountId": "111122223333"
  }],
  "eventType": "AwsApiCall",
  "recipientAccountId": "111122223333"
}
```

이러한 로그 항목을 평가하여 특정 KMS 키의 과거 사용량을 파악할 수 있고, 이렇게 하면 해당 항목을 삭제할지 말지 결정하는 데 도움이 될 수 있습니다.

CloudTrail 로그 파일에 AWS KMS API 활동이 표시되는 방법에 대한 추가 예제를 보려면 단원을 참조하십시오[를 사용하여 AWS KMS API 호출 로깅 AWS CloudTrail](logging-using-cloudtrail.md). CloudTrail에 대한 자세한 내용은 [AWS CloudTrail 사용 설명서](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)를 참조하십시오.