AWS SDK 및 도구를 사용한 인증 및 액세스
AWS 서비스를 사용하기 위해 AWS 도구를 사용하거나 AWS SDK 애플리케이션을 개발할 때에는, 코드나 도구가 AWS에서 어떻게 인증하는지를 반드시 설정해야 합니다. 코드가 실행되는 환경과 사용자가 가진 AWS 접근 권한에 따라, AWS 리소스에 대한 프로그래밍 방식 접근을 여러 가지 방법으로 구성할 수 있습니다.
아래 옵션은 자격 증명 공급자 체인의 일부입니다. 이는 이에 따라 공유 AWS config 및 credentials 파일을 구성하면, AWS SDK 또는 도구가 해당 인증 메서드를 자동으로 발견하고 사용하게 됨을 의미합니다.
애플리케이션 코드를 인증할 메서드 선택
애플리케이션이 AWS에 직접적으로 호출한 것을 인증할 메서드를 선택하세요.
코드가 AWS에서 실행되는 경우, 자격 증명이 애플리케이션에 자동으로 제공될 수 있습니다. 예를 들어, 애플리케이션이 Amazon Elastic Compute Cloud에서 호스팅되고 해당 리소스에 IAM 역할이 연결되어 있다면, 애플리케이션에 자격 증명이 자동으로 제공됩니다. 마찬가지로, Amazon ECS나 Amazon EKS 컨테이너를 사용하는 경우, 컨테이너 내부에서 실행되는 코드는 SDK의 자격 증명 공급자 체인을 통해 IAM 역할에 설정된 자격 증명을 자동으로 가져올 수 있습니다.
IAM 역할을 사용하여 Amazon EC2에 배포된 애플리케이션 인증 - Amazon EC2 인스턴스에서 IAM 역할을 사용하여 사용자 애플리케이션을 안전하게 실행합니다.
Lambda는 Lambda 함수를 생성할 때 최소한의 권한으로 실행 역할을 생성합니다. 그 후, AWS SDK나 도구는 Lambda 실행 환경을 통해, 런타임 시 Lambda에 연결된 IAM 역할을 자동으로 사용합니다.
작업에 대한 IAM 역할을 사용하세요. Amazon ECS 작업 정의에서 사용할 작업 역할을 생성하고, 해당 역할을 명시해야 합니다. 그 후, AWS SDK나 도구는 Amazon ECS 메타데이터를 통해 런타임 시 작업에 할당된 IAM 역할을 자동으로 사용합니다.
Amazon EKS Pod Identity를 사용하는 것이 좋습니다.
참고: 서비스 계정에 대한 IAM 역할(IRSA)이 고유한 요구 사항에 더 적합하다고 판단되면, Amazon EKS 사용 설명서의 EKS Pod Identity와 IRSA 비교를 참조하세요.
CodeBuild에 대한 ID 기반 정책 사용을 참조하세요.
AWS 서비스에 대한 전용 안내서를 참조하세요. 코드를 AWS에서 실행할 때, SDK 자격 증명 공급자 체인이 자동으로 자격 증명을 가져오고 갱신할 수 있습니다.
AWS에 대한 액세스가 필요한 모바일 애플리케이션이나 클라이언트 기반 웹 애플리케이션을 생성하는 경우, 웹 ID 페더레이션을 사용하여 임시 AWS 보안 인증 정보를 오청하도록 앱을 구축하십시오.
웹 ID 페더레이션을 사용하면 사용자 정의 로그인 코드를 생성하거나 자신의 사용자 보안 인증을 관리할 필요가 없습니다. 대신에, 앱 사용자는 Login with Amazon, Facebook, Google 또는 다른 OpenID Connect(OIDC)호환 IdP와 같은 널리 알려진 외부 ID 제공업체(idP)를 사용해 로그인할 수 있습니다. 앱 사용자는 인증 토큰을 받은 다음, 해당 토큰을 AWS 계정의 리소스를 사용할 수 있는 권한을 가진 IAM 역할에 매핑되는 임시 보안 인증으로 바꿉니다.
SDK 또는 도구에 맞게 이를 구성하는 방법을 알아보려면 웹 ID 또는 OpenID Connect를 사용해 역할을 수임하여 AWS SDK 및 도구 인증을 참조하십시오.
모바일 애플리케이션의 경우 Amazon Cognito를 사용하는 것이 좋습니다. Amazon Cognito는 ID 브로커로 활동하며 사용자를 대신하여 상당한 페더레이션을 합니다. 자세한 정보는 IAM 사용 설명서의 모바일 앱용 Amazon Cognito를 참조하십시오.
IAM Identity Center를 사용하여 AWS SDK 및 도구 인증을 권장합니다.
보안 모범 사례로 AWS Organizations와 IAM Identity Center를 사용하여 AWS 계정에서의 전체 액세스를 관리하는 것이 좋습니다. AWS IAM Identity Center에서 사용자를 생성하거나 Microsoft Active Directory를 사용하거나, SAML 2.0 ID 제공업체(idP)를 사용하거나, IdP를 개별적으로 AWS 계정에 페더레이션할 수 있습니다. 사용자 리전에서 Identity Center를 지원하는지 확인하려면 Amazon Web Services 일반 참조.의 AWS IAM Identity Center엔드포인트 및 할당량을 참조하십시오.
(권장) 대상 역할에 sts:AssumeRole 권한을 가진 최소 권한 IAM 사용자를 생성합니다. 그런 다음, 해당 사용자에게 설정된 source_profile을 사용하여 역할을 수임하도록 프로파일을 구성합니다.
또한 환경 변수나 공유 AWS credentials 파일을 통해 임시 IAM 자격 증명을 사용할 수도 있습니다. 단기 자격 증명을 사용하여 AWS SDK 및 도구 인증을 참조하세요.
참고: 샌드박스 또는 학습 환경에서만 장기 자격 증명을 사용하여 AWS SDK 및 도구 인증을 고려할 수 있습니다.
예: IAM Roles Anywhere를 사용하여 AWS SDK 및 도구 인증을 참조하세요. AWS 외부에서 실행되는 서버, 컨테이너, 애플리케이션 등의 워크로드에 대해 IAM Roles Anywhere를 사용하여 IAM의 임시 보안 자격 증명을 획득할 수 있습니다. IAM Roles Anywhere를 사용하려면 워크로드에 X.509 인증서를 사용해야 합니다.
프로세스 보안 인증 제공자를 사용하여 런타임 시 자동으로 자격 증명을 가져올 수 있습니다. 이러한 시스템은 도우미 도구 나 플러그인을 사용해 자격 증명을 얻을 수 있으며, 내부적으로는 sts:AssumeRole을 통해 IAM 역할을 수임할 수도 있습니다.
AWS Secrets Manager을 통해 입력된 임시 자격 증명을 사용합니다. 단기 액세스 키를 얻는 방법에 대한 자세한 내용은 IAM 사용 설명서의 임시 보안 자격 증명 요청을 참조하세요. 이러한 임시 자격 증명을 저장하는 옵션은 AWS 액세스 키에서 확인하세요.
이러한 자격 증명을 사용하면 프로덕션 비밀이나 장기 역할 기반 자격 증명을 저장할 수 있는 Secrets Manager에서 더 광범위한 애플리케이션 권한을 안전하게 가져올 수 있습니다.
자격 증명을 얻는 방법에 대해서는 타사 공급자의 문서를 참고하는 것이 가장 좋습니다.
예: 환경 변수와 임시 AWS STS 자격 증명을 사용합니다.
아니요: 암호화된 암호 관리자(마지막 수단)에 저장된 정적 액세스 키를 사용합니다.
인증 방법
AWS 환경 내에서 실행되는 코드의 인증 메서드
코드가 AWS에서 실행되는 경우, 자격 증명이 애플리케이션에 자동으로 제공될 수 있습니다. 예를 들어, 애플리케이션이 Amazon Elastic Compute Cloud에서 호스팅되고 해당 리소스에 IAM 역할이 연결되어 있다면, 애플리케이션에 자격 증명이 자동으로 제공됩니다. 마찬가지로, Amazon ECS나 Amazon EKS 컨테이너를 사용하는 경우, 컨테이너 내부에서 실행되는 코드는 SDK의 자격 증명 공급자 체인을 통해 IAM 역할에 설정된 자격 증명을 자동으로 가져올 수 있습니다.
-
IAM 역할을 사용하여 Amazon EC2에 배포된 애플리케이션 인증 - Amazon EC2 인스턴스에서 IAM 역할을 사용하여 사용자 애플리케이션을 안전하게 실행합니다.
-
다음과 같은 방법으로 IAM Identity Center를 사용하여 프로그래밍 방식으로 AWS과 상호 작용할 수 있습니다.
-
콘솔에서 AWS CLI 명령을 실행하는 데 AWS CloudShell을 사용합니다.
-
소프트웨어 개발 팀을 위한 클라우드 기반 협업 공간은 Amazon CodeCatalyst를 고려하십시오.
-
웹 기반 ID 제공자를 통한 인증 - 모바일 혹은 클라이언트 기반 웹 애플리케이션
AWS에 대한 액세스가 필요한 모바일 애플리케이션이나 클라이언트 기반 웹 애플리케이션을 생성하는 경우, 웹 ID 페더레이션을 사용하여 임시 AWS 보안 인증 정보를 오청하도록 앱을 구축하십시오.
웹 ID 페더레이션을 사용하면 사용자 정의 로그인 코드를 생성하거나 자신의 사용자 보안 인증을 관리할 필요가 없습니다. 대신에, 앱 사용자는 Login with Amazon, Facebook, Google 또는 다른 OpenID Connect(OIDC)호환 IdP와 같은 널리 알려진 외부 ID 제공업체(idP)를 사용해 로그인할 수 있습니다. 앱 사용자는 인증 토큰을 받은 다음, 해당 토큰을 AWS 계정의 리소스를 사용할 수 있는 권한을 가진 IAM 역할에 매핑되는 임시 보안 인증으로 바꿉니다.
SDK 또는 도구에 맞게 이를 구성하는 방법을 알아보려면 웹 ID 또는 OpenID Connect를 사용해 역할을 수임하여 AWS SDK 및 도구 인증을 참조하십시오.
모바일 애플리케이션의 경우 Amazon Cognito를 사용하는 것이 좋습니다. Amazon Cognito는 ID 브로커로 활동하며 사용자를 대신하여 상당한 페더레이션을 합니다. 자세한 정보는 IAM 사용 설명서의 모바일 앱용 Amazon Cognito를 참조하십시오.
로컬(AWS 외부)에서 실행되는 코드의 인증 메서드
-
IAM Identity Center를 사용하여 AWS SDK 및 도구 인증 - 보안 모범 사례로 AM Identity Center 에서 AWS Organizations를 사용하여 모든 사용자 AWS 계정 액세스를 관리하는 것이 좋습니다. AWS IAM Identity Center에서 사용자를 생성하거나 Microsoft Active Directory를 사용하거나, SAML 2.0 ID 제공업체(idP)를 사용하거나, IdP를 개별적으로 AWS 계정에 페더레이션할 수 있습니다. 사용자 리전에서 Identity Center를 지원하는지 확인하려면 Amazon Web Services 일반 참조.의 AWS IAM Identity Center엔드포인트 및 할당량을 참조하십시오.
-
IAM Roles Anywhere를 사용하여 AWS SDK 및 도구 인증 – IAM Roles Anywhere를 사용하여 AWS 외부에서 실행되는 서버, 컨테이너 및 애플리케이션과 같은 워크로드에 대한 IAM의 임시 보안 인증을 얻을 수 있습니다. IAM Roles Anywhere를 사용하려면 워크로드에 X.509 인증서를 사용해야 합니다.
-
AWS 자격 증명을 사용해 역할을 수임하여 AWS SDK 및 도구 인증 - IAM 역할을 수임하여 다른 방법으로는 액세스할 수 없는 AWS 리소스에 일시적으로 액세스할 수 있습니다.
-
AWS 액세스 키를 사용하여 AWS SDK 및 도구 인증 — 편리하지 않거나 AWS 리소스의 보안 위험을 증가시킬 수 있는 기타 옵션.
액세스 관리에 대한 추가 정보
IAM 사용 설명서에는 AWS 리소스에 대한 액세스를 안전하게 제어하는 방법에 대한 다음 정보가 수록되어 있습니다.
-
IAM ID(사용자, 그룹 및 역할)- AWS의 기본 ID를 숙지하십시오.
-
IAM의 보안 모범 사례 — 공유 책임 모델
에 따라 AWS 애플리케이션을 개발할 때 따라야 할 보안 권장 사항.
Amazon Web Services 일반 참조에는 다음에 대한 기본 사항이 있습니다.
-
AWS보안 인증 이해 및 취득 — 콘솔 및 프로그래밍 방식 액세스 모두에 대한 액세스 키 옵션 및 관리 관행.
IAM Identity Center 신뢰할 수 있는 ID 전파(TIP) 플러그인을 사용하여 AWS 서비스에 접근
-
TIP 플러그인을 사용하여 AWS 서비스에 액세스 - Amazon Q Business나 신뢰할 수 있는 ID 전파를 지원하는 다른 서비스를 위한 애플리케이션을 제작하고 있으며 AWS SDK for Java 또는 AWS SDK for JavaScript을 사용하는 경우, TIP 플러그인을 활용해 보다 간소화된 인증 경험을 구현할 수 있습니다.
AWS Builder ID
이미 소유하고 있거나 생성하고 싶은 모든 AWS 계정의 AWS Builder ID 보완. AWS 계정이 상요자가 생성하고 해당 리소스의 보안 경계가 되는 AWS 리소스의 컨테이너 역할을 하는 동안 사용자의 AWS Builder ID은 사용자를 개인으로 나타냅니다. AWS Builder ID에 로그인하여 Amazon Q 및 Amazon CodeCatalyst와 같은 개발자 도구 및 서비스에 액세스할 수 있습니다.
-
AWS 로그인 사용자 설명서의 AWS Builder ID으로 로그인 — AWS Builder ID의 생성 및 사용 방법을 알아보고 빌더 ID가 제공하는 내용을 알아보십시오.
-
CodeCatalyst 개념 - Amazon CodeCatalyst 사용 설명서에서AWS Builder ID - CodeCatalyst에서 AWS Builder ID를 사용하는 방법을 알아보십시오.