AWS KMS에 대한 인증 및 액세스 제어 - AWS Key Management Service

AWS KMS에 대한 인증 및 액세스 제어

AWS KMS에 액세스하려면 AWS가 요청을 인증하는 데 사용할 수 있는 자격 증명이 필요합니다. 이러한 자격 증명에는 AWS 리소스(예: AWS KMS keys)에 액세스할 수 있는 권한이 있어야 합니다. 다음 단원에서는 리소스에 액세스할 수 있는지 대상을 제어하여 리소스를 보호할 수 있도록 AWS Identity and Access Management(IAM) 및 AWS KMS 사용 방법에 대한 세부 정보를 제공합니다.

Authentication

다음과 같은 유형의 자격 증명으로 AWS에 액세스할 수 있습니다.

  • AWS 계정 루트 사용자 – AWS에 가입할 때 AWS 계정 의 이메일 주소 및 암호를 입력합니다. 이 두 가지가 루트 자격 증명으로, 모든 AWS 리소스에 대한 전체 액세스를 제공합니다.

    중요

    보안상 관리자 사용자, 즉 AWS 계정 에 대한 전체 권한이 있는 IAM 사용자를 만들 때에만 루트 자격 증명을 사용하는 것이 좋습니다. 그런 다음 이 관리자 사용자를 사용하여 제한된 권한이 있는 다른 IAM 사용자 및 역할을 만들 수 있습니다. 자세한 정보는 IAM 사용 설명서개별 IAM 사용자 만들기(IAM 모범 사례)관리자 사용자 및 그룹 만들기를 참조하십시오.

  • IAM 사용자IAM 사용자는 특정 권한(예를 들어 KMS 키 사용 권한)을 보유한 AWS 계정 내 자격 증명입니다. IAM 사용자 이름과 암호를 사용하여 AWS Management Console, AWS 토론 포럼 또는 AWS Support 센터 같은 보안 AWS 웹 페이지에 로그인할 수 있습니다.

    사용자 이름과 암호 이외에 각 사용자별 액세스 키를 생성하여 사용자가 AWS SDK, AWS Command Line Interface 또는 AWS Tools for PowerShell를 사용하여 프로그래밍 방식으로 AWS 서비스에 액세스하도록 할 수도 있습니다. SDK와 명령줄 도구는 액세스 키를 사용하여 암호화 방식으로 API 요청에 서명합니다. AWS 도구를 사용하지 않는 경우 API 요청에 직접 서명해야 합니다. AWS KMS는 API 요청을 인증하기 위한 AWS 프로토콜인 서명 버전 4를 지원합니다. API 요청 인증에 대한 자세한 내용은 AWS 일반 참조서명 버전 4 서명 프로세스를 참조하십시오.

  • IAM 역할IAM 역할은 계정에 만들 수 있는, 특정 권한을 지닌 또 다른 IAM 자격 증명입니다. IAM 사용자와 유사하지만, 특정 개인과 연결되지 않습니다. IAM 역할을 사용하면 AWS 서비스 및 리소스에 프로그래밍 방식으로 액세스하는 임시 액세스 키를 얻을 수 있습니다. IAM 역할은 다음과 같은 상황에서 유용합니다.

    • 페더레이션 사용자 액세스 – IAM 사용자를 생성하는 대신 AWS Directory Service의 기존 사용자 자격 증명, 엔터프라이즈 사용자 디렉터리 또는 웹 자격 증명 공급자를 사용할 수 있습니다. 이러한 사용자를 연동 사용자라고 합니다. 페더레이션 사용자는 자격 증명 공급자를 통해 IAM 역할을 사용합니다. 연합된 사용자에 대한 자세한 정보는 IAM 사용 설명서연합된 사용자 및 역할을 참조하십시오.

    • 크로스 계정 액세스 – AWS 계정 의 IAM 역할을 사용하여 다른 AWS 계정 에 계정 리소스에 액세스할 권한을 허용할 수 있습니다. 예는 IAM 사용 설명서튜토리얼: IAM 역할을 사용한 AWS 계정 간 액세스 권한 위임을 참조하십시오.

    • AWS 서비스 액세스 – 계정의 IAM 역할을 사용하여 AWS 서비스에 계정의 리소스에 액세스할 권한을 허용할 수 있습니다. 예를 들어, Amazon Redshift에서 사용자 대신 S3 버킷에 액세스하도록 허용하는 역할을 만든 다음 S3 버킷에 저장된 데이터를 Amazon Redshift 클러스터로 로드할 수 있습니다. 자세한 내용은 IAM 사용 설명서AWS 서비스에 대한 권한을 위임할 역할 생성을 참조하십시오.

    • EC2 인스턴스에서 실행되는 애플리케이션 – EC2 인스턴스에서 실행되고 AWS API 요청을 생성하는 애플리케이션에서 사용할 수 있도록 인스턴스 내에 액세스 키를 저장하는 대신에, IAM 역할을 사용하여 이러한 애플리케이션에 임시 액세스 키를 제공할 수 있습니다. EC2 인스턴스에 IAM 역할을 할당하려면 인스턴스 프로파일을 생성한 후 인스턴스를 시작할 때 연결할 수 있습니다. 인스턴스 프로파일에는 역할이 포함되어 있으며 EC2 인스턴스에서 실행되는 애플리케이션이 임시 액세스 키를 얻을 수 있습니다. https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html자세한 정보는 IAM 사용 설명서의 Amazon EC2에서 실행되는 애플리케이션의 역할 사용하기를 참조하십시오.

액세스 제어

요청을 인증하는 데 유효한 자격 증명이 있어도AWS KMS 리소스를 생성, 관리 또는 사용하기 위한 AWS KMS API 요청을 수행하는 권한도 필요합니다. 예를 들어 암호화 작업을 위해 KMS 키를 생성, 관리 및 사용할 권한을 가지고 있어야 합니다.

다음 페이지에서는 AWS KMS에 대한 권한을 관리하는 방법에 대해 설명합니다. 먼저 개요를 읽어 보면 도움이 됩니다.

Amazon Virtual Private Cloud(Amazon VPC) 엔드포인트를 통해 AWS KMS에 액세스할 경우 엔드포인트를 사용할 때 AWS KMS 리소스에 대한 액세스를 제한하기 위해 VPC 엔드포인트 정책을 사용할 수 있습니다. 예를 들어 VPC 엔드포인트를 사용할 때 AWS 계정 의 보안 주체만 고객 관리형 키에 액세스하도록 허용할 수 있습니다.. 자세한 내용은 VPC 엔드포인트에 대한 액세스 제어 단원을 참조하십시오