AWS SAA 공부 IAM.1

2022. 5. 18. 14:28Cloud/AWS 기초

AWS IAM

리소스를 사용할 수 있는 인증(로그인)및 권한 부여(권한 있음)을 제어한다. AWS 계정 루트사용자는 계정의 모든 AWS 서비스 및 리소스에 대한 완전한 액세스 권한이 있는 단일 로그인 자격증명이다.

특별한 암호나 엑세스 키를 공유하지 않고도 AWS 계정의 리소스를 관리하고 사용할 수 있는 권한을 다른 사람에게 부여할 수 있다. 또한 다른 리소스에 대해 다른 사용자에 다른 권한을 부여할 수 있다. 또한 IAM기능을 사용해 애플리케이션이 다른 AWS 리소스에 액세스 할 수 있는 권한을 제공하는 EC2 인스턴스에서 실행되는 애플리케이션에 대한 자격 증명을 안전하게 제공할 수 있다.

추가 보안을 위해 계정과 개별 사용자에 이중 요소 인증을 추가할 수 있다. 

 

 

AWS IAM 보안의 모범사례
AWS 계정 루트 사용자 액세스 키를 잠궈야함.
역할을 사용하여 권한 위임
최소 권한 부여
AWS 관리형 정책으로 권한 사용 시작하기
정책 검증
인라인 정책 대신 고객 관리형 정책 사용
액세스 수준을 사용하여 IAM 권한 검토
사용자를 위한 강력한 암호 정책 구성
MFA 활성화
Amazon EC2 인스턴스에서 실행되는 애플리케이션에 역할 사용
액세스 키 공유 금지
정기적으로 자격 증명 교체
불필요한 자격 증명 제거
추가 보안을 위해 정책 조건 사용
AWS 계정의 활동 모니터링

AWS IAM(Identity and Access Management) DB 인증
MySQL과 PostgreSQL에서 작동가능한 인증방법이다. 이 인증방법을 사용하게 되면 DB인스턴스에 연결할 때 암호를 사용하는것이 아니라 인증 토큰을 활용해 접근할 수 있게 된다.

* 인증토큰
  AWS RDS가 요청시 생성하는 고유한 문자열을 의미한다. 약 15분의 수명을 가지고 있으며 서명버전4를 사용하고있다. 인증은 IAM을 ㅁ사용해 외부에서 관리되기에 DB에 사용자 자격 증명을 저장할 필요가 없다.

1. DB를 오가는 네트워크 트레픽은 SSL(Secure Sockets Layer)를 사용해 암호화 한다.
2. 각 DB 인스턴스에 대한 엑세스를 개별적으로 관리하는 대신, IAM를 통해 중앙관리화를 할 수 있다.
3. EC2에서 실행되는 에플리케이션은 프로필 자격 증명을 사용해 암호 대신 DB에 엑세스하여 보안을 강화할 수 있다.

즉 EC2 인스턴스에서 고객의 기밀 데이터를 보호하고, 인증 토큰을 활용해 프로필 자격을 증명하기 위해서는 AWS IAM DB 인증을 활성화 해야 한다.

AWS Security Token Service (STS)
IAM사용자가 사용할 수 있는 장기 엑세스 키 자격 증명과 거의 동일하게 작동하는 기능이다. AWS 리소스에 대한 엑세스를 제어할 수 있는 임시 보안 자격 증명(단기 엑세스 토큰)을 생성하고, 신뢰할 수 있는 사용자에게 제공하는데 사용할 수 있는 서비스이다. STS는 Microsoft AD FS를 사용하여 Microsoft Active Directory를 활용할 수 있는 SAML2.0과 같은 개방형 표준을 지원한다. SAML2.0을 사용해 사용자 ID 연합을 위한 자체 솔루션을 관리할 수 있다.
VPD에서 LDAP디렉터리 서비스를 통합해야할 때, 특히 현재 사용중인 ID 저장소와 SAML가 호환되지 않을 경우, 온프레미스 사용자 지정 자격 증명 브로커 에플리케이션을 개발한 후 STS를 사용해 단기 AWS 자격 증명을 발급해야한다.

IAM user(사용자)
루트 사용자 자격 증명을 다른 사람과 공유하는 대신, 계정 내에서 조직의 사용자에 해당하는 개별 IAM사용자를 생성할 수 있다. IAM사용자는 별도의 계정이 아닌, 계정 내 의 사용자다. 기본적으로 권한이 아무것도 없으며 사용자는 글로벌 엔터티이다. 각 사용자는 AWS Managerment콘솔에 엑세스하기 위한 고유암호를 가질 수 있다. 또한 각 사용자에 대해 개별 엑세스 키를 생성하여 사용자가 계정의 리소스에 대해 프로그래밍 방식으로 요청할 수 도 있도록 한다.

IAM 연합사용자
조직의 사용자에게 이미 인증방법이 있는 경우 해당 사용자 자격 증명을 AWS에 연동할 수 있다.

IAM groups
IAM USER의 모음이다. USER를 그룹으로 구성하고 그룹에 엑세스 제어 정책을 연결할 수 있다. 사용자는 여러 그룹에 속할 수 있으나, 그룹은 다른 그룹에 속할 수 없다. 그룹자체에는 보안 자격 증명이 없으며 웹 서비스에 직접 엑세스 할 수 없다.

IAM role(역할)
role에는 연결된 자격 증명이 따로 없다. IAM사용자는 특정 작업에 대한 다른 권한을 일시적으로 맡는 역할을 할 수 있으며, IAM사 대신 외부 자격 증명 공급자를 사용하여 로그인 하는 연동 사용자에게 역할을 할당할 수 있다.
인스턴스 프로파일은 인스턴스가 시작될 때 EC2 인스턴스에 역할 정보를 전달하는데 사용할 수 있는 IAM role의 컨테이너이다.
사용자 또는 그룹에 서로 다른 권한을 부여하는 여러 정책이 연결되어 있을 수 있다.

AWS Service role
서비스가 사용자를 대신해 계정에서 작업을 수행하기 위해 수암하는 역할이다. 이 service role에는 서비스가 필요한 aws 리소스에 엑세스하는데 필요한 모든 권한이 포함되어야 한다.
 - EC2인스턴스에 대한 AWS 서비스 역할
    서비스가 애플리케이션을 실행하는 EC2인스턴스를 시작하기 위해 수임하는 특별한 유형의 서비스 역할. 시작될 때 EC2인스턴스에 할당된다.

 - AWS Service-linked role
    AWs 서비스에 직접 연결된 고유한 유형의 서비스 role이다. 서비스에 의해 사전 정의가 되며, 사용자를 대신해 다른 aws 서비스를 호출하는데 필요한 모든 권한을 포함한다.


IAM 자격 증명
AWS리소스에 대한 API 호출을 수행할 수 있도록 하는 방법이다. 사용자에 대해 엑세스 키 세트를 생성하고, 필요한 권한을 첨부할 수 있다.
AWS Management console을 사용하여 사용자를 생성할 때 최소한 콘솔 암호 또는 엑세스 키를 포함하도록 선택해야한다. 기본적으로는 AWS CLI또는 AWS API를 사용하여 생성된 새로운 IAM사용자에게는 어떤 종류의 자격 증명도 없다. 사용자의 요구사항에 따라 IAM 사용자에 대한 자격 증명 유형을 생성해야 한다.
엑세스 키
 - IAM 사용자 또는 AWS 계정 루트 사용자의 장기 자격 증명이다. AWS CLI or AWS API에 대한 프로그레밍 방식 요청에 서명할 수 있다.(직접 또는 AWS SDK를 사용해서)

엔터프라이즈 ID 연합
AD또는 LDAP디렉터리의 SSO(single sign-on, 통합인증) 기능을 통합하고, 각 개별 사용자의 엑세스를 S3버킷의 지정된 사용자 폴더로 제한하는 솔루션을 의미한다. 
버켓에 엑세스 하도록 IAM 역할 및 IAM 정책을 구성해야하며, 연합 프록시 또는 자격 증명 공급자를 설정하고, AWS STS를 사용해 임시 토큰을 생성해야 한다.

SSO(single sign-on)
엔터프라이즈 자격 증명 연동에서는 조직 네트워크의 사용자를 인증한 다음, 새 AWS 자격 증명을 생성하고 별도의 사용자 이름과 암호로 로그인하도록 요구하지 않고, 해당 사용자에게 AWS에 대한 엑세스를 제공할 수 있다.

웹 ID 연합
사용자 정의 로그인 코드를 생성하거나, 고유한 사용자 ID를 관리할 필요가 없다. 대신 앱 사용자는 기타 OIDC(openID Connect. ex)구글로 로그인, 카카오톡으로 로그인 등)호환 IdP와 같은 잘 알려진 ip 제공자를 사용하여 로그인하고 인증 토큰을 받은 다음 교환할 수 있다. 이 서비스를 사용하게 되면 장기 보안 자격 증명을 포함하고, 배포할 필요가 없기에 AWS 계정을 안전하게 보호하고 유지하는데 도움이 된다.




'Cloud > AWS 기초' 카테고리의 다른 글

AWS RDS 및 Amazon DynamoDB  (0) 2022.05.30
AWS SSA 공부 KMC part.1  (0) 2022.05.29
AWS SSA 공부 RDS.1  (0) 2022.05.18
AWS SAA 자격증 준비.1  (0) 2022.05.11
AWS Auto Scaling & Load Balancer(오토 스케일링과 로드 벨런서)  (0) 2022.02.16