BLOG
팀이 구성되고 프로젝트가 시작될 때, 관리자들은 혁신과 애자일을 위해 광범위한 액세스 권한을 부여하겠다고 합니다. 하지만 시간이 지남에 따라 관리자는 필요한 액세스만 허용하며 최소 권한을 따르게 됩니다. 일부 고객은 응용 프로그램에 실제로 필요한 권한과 응용 프로그램에 영향을 주지 않고 제거할 수 있는 권한을 식별할 때 도움되는 정보가 필요하다고 전했습니다. AWS Identity and Access Management (IAM)에는 사용자와 역할이 각 서비스를 사용한 마지막 시간을 보여주므로 액세스 제한 필요 여부를 알 수 있습니다. 이를 통해 특정 서비스에 대한 권한을 수정할 수 있지만 보안 요구 사항을 충족하기 위해서는 더욱 세부적인 권한을 설정해야 한다는 사실을 알게 되었습니다.
이제는 Amazon Simple Storage Service (Amazon S3)에서도 action-level의 마지막 액세스 정보를 포함함을 알려드리게 되어 기쁘게 생각합니다. 즉, 응용 프로그램에 필요한 특정 S3 작업에 대한 권한도 강화할 수 있게 되었습니다. S3 관리 작업에 대해 작업 수준의 마지막 액세스 정보를 확인할 수 있습니다. 사용하시면서 action-level정보를 어떻게 사용하고 있는지, 어떤 추가적인 정보들이 필요한지 알려주셔도 좋습니다.
다음은 S3 작업 마지막으로 액세스한 정보의 스냅 샷 예시입니다.
그림1: S3 작업 마지막 액세스 정보 스냅 샷
액세스를 분석하고 S3 권한을 강화하는 데 도움이 되는 다른 기능을 사용해 Amazon S3에 대한 마지막으로 액세스한 새로운 작업 정보를 사용할 수 있습니다. AWS IAM Access Analyzer는 리소스 정책이 계정이나 조직 외부에서 리소스에 액세스할 수 있는 경우 결과를 생성합니다. 특히 Amazon S3의 경우 S3 버킷 정책이 변경되면 Access Analyzer는 계정 외부의 사용자가 버킷에 대한 액세스 여부를 알림으로써 의도하지 않은 액세스로부터 데이터를 보호합니다. S3 권한의 보안 상태를 개선하기 위해 Access Analyzer 결과와 함께 사용자 또는 역할에 대해 마지막으로 액세스한 조치 정보를 사용할 수 있습니다. AWS Command Line Interface (AWS CLI) 또는 프로그래밍 방식 클라이언트를 사용하여 IAM 콘솔에서 혹은 프로그래밍 방식으로 마지막으로 액세스한 작업을 검토할 수 있습니다.
마지막으로 액세스한 세부 사항을 검토하기 위한 사용 사례
이번에는 사용하지 않은 S3 작업을 식별하고 IAM 보안 주체에 대한 권한을 줄이는 방법을 보여주는 예제를 살펴 보겠습니다. 이 예에서 시스템 관리자 Martha Rivera는 IAM 보안 주체의 액세스를 관리합니다. 또한 팀이 보안 모범 사례를 따르도록 권한을 정기적으로 검토합니다. 특히, 팀은 응용 프로그램에서 작업하고 사용 사례를 달성하는 데 필요한 최소한의 S3 권한만 갖도록 합니다. 이를 위해 Martha는 자신의 계정 역할이 액세스할 수 있는 지원되는 각 S3 작업에 대해 마지막으로 액세스한 타임 스탬프를 검토합니다. 그런 다음 Martha는 이 정보를 사용하여 사용되지 않은 S3 작업을 식별하고 정책을 업데이트하여 해당 작업에 대한 액세스를 제한합니다.
AWS Management Console에서 마지막으로 액세스한 작업 보기
- IAM 콘솔을 엽니다.
- 탐색 분할 창에서 역할을 선택한 후 분석하려는 역할 (예: PaymentAppTestRole )을 선택하세요.
- Access Advisor 탭을 선택하세요. 이 탭에는 그림 2와 같이 역할에 권한이 있는 모든 AWS 서비스가 표시됩니다.
(이미지2)
그림 2: 역할에 권한이 있는 AWS 서비스 목록
Access Advisor 탭에서 Amazon S3를 그림 3과 같이 각 작업이 역할에 사용 권한이 있는 지원되는 모든 작업, 역할에 의해 마지막으로 사용된 시기 및 해당 작업이 사용된 AWS 영역을 확인하세요.
그림3: 액세스 데이터가있는 S3 작업 목록
이 예에서 Martha는 PaymentAppTestRole에 S3 읽기 및 쓰기 권한이 있음을 확인했습니다. 그림 3의 정보에서 역할이 GetBucketLogging, GetBucketPolicy 및 GetBucketTagging에 대한 읽기 조치를 사용하고 있음을 알 수 있습니다. 또한 해당 역할이 지난 30 일 동안 CreateAccessPoint, CreateBucket, PutBucketPolicy 및 기타에 대한 쓰기 권한을 사용하지 않은 것을 확인했습니다. 이 정보를 기반으로 Martha는 정책을 업데이트하여 쓰기 권한을 제거합니다. 권한 업데이트에 대한 자세한 내용은 AWS IAM 사용 설명서의 역할 수정을 참고하세요.
시작 시에는 50일의 액세스 데이터를 검토할 수 있습니다. 즉, 이전 50일 동안 S3 작업을 사용하면 마지막으로 액세스한 타임 스탬프로 표시됩니다. 이 추적 기간이 계속 증가함에 따라 기간 요구 사항이 더 긴 사용 사례 (예: 60일 또는 90일이 사용 가능한 경우)에 적용되는 권한 결정을 시작할 수 있습니다.
Martha는 추적 기간에 GetAccessPoint 작업에 액세스 할 수 없음이 표시되어 IAM이 서비스, 작업 및 AWS 리전에 대한 액세스 추적을 시작한 이후에 해당 작업이 사용되지 않았음을 나타냅니다. 이 정보를 기반으로 Martha는 이 권한을 자신있게 제거하여 역할에 대한 권한을 추가로 줄입니다.
Martha는 예상한 작업이 그림 3의 목록에 표시되지 않음이 확인되었습니다. 이는 PaymentAppTestRole에 작업에 대한 권한이 없거나 IAM이 아직 작업에 대한 액세스를 추적하지 않는 두 가지 이유로 발생할 수 있습니다. 이러한 상황에서는 마지막으로 액세스한 작업 정보를 기반으로 해당 작업에 대한 권한을 업데이트하지 않기를 권장합니다. 자세한 내용은 AWS IAM 사용 설명서의 마지막 액세스 데이터를 사용하여 권한 개선을 참고하세요.
프로그래밍 방식으로 액세스한 마지막 작업 보기
마지막으로 액세스한 작업은 다음과 같은 기존 API에 대한 업데이트를 통해 제공됩니다. 이 API는 이제 마지막으로 액세스한 서비스 세부 사항 외에 마지막으로 액세스한 조치 세부 사항을 생성합니다.
- generate-service-last-accessed-details :이 API를 호출하여 사용자 또는 역할에 대한 서비스 및 조치 마지막 액세스 데이터를 생성하십시오. 이 API를 먼저 호출하여 사용자 또는 역할에 대한 마지막 액세스 데이터를 생성하는 작업을 시작하세요. 이 API는 작업 완료 상태를 판별하기 위해 get-service-last-accessed-details 와 함께 사용할 JobID를 리턴합니다.
- get-service-last-accessed-details :전달한 JobID 를 기반으로 사용자 또는 역할에 대한 서비스 및 조치 마지막 액세스 데이터를 검색하려면 이 API를 호출하세요.이 API는 서비스 레벨에서 페이지가 지정됩니다.
자세한 내용은 AWS IAM 사용 설명서의 GenerateServiceLastAccessedDetails를 참고하세요.
결론
S3에 대한 조치 마지막 액세스 정보를 사용하여 지원되는 S3 조치에 대한 액세스를 검토하고 사용되지 않은 조치를 제거하며 S3에 대한 액세스를 제한하여 최소 권한을 달성할 수 있습니다. 마지막으로 액세스 한 작업을 사용하는 방법에 대한 자세한 내용은 AWS IAM 사용 설명서의 마지막으로 액세스한 데이터를 사용하여 권한 수정을 참고하세요.
이 게시물에 대한 의견이 있으면 아래의 피드백 섹션에 피드백을 제출하세요. 이 게시물에 대한 질문이 있는 경우 AWS IAM 포럼에서 새 스레드를 시작하거나 AWS Support에 문의하세요.
** 메가존 클라우드 TechBlog는 AWS BLOG 영문 게재 글 중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역 및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS 페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.