AWS 보안 자격 증명을 사용한 프로그래밍 방식 액세스
가능한 경우 단기 액세스 키를 사용하여 AWS를 프로그래밍 방식으로 호출하거나 AWS Command Line Interface 또는 AWS Tools for PowerShell을 사용하는 것이 좋습니다. 하지만 이러한 용도에 장기 AWS 액세스 키를 사용할 수도 있습니다.
장기 액세스 키를 생성할 때는 액세스 키 ID(예: AKIAIOSFODNN7EXAMPLE
)와 비밀 액세스 키(예: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
)를 세트로 생성합니다. 비밀 액세스 키는 생성할 때만 다운로드할 수 있습니다. 비밀 액세스 키를 다운로드하지 않았거나 분실한 경우, 액세스 키를 새로 생성해야 합니다.
대부분의 경우 IAM 사용자의 액세스 키를 생성할 때 갖는 만료되지 않는 장기 액세스 키가 필요하지 않습니다. 대신, IAM 역할을 만들고 임시 보안 인증 정보를 생성할 수 있습니다. 임시 보안 인증 정보는 액세스 키 ID와 비밀 액세스 키를 포함하지만, 보안 인증 정보가 만료되는 시간을 나타내는 보안 토큰도 포함합니다. 만료된 이후에는 더 이상 유효하지 않습니다. 자세한 내용은 장기 액세스 키의 대안 단원을 참조하세요.
AKIA
로 시작하는 액세스 키 ID는 IAM 사용자 또는 AWS 계정 루트 사용자를 위한 장기 액세스 키입니다. ASIA
로 시작하는 액세스 키 ID는 AWS STS 작업을 사용하여 생성하는 임시 보안 인증 액세스 키입니다.
사용자가 AWS Management Console 외부에서 AWS와 상호 작용하려면 프로그래밍 방식의 액세스가 필요합니다. 프로그래밍 방식으로 액세스를 부여하는 방법은 AWS에 액세스하는 사용자 유형에 따라 다릅니다.
사용자에게 프로그래밍 방식 액세스 권한을 부여하려면 다음 옵션 중 하나를 선택합니다.
프로그래밍 방식 액세스가 필요한 사용자는 누구인가요? | To | 액세스 권한을 부여하는 사용자 |
---|---|---|
작업 인력 ID (IAM Identity Center가 관리하는 사용자) |
임시 보안 인증 정보를 사용하여 AWS CLI, AWS SDK 또는 AWS API에 대한 프로그래밍 요청에 서명합니다. |
사용하고자 하는 인터페이스에 대한 지침을 따릅니다.
|
IAM | 임시 보안 인증 정보를 사용하여 AWS CLI, AWS SDK 또는 AWS API에 대한 프로그래밍 요청에 서명합니다. | IAM 사용자 설명서의 AWS 리소스와 함께 임시 보안 인증 정보 사용에 나와 있는 지침을 따르세요. |
IAM | (권장되지 않음) 장기 보안 인증 정보를 사용하여 AWS CLI, AWS SDK 또는 AWS API에 대한 프로그래밍 요청에 서명합니다. |
사용하고자 하는 인터페이스에 대한 지침을 따릅니다.
|
장기 액세스 키의 대안
대부분의 일반적인 사용 사례에서는 장기 액세스 키 대신 사용할 수 있는 대안이 있습니다. 계정 보안을 강화하려면 다음 사항을 고려하세요.
-
애플리케이션 코드나 코드 리포지토리에 장기 액세스 키와 비밀 액세스 키를 포함해서는 안 됨 - 대신, 일반 텍스트로 키를 하드 코딩할 필요가 없도록 AWS Secrets Manager 또는 기타 비밀 관리 솔루션을 사용하세요. 그러면 애플리케이션 또는 클라이언트가 필요할 때 비밀 정보를 검색할 수 있습니다. 자세한 내용은 AWS Secrets Manager 사용 설명서의 AWS Secrets Manager이란 무엇입니까? 섹션을 참조하십시오.
-
가능하면 IAM 역할을 사용하여 임시 보안 인증 정보 생성 - 가능하면 장기 액세스 키보다는 항상 메커니즘을 사용하여 임시 보안 인증 정보를 발급하세요. 임시 보안 인증 정보는 사용자와 함께 저장되지 않지만 동적으로 생성되어 요청 시 사용자에게 제공되므로 더 안전합니다. 임시 보안 인증 정보는 수명이 제한되어 있으므로 관리하거나 업데이트할 필요가 없습니다. 임시 액세스 키를 제공하는 메커니즘으로는 IAM 역할, IAM Identity Center 사용자의 인증 등이 있습니다. AWS 외부에서 실행되는 시스템의 경우 AWS Identity and Access Management Roles Anywhere를 사용할 수 있습니다.
-
AWS Command Line Interface(AWS CLI) 또는
aws-shell
에 대해 장기 액세스 키의 대안 사용 – 다음을 대안으로 사용할 수 있습니다.-
AWS CloudShell은 브라우저 기반의 사전 인증된 셸로, AWS Management Console에서 직접 실행할 수 있습니다. 원하는 셸(Bash, PowerShell 또는 Z 셸)을 통해 AWS 서비스에 대해 AWS CLI 명령을 실행할 수 있습니다. 이 경우 명령줄 도구를 다운로드하거나 설치할 필요가 없습니다. 자세한 내용은 AWS CloudShell 사용 설명서의 AWS CloudShell이란 무엇입니까? 섹션을 참조하십시오.
-
AWS IAM Identity Center(IAM Identity Center)와 AWS CLI 버전 2의 통합. 사용자를 인증하고, AWS CLI 명령을 실행하기 위한 단기 보안 인증을 제공할 수 있습니다. 자세한 내용은 AWS IAM Identity Center 사용 설명서의 AWS CLI와 IAM Identity Center 통합 및 AWS Command Line Interface 사용 설명서의 IAM Identity Center를 사용하도록 AWS CLI 구성을 참조하세요.
-
-
애플리케이션 또는 AWS 서비스에 액세스해야 하는 인간 사용자를 위해 장기 액세스 키를 생성해서는 안 됨 - IAM Identity Center는 외부 IdP 사용자가 AWS 서비스에 액세스할 수 있도록 임시 액세스 보안 인증 정보를 생성할 수 있습니다. 따라서 IAM에서 장기 보안 인증 정보를 생성하고 관리할 필요가 없습니다. IAM Identity Center에서 외부 IdP 사용자에게 액세스 권한을 부여하는 IAM Identity Center 권한 세트를 생성합니다. 그런 다음 선택한 AWS 계정에서 IAM Identity Center의 그룹을 권한 세트에 할당합니다. 자세한 내용은 AWS IAM Identity Center 사용 설명서의 AWS IAM Identity Center이란 무엇인가요?, 외부 자격 증명 공급자 연결 및 권한 세트를 참조하세요.
-
AWS 컴퓨팅 서비스 내에 장기 액세스 키를 저장해서는 안 됨 - 대신, 컴퓨팅 리소스에 IAM 역할을 할당하세요. 그러면 액세스 권한을 부여하기 위한 임시 보안 인증이 자동으로 제공됩니다. 예를 들어 Amazon EC2 인스턴스에 연결된 인스턴스 프로파일을 만들 때, 인스턴스에 AWS 역할을 할당하고 모든 애플리케이션에서 해당 역할을 사용할 수 있도록 할 수 있습니다. 인스턴스 프로파일에는 역할이 포함되어 있으며 Amazon EC2 인스턴스에서 실행되는 프로그램이 임시 보안 인증 정보를 얻을 수 있습니다. 자세히 알아보려면 IAM 역할을 사용하여 Amazon EC2 인스턴스에서 실행되는 애플리케이션에 권한 부여를 참조하세요.