AWS KMS 리소스에 대한 액세스 관리 - AWS Key Management Service

AWS KMS 리소스에 대한 액세스 관리

모든 AWS 리소스는 AWS 계정의 소유입니다. 리소스 생성 또는 액세스 권한은 해당 계정의 권한 정책에 따라 정의됩니다. 계정 관리자는 IAM 자격 증명(즉, 사용자, 그룹, 역할)에 권한 정책을 연결할 수 있고, 일부 서비스(예: AWS KMS)에서는 다른 종류의 리소스에 대한 권한 정책 연결도 지원합니다.

참고

계정 관리자(또는 관리자 사용자)는 관리자 권한이 있는 사용자입니다. 자세한 내용은 IAM 사용 설명서관리자 사용자 및 그룹 만들기를 참조하십시오.

권한을 관리할 때 권한을 받는 사용자, 받는 권한의 대상이 되는 리소스, 허용되는 특정 작업을 결정합니다.

AWS KMS 리소스 및 작업

AWS KMS에서 기본 리소스는 AWS KMS keys입니다. AWS KMS는 KMS 키에 대해 알기 쉬운 이름을 제공하는 독립 리소스인 별칭을 지원합니다. 일부 AWS KMS 작업에서는 별칭을 사용하여 KMS 키를 식별할 수 있습니다.

KMS 키 또는 별칭의 각 인스턴스에는 표준 형식의 고유한 Amazon 리소스 이름(ARN)이 있습니다. AWS KMS 리소스에서 AWS 서비스 이름은 kms입니다.

  • AWS KMS key

    ARN 형식:

    arn:AWS partition name:AWS service name:AWS 리전:AWS 계정 ID:key/key ID

    ARN 예:

    arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

  • 별칭

    ARN 형식:

    arn:AWS partition name:AWS service name:AWS 리전:AWS 계정 ID:alias/alias name

    ARN 예:

    arn:aws:kms:us-west-2:111122223333:alias/example-alias

AWS KMS는 AWS KMS 리소스를 처리하기 위한 API 작업을 제공합니다. AWS Management Console 및 AWS KMS API 작업에서 KMS 키를 식별하는 방법에 대한 자세한 내용은 키 식별자(KeyId) 단원을 참조하십시오. AWS KMS 작업 목록은 AWS Key Management Service API 참조 섹션을 확인하세요.

KMS 키에 대한 액세스 관리

KMS 키에 대한 액세스를 관리하는 주된 방법은 정책을 이용하는 것입니다. 정책은 어떤 보안 주체가 어떤 리소스에 액세스 할 수 있는지를 설명하는 문서입니다. IAM 자격 증명에 연결된 정책을 자격 증명 기반 정책 (또는 IAM 정책)이라 하고 다른 종류의 리소스에 연결된 정책을 리소스 기반 정책이라고 합니다. AWS KMS에서 리소스 기반 정책을 KMS 키에 연결해야 합니다. 이를 키 정책이라고 합니다. 모든 KMS 키에는 키 정책이 있습니다.

KMS 키에 대한 액세스를 다음과 같이 제어할 수 있습니다.

  • 키 정책 사용 – 키 정책을 사용하여 KMS 키를 제어해야 합니다. 키 정책만 사용하여 액세스를 제어할 수 있습니다. 즉 KMS 키에 대한 전체 액세스 범위가 단일 문서(키 정책)에 정의됩니다.

  • IAM 정책을 키 정책과 함께 사용 – 키 정책과 함께 IAM 정책과 함께 IAM 정책을 사용하여 KMS 키에 대한 액세스를 제어할 수 있습니다. 이러한 방식으로 액세스를 제어하면 IAM에서 IAM 자격 증명에 대한 모든 권한을 관리할 수 있습니다.

  • 키 정책과 함께 권한 부여 사용 – 키 정책과 함께 권한 부여를 사용하여 KMS 키에 대한 액세스를 허용할 수 있습니다. 이와 같이 액세스를 제어하면 키 정책에서 KMS 키에 대한 액세스를 허용하고 사용자가 다른 사람에게 액세스를 위임하도록 허용할 수 있습니다.

대부분의 AWS 서비스에서 IAM 정책이 서비스의 리소스에 대한 액세스를 제어하는 유일한 방법입니다. 일부 서비스는 IAM 정책을 보완하는 다른 액세스 제어 메커니즘 또는 리소스 기반 정책을 제공하지만, 일반적으로 선택 사항이며 이러한 서비스의 리소스에 대한 액세스는 IAM 정책으로만 제어할 수 있습니다. 하지만 AWS KMS에는 적용되지 않습니다. KMS 키에 대한 액세스를 허용하려면 키 정책만 사용하거나 IAM 정책 또는 권한 부여와 함께 사용해야 합니다. IAM 정책만으로는 KMS 키에 대한 액세스를 허용하기에 충분하지 않지만 키 정책과 함께 사용할 수 있습니다.

KMS 키는 해당 키가 생성된 AWS 계정에 속합니다. KMS 키를 생성하는 IAM 사용자는 키 소유자로 간주되지 않으며, 사용자가 생성한 KMS 키를 사용하거나 관리할 수 있는 권한이 자동으로 부여되지 않습니다. 다른 보안 주체와 마찬가지로 키 생성자는 키 정책, IAM 정책 또는 권한 부여를 통해 허가를 받아야 합니다. 그러나, kms:CreateKey 권한이 있는 보안 주체는 초기 키 정책을 설정하고 키를 사용하거나 관리할 권한을 자신에게 부여할 수 있습니다.

키 정책 사용에 대한 자세한 내용은 키 정책 단원을 참조하십시오.

IAM 정책 사용에 대한 자세한 내용은 IAM 정책 단원을 참조하십시오.

권한 부여 사용에 대한 자세한 내용은 AWS KMS에서 권한 부여 사용를 참조하십시오.

정책에서 권한 지정

AWS KMS는 API 작업 집합을 제공합니다. API 작업에 대한 액세스를 제어하기 위해 AWS KMS는 정책에서 지정할 수 있는 작업 집합을 제공합니다. 자세한 내용은 권한 참조 섹션을 참조하세요.

정책은 권한 집합을 설명한 문서입니다. 다음은 정책의 기본 요소입니다.

  • 리소스 – IAM 정책에서 Amazon 리소스 이름(ARN)을 사용하여 정책을 적용할 리소스를 지정합니다. 자세한 내용은 AWS KMS 리소스 및 작업 섹션을 참조하세요. 키 정책에서 리소스에 대해 "이 KMS 키"를 뜻하는 "*"를 사용할 수 있습니다. 키 정책은 연결된 KMS 키에만 적용됩니다.

  • 작업 – 작업을 이용해 허용하거나 거부할 API 작업을 지정합니다. 예를 들어 kms:Encrypt 작업은 AWS KMS Encrypt 작업에 해당합니다.

  • 효과 – 효과를 이용해 권한을 허용하거나 거절하기로 지정합니다. 명시적으로 리소스에 대한 액세스를 허용하지 않는 경우, 액세스는 묵시적으로 거부됩니다. 다른 정책에서는 액세스를 허용하더라도 리소스에 대한 액세스를 명시적으로 거부하여 사용자가 해당 리소스에 액세스하지 못하게 할 수도 있습니다.

  • 보안 주체 – IAM 정책에서는 AWS 보안 주체를 지정하지 않습니다. 대신, 정책이 연결되는 자격 증명(IAM 사용자, 그룹 또는 역할)이 묵시적인 보안 주체입니다. 키 정책에서는 권한이 적용되는 보안 주체(자격 증명)를 지정해야 합니다. AWS 계정(루트), IAM 사용자, IAM 역할 및 일부 AWS 서비스를 키 정책에서 보안 주체로 지정할 수 있습니다. 키 정책에서 IAM 그룹은 유효한 보안 주체가 아닙니다.

자세한 내용은 키 정책IAM 정책 섹션을 참조하세요.

정책에서 조건 지정

조건 키라는 다른 정책 요소를 이용해 정책이 적용될 환경을 지정할 수 있습니다. 예를 들어, 특정 날짜 이후에만 정책문이 적용되기를 원할 수 있습니다. 또는 API 요청에 특정 값이 있는지에 따라 정책 설명이 액세스를 제어하기를 원할 수 있습니다.

조건을 지정하려면 미리 정의된 조건 키를 사용합니다. 일부 조건 키는 AWS에 전체적으로 적용되고 일부는 AWS KMS에만 적용됩니다. 자세한 내용은 정책 조건 섹션을 참조하세요.

속성 기반 액세스 제어(ABAC)를 지원하기 위해 AWS KMS는 태그 및 별칭을 기반으로 KMS 키에 대한 액세스를 제어하는 조건 키를 제공합니다. 자세한 내용은 AWS KMS의 ABAC 섹션을 참조하세요.