AWS 리소스에 접근하는 방식은 여러 가지가 있으며, 각 방식은 사용 목적과 편리성, 보안 수준에 따라 다릅니다. 여기서는 AWS 리소스에 접근하는 주요 방식을 우선순위별로 나열하고, 각 방식에 대한 설명을 덧붙이겠습니다. 우선순위는 보안성, 자동화 가능성, 사용 편리성 등을 기준으로 정했습니다.
설명: IAM 역할(Role)은 자격 증명을 직접 관리할 필요 없이 AWS 서비스나 애플리케이션에 임시 권한을 부여하는 방식입니다. 역할은 AWS 서비스 간 안전한 통신을 위해 많이 사용됩니다. EC2, Lambda, ECS 같은 AWS 서비스에서 다른 서비스(S3, RDS 등)에 접근할 때 주로 사용됩니다.
사용 사례: EC2 인스턴스가 S3에 접근하거나 Lambda 함수가 DynamoDB에 데이터를 기록할 때 IAM 역할을 부여해 작업을 수행합니다.
보안성: 가장 안전한 방식 중 하나입니다. 자격 증명을 코드에 노출시키지 않고, 임시 권한을 사용하므로 자격 증명이 유출될 가능성이 낮습니다.
자동화: AWS 서비스 간의 자동화에 매우 적합하며, 자격 증명을 관리할 필요가 없습니다.
우선순위: 1위 - 보안성이 매우 높고, AWS 서비스 간 통신에 필수적입니다.
설명: AWS CLI, SDK, API에서 프로그래밍 방식으로 접근할 때 Access Key와 Secret Access Key를 사용하여 인증합니다. AWS 리소스에 접근하는 프로그래밍 방식의 표준 인증 방식입니다.
사용 사례: 개발자가 AWS CLI나 SDK(Python, Java, JavaScript 등)를 사용해 AWS 리소스에 접근하거나 자동화 스크립트에서 AWS 리소스를 제어할 때 사용됩니다.
보안성: 중간 정도의 보안성을 갖습니다. 자격 증명을 노출하지 않도록 신경 써야 하며, 특히 Secret Access Key는 절대로 노출되면 안 됩니다. 필요한 최소 권한만 부여하는 최소 권한 원칙을 따르는 것이 중요합니다.
자동화: 스크립트나 애플리케이션에서 AWS 리소스에 접근하는 데 많이 사용되며, 자동화된 작업에서 자주 쓰입니다.
우선순위: 2위 - 자동화에 매우 적합하지만, 자격 증명 관리가 필요하므로 IAM 역할보다 보안성은 낮습니다.
설명: AWS SSO는 조직에서 사용자 계정을 중앙에서 관리하고, 각 사용자에게 AWS 리소스에 대한 접근 권한을 부여하는 방식입니다. 조직의 ID 관리 시스템(예: Active Directory)과 통합하여 AWS 계정에 쉽고 안전하게 접근할 수 있게 해줍니다.
사용 사례: 여러 AWS 계정을 사용하는 큰 조직에서 사용자 권한을 중앙에서 통합 관리하는 데 사용됩니다. 사용자들은 한 번 로그인으로 여러 AWS 계정에 접근할 수 있습니다.
보안성: 높은 보안성을 제공합니다. 자격 증명을 중앙에서 관리하며, 접근 권한을 세분화하고 MFA(다중 인증)를 강제할 수 있습니다.
자동화: 사용자 관리는 효율적이지만, 자동화된 작업에서는 잘 사용되지 않습니다.
우선순위: 3위 - 사용자 관리에 중앙 집중식 보안을 제공하지만, 자동화에는 덜 적합합니다.
설명: AWS 웹 콘솔은 그래픽 사용자 인터페이스(GUI)를 통해 AWS 리소스를 관리하는 방식입니다. 사용자 이름과 비밀번호로 로그인하고, 리소스를 생성하거나 설정을 변경할 수 있습니다.
사용 사례: 관리자나 개발자가 수동으로 리소스를 설정하거나, 간단한 작업을 수행할 때 사용됩니다. AWS 리소스의 상태를 시각적으로 확인하고 설정을 변경하는 데 매우 유용합니다.
보안성: 기본적으로 사용자 이름과 비밀번호로 로그인하지만, 보안을 강화하기 위해 MFA(다중 인증)를 추가할 수 있습니다.
자동화: 자동화 작업에는 적합하지 않으며, 수동 작업이 필요합니다.
우선순위: 4위 - 편리성은 좋지만, 자동화와 대규모 작업에는 적합하지 않으며, 보안 관리에서 IAM 역할이나 CLI보다는 낮은 우선순위입니다.
설명: Session Manager는 EC2 인스턴스에 SSH나 RDP 접속 없이 웹 기반 터미널을 통해 인스턴스에 접근할 수 있게 해줍니다. 이를 통해 자격 증명을 사용하지 않고도 인스턴스를 제어할 수 있습니다.
사용 사례: SSH 키나 자격 증명을 사용하지 않고, EC2 인스턴스를 원격으로 제어할 때 사용됩니다.
보안성: 매우 높은 보안성을 제공하며, SSH 키 관리가 필요 없고, AWS IAM 역할을 사용해 인스턴스 접근을 제어할 수 있습니다.
자동화: 인스턴스에 대한 원격 명령 실행을 자동화할 수 있습니다.
우선순위: 5위 - 특정 시나리오에서 매우 유용하며, 보안성이 우수하지만, 일반적인 AWS 리소스 관리와는 다소 다른 역할을 합니다.
설명: SSH(Unix/Linux)나 RDP(Windows)로 EC2 인스턴스에 직접 접속하여, 서버 내부에서 작업을 수행하는 방식입니다. 일반적으로 SSH 키나 비밀번호를 사용해 접속합니다.
사용 사례: EC2 인스턴스에 접근해 직접 파일을 관리하거나 애플리케이션을 배포할 때 사용됩니다.
보안성: SSH 키나 비밀번호로 접근하므로, 보안성을 강화하기 위해 SSH 키 관리가 필요합니다. SSH 포트(22)를 열어두는 것은 보안 위협이 될 수 있습니다.
자동화: 자동화에는 적합하지 않으며, 수동 작업이 대부분입니다.
우선순위: 6위 - 인스턴스 내부 작업에 적합하지만, AWS 리소스 전체를 관리하는 데는 비효율적이고 보안성도 상대적으로 낮습니다.
AWS 리소스에 접근하는 방식은 보안성과 자동화 가능성에 따라 우선순위가 다릅니다. IAM 역할은 가장 안전하고 효율적인 방법이며, CLI나 SDK를 통한 Access Key/Secret Access Key 방식도 자동화된 작업에서 자주 사용됩니다. 웹 콘솔과 SSH 접속은 수동 작업에 적합하지만, 자동화와 보안성에서는 상대적으로 우선순위가 낮습니다.