AWS 보안 자격 증명

AWS 보안 자격 증명

AWS와 상호작용할 때 여러분은 AWS 보안 자격 증명(security credentials) 을 지정해서 본인이 누구인지, 요청하는 리소스에 접근할 권한이 있는지 확인받게 돼요. AWS는 이 자격 증명을 사용해 요청을 인증(authentication)하고 권한을 부여(authorization)합니다.

출처: 문서

본문

예를 들어 Amazon Simple Storage Service(Amazon S3) 버킷에서 보호되는 파일을 내려받으려고 한다면, 자격 증명이 그 접근을 허용해야 해요. 자격 증명에 파일 다운로드 권한이 없으면 AWS는 요청을 거부합니다. 단, 공개 공유된 S3 버킷의 파일을 내려받을 때는 AWS 보안 자격 증명이 필요하지 않아요.

AWS에는 여러 유형의 사용자가 있으며, 각각 고유한 보안 자격 증명을 갖습니다.

  • 계정 소유자(루트 사용자) — AWS 계정을 만든 사용자로, 전체 접근 권한을 가집니다.
  • AWS IAM Identity Center 사용자 — AWS IAM Identity Center에서 관리되는 사용자입니다.
  • 페더레이션 주체(Federated principals) — 외부 자격 증명 공급자(ID provider) 출신으로, 페더레이션을 통해 AWS에 임시 접근을 부여받는 사용자입니다. 페더레이션 자격 증명에 대한 자세한 내용은 자격 증명 공급자와 AWS로의 페더레이션을 참고하세요.
  • IAM 사용자 — AWS Identity and Access Management(IAM) 서비스 안에서 만든 개별 사용자입니다.

사용자는 장기(long-term) 또는 임시(temporary) 보안 자격 증명을 갖습니다. 루트 사용자, IAM 사용자, 액세스 키는 만료되지 않는 장기 보안 자격 증명을 가집니다. 장기 자격 증명을 보호하려면 액세스 키 관리, 암호 변경, MFA 활성화 절차를 마련해 두는 것이 좋아요.

AWS Organizations의 멤버 계정에 걸친 루트 사용자 자격 증명 관리를 단순화하려면, AWS Organizations로 관리하는 AWS 계정의 루트 사용자 자격 증명을 중앙에서 안전하게 보호할 수 있어요. 멤버 계정에 대한 루트 엑세스 중앙 관리를 사용하면 루트 사용자 자격 증명 복구를 중앙에서 제거·방지해 대규모로 의도치 않은 루트 접근을 막을 수 있습니다.

IAM 역할, AWS IAM Identity Center 사용자, AWS STS 페더레이션 사용자 주체는 임시 보안 자격 증명을 갖습니다. 임시 보안 자격 증명은 정의된 기간이 지나거나 사용자가 세션을 종료하면 만료됩니다. 임시 자격 증명은 장기 자격 증명과 거의 동일하게 동작하지만 다음 차이점이 있습니다.

  • 임시 보안 자격 증명은 이름 그대로 단기간 유효합니다. 수 분에서 수 시간까지 유효 기간을 설정할 수 있고, 만료되면 AWS는 더 이상 이를 인식하지 않으며 해당 자격 증명으로 보낸 API 요청에 어떤 접근도 허용하지 않아요.
  • 임시 보안 자격 증명은 사용자에게 저장되지 않고, 요청 시 동적으로 생성되어 제공됩니다. 임시 자격 증명이 만료되거나 만료되기 전에도, 요청하는 사용자에게 그럴 권한이 남아 있다면 새 자격 증명을 요청할 수 있어요.

그 결과 임시 자격 증명은 장기 자격 증명에 비해 다음과 같은 장점이 있습니다.

  • 애플리케이션에 장기 AWS 보안 자격 증명을 배포하거나 내장할 필요가 없습니다.
  • 사용자에게 AWS 자격 증명을 정의하지 않고도 AWS 리소스에 대한 접근을 제공할 수 있어요. 임시 자격 증명은 역할과 자격 증명 페더레이션의 기반입니다.
  • 임시 보안 자격 증명은 수명이 제한적이라 더 이상 필요 없을 때 갱신하거나 명시적으로 폐기할 필요가 없습니다. 만료된 임시 자격 증명은 재사용할 수 없어요. 유효 기간을 최대 한도까지 지정할 수 있습니다.

보안 고려 사항

AWS 계정의 보안 조치를 결정할 때 다음 정보를 고려하길 권장합니다.

  • AWS 계정을 만들면 계정 루트 사용자가 생깁니다. 루트 사용자(계정 소유자)의 자격 증명은 계정 안의 모든 리소스에 대한 전체 접근을 허용합니다. 루트 사용자로 가장 먼저 수행할 일은 다른 사용자에게 AWS 계정 관리 권한을 부여해서 루트 사용자 사용을 최소화하는 것이에요.
  • 다중 인증(MFA)은 AWS 계정에 접근할 수 있는 사용자에게 추가 보안 계층을 제공합니다. 추가 보안을 위해 AWS 계정 루트 사용자 자격 증명과 모든 IAM 사용자에게 MFA를 요구하길 권장합니다. 자세한 내용은 IAM의 AWS 다중 인증을 참고하세요.
  • AWS는 AWS에 접근하는 방식과 AWS 사용자 유형에 따라 서로 다른 유형의 보안 자격 증명을 요구합니다. 예를 들어 AWS Management Console에는 로그인 자격 증명을, AWS에 프로그래밍 방식으로 호출할 때는 액세스 키를 사용해요. 사용자 유형과 로그인 페이지를 판별하려면 AWS Sign-In 사용자 가이드의 AWS Sign-In이란을 참고하세요.
  • IAM 정책으로 루트 사용자의 리소스 접근을 명시적으로 거부할 수는 없어요. 루트 사용자의 권한을 제한하려면 AWS Organizations의 서비스 제어 정책(SCP)만 사용할 수 있습니다.
  • 루트 사용자 암호를 잊어버리거나 잃어버리면, 계정과 연결된 이메일 주소에 접근할 수 있어야 암호를 재설정할 수 있어요.
  • 루트 사용자 액세스 키를 잃어버리면, 루트 사용자로 계정에 로그인해서 새 액세스 키를 만들어야 합니다.
  • 일상적인 작업에 루트 사용자를 사용하지 마세요. 루트 사용자만 수행할 수 있는 작업에만 사용하세요. 루트 사용자로 로그인해야 하는 모든 작업 목록은 루트 사용자 자격 증명이 필요한 작업을 참고하세요.
  • 보안 자격 증명은 계정별로 구분됩니다. 여러 AWS 계정에 접근할 수 있다면 각 계정마다 별도의 자격 증명이 있어요.
  • 정책은 사용자·역할·사용자 그룹 구성원이 어떤 AWS 리소스에서 어떤 조건으로 어떤 작업을 수행할 수 있는지 결정합니다. 정책을 사용해 AWS 계정의 AWS 서비스·리소스에 대한 접근을 안전하게 제어하세요. 보안 사고에 대응해 권한을 수정하거나 철회해야 한다면, 자격 증명 자체를 직접 바꾸는 대신 정책을 삭제하거나 수정하면 됩니다.
  • 비상 접근용 IAM 사용자의 로그인 자격 증명과 프로그래밍 방식 접근을 위해 만든 액세스 키는 안전한 위치에 저장하세요. 액세스 키를 잃어버리면 계정에 로그인해서 새로 만들어야 합니다.
  • IAM 사용자와 액세스 키가 제공하는 장기 자격 증명 대신, IAM 역할과 페더레이션 주체가 제공하는 임시 자격 증명을 사용하길 강력히 권장합니다.

더 알아보기 (Learn more)