소개
때로는 리소스를 다른 출처의 사용자들과 공유해야 할 필요가 있다. 예를 들어, 다른 AWS 계정, 외부 사용자, 익명 사용자 등과 리소스를 공유해야 하는 경우가 있다. AWS는 관리자가 외부 AWS 계정의 아이덴티티가 리소스에 접근할 수 있는 여러 가지 방법을 제공한다.
리소스를 공유하는 것은 보안 위험을 초래할 수 있으며, 여러 출처에서 인증 및 권한 부여를 관리하고 보안하는 데 있어 관리자의 부담을 증가시킬 수 있다.
이번에는 세 가지 서비스를 통해 리소스를 공유하고 보안하는 방법을 배워보자
1.AWS IAM
2.AWS RAM
3.Amzon Cognito


AWS IAM
:관리자가 정책을 통해 리소스에 대한 접근을 제어할 수 있고 동일한 JSON 형식을 사용하여 정책을 정의하고, IAM 정책을 통해 접근이 허용 및 제한된다.
AWS RAM
:관리자가 정책을 통해 리소스에 대한 접근을 제어할 수 있고 동일한 JSON 형식을 사용하여 정책을 정의하며, 'Managed permission'을 통해 접근이 허용된다.
Amazon Cognito
:관리자가 정책을 통해 리소스에 대한 접근을 제어할 수 있으며, 동일한 JSON 형식을 사용하여 정책을 정의한다.
이 서비스를 사용함으로써, 관리자는 공유하는 리소스에 대해 광범위한 제어를 할 수 있다. 정책을 통해 영향을 받는 리소스, 허용된 작업, 접근할 수 있는 사용자 및 추가 조건을 선택할 수 있다.

리소스 공유 보안을 요약해보자
리소스를 공유하면 AWS 조직 외부의 사용자에게 접근할 수 있게 된다. 때로는 이러한 사용자가 조직의 관리 범위 내에 있지 않을 수 있으며, 암호 길이, 복잡성 요구 사항 및 회전 설정과 같은 표준에 따라 보안되지 않을 수 있다. 외부 사용자는 공유된 리소스에 접근할 수 있으므로, 사용자를 제한하고 리소스와 권한을 제한하는 것이 모범 사례다.
이러한 사용자는 보안 위험을 초래할 수 있으며 권한 있는 사용자로서 모니터링해야 한다. 모니터링은 다음 방법을 통해 수행할 수 있다:
MFA (Multi-Factor Authentication) 강제 적용
IAM 정책 또는 역할 구성을 사용하여 인증 시 MFA를 강제 적용한다.
세션 시간 제한
필요한 작업에 맞게 IAM 역할 세션을 가능한 짧게 구성한다.
리소스 공유 분리
가능한 경우 여러 리소스 또는 리소스 유형의 공유를 방지한다.
조건부 접근 강제 적용
특정 IP 주소에서의 연결을 강제하거나 정책을 기간으로 제한하는 등의 보안 조건을 정책에 사용한다.
최소 권한 정책 사용
특정 작업 및 리소스에 대해 최대한 구체적으로 정책을 조정한다.
접근 모니터링
사용자의 접근 및 활동을 모니터링하여 이상 징후를 검색한다.
이러한 방법을 통해 리소스 공유와 관련된 보안 위험을 최소화하고, 안전한 환경에서 리소스를 효율적으로 관리할 수 있다.
문제풀기에 앞서 요약을 해보자면
리소스를 공유하는 것은 관리, 외주, 중앙 집중화 또는 설계에 의해 공유해야 할 필요가 있을 수 있다.
AWS는 조직 외부의 사용자에게 리소스를 공유하고 보안하는 여러 가지 방법을 지원한다. 제시된 방법 외에도 S3, RDS, SNS, SQS와 같은 서비스는 리소스 수준에서의 공유를 허용한다.
리소스를 공유하면 보안과 관련된 도전 과제와 부담이 추가된다. 여기에는 증가하는 사용자, 역할, 모니터링 및 사용 사례 관리가 포함된다. 익명 사용자와 리소스를 공유할 때는 조직의 보안을 보장하기 위해 극도의 주의가 필요하다.
정책 사용을 숙달하고 AWS 보안 기능을 활용하는 것은 조직 내외부에서의 안전한 공유를 보장하는 데 필수적이다.

T

F
여러 역할을 정의하고 사용자 유형에 따라 서로 다른 역할을 할당할 수 있다. 이는 특정 조건에 따라 다양한 역할을 부여하여 세분화된 권한 관리를 가능하게 한다.

F
AWS IAM 역할은 특정 사용자, 그룹 또는 서비스에 권한을 부여하도록 설계되었으며, 익명 사용자에게 직접 권한을 부여하는 것은 보안상의 이유로 허용되지 않는다. 익명 사용자에게 권한을 부여하려면 AWS에서 제공하는 임시 자격 증명이나 퍼블릭 액세스 설정을 통해 제한된 권한을 제공해야한다.

F
Amazon Cognito는 IAM 역할을 통해 사용자가 필요한 권한을 부여받을 수 있도록 설정할 수 있습니다.

F
AWS Resource Access Manager (RAM)은 특정 리소스를 여러 AWS 계정 간에 공유할 수 있게 해주는 도구
RAM은 역할 기반 공유와는 다른 방식으로 동작하며, 역할 기반 접근 제어와 결합하여 사용할 수 있지만, RAM 자체가 추가 보안 계층을 제공하는 것은 아니다. 역할 기반 공유는 여전히 IAM 정책과 역할을 통해 세밀한 접근 제어를 제공하므로, 두 가지 방법 모두 각자의 용도에 맞게 사용하는 것이 중요하다.

F
AWS Resource Access Manager (RAM)은 익명 사용자에게 권한을 부여할 수 없다.

F
AWS Resource Access Manager (RAM)은 리소스 유형당 하나의 관리 정책으로 제한되지 않는다.

T
여러 AWS 리소스에 대한 권한을 사용자에게 부여할 수 있다.

T
AWS IAM 역할을 사용하면 단일 역할이 여러 AWS 계정에 있는 사용자들에게 권한을 부여할 수 있다.

T
Amazon Cognito는 익명 사용자에게도 권한을 부여할 수 있다.

T
AWS는 외부 사용자에게 특정 서비스 관리 권한을 부여할 수 있는 기능을 제공한다.

T
AWS는 CloudTrail과 같은 서비스를 통해 외부 사용자가 공유 리소스에서 수행한 작업을 모니터링할 수 있는 기능을 제공한다.

F
IAM 사용자와 역할을 통해 외부 계정의 사용자에게도 인증 방법을 제어할 수 있다.

T
AWS IAM 역할과 정책을 사용하면 특정 외부 사용자에게만 권한을 제한할 수 있다.

F
AWS Resource Access Manager (RAM)은 공유 리소스 당 하나의 관리 정책으로 제한되지 않는다.

T
AWS RAM을 통해 리소스를 공유할 때, 공유된 리소스마다 하나의 관리 정책을 적용할 수 있습니다.