[4] AWS IAM 사용 시 주의사항

루트 사용자의 제한

AWS 계정을 생성하면 루트 사용자가 자동으로 생성됩니다. 루트 사용자는 모든 AWS 서비스에 대해 완전한 접근 권한을 가지고 있습니다. 그러나 루트 사용자를 일상적인 작업에 사용하는 것은 위험할 수 있습니다. 만약, 루트 사용자의 자격 증명이 유출되면 공격자는 AWS 리소스를 제어하거나 삭제할 수 있습니다. 따라서 루트 사용자를 사용하지 않고 IAM 사용자를 생성해 필요한 권한만 부여하는 것이 좋습니다.

불필요한 사용자의 제한

IAM 사용자는 AWS 리소스에 대한 접근를 제어하는데 필요합니다. 그러나 필요 이상의 IAM 사용자를 생성하면 보안 위험이 증가할 수 있습니다. 각 IAM 사용자는 고유한 자격 증명을 가지므로 관리해야 할 자격 증명이 많아집니다. 또한, 불필요한 IAM 사용자가 리소스에 접근하면 실수로 중요한 데이터를 변경하거나 삭제할 수 있습니다.

개별 사용자에게 정책이나 역할을 부여하는 대신 그룹 사용

IAM에서는 여러 IAM 사용자를 그룹으로 묶어 동일한 권한을 부여할 수 있습니다. 이렇게 하면 권한 관리가 훨씬 간편합니다. 예를 들어, 개발자 그룹을 만들고 해당 그룹에 'EC2 인스턴스 생성 권한'을 부여할 수 있습니다. 그러면 그룹에 속하는 모든 IAM 사용자는 EC2 인스턴스를 생성할 수 있습니다.

최소한의 권한만을 허용(Principle of least privilege)

최소 권한 원칙은 보안의 핵심 원칙 중 하나입니다. 해당 원칙에 따르면 IAM 사용자는 그들의 작업을 수행하는데 필요한 최소한의 권한만을 가지고 있어야 합니다. 예를 들어, 데이터베이스 관리자는 데이터베이스에 대한 전체 접근 권한이 필요하지만, 웹 서버를 관리하는 개발자는 데이터베이스에 대한 접근 권한이 필요하지 않을 수 있습니다.

MFA(Multi-Factor Authentication)의 사용

MFA는 계정 보안을 강화하는데 매우 효과적인 방법입니다. MFA를 설정하면 IAM 사용자는 자신의 자격 증명 외에도 추가적인 인증 요소(예 : 휴대폰에 전송된 코드)를 제공해야 합니다. 이렇게 하면 자격 증명이 유출되더라도 공격자가 계정에 접근하는 것을 막을 수 있습니다.

Accesskey 대신 역할 사용

IAM 역할은 AWS 리소스가 다른 AWS 리소스에 접근하는 방식을 정의합니다. 역할은 장기적인 자격 증명 대신 일시적인 보안 자격 증명을 제공하므로 보안 위험이 줄어듭니다. 예를 들어, EC2 인스턴스가 S3 버킷에 접근하는 경우 해당 인스턴스에 역할을 부여해 S3 버킷에 접근할 수 있는 권한을 제공할 수 있습니다.