AWS 2 : Identity and Access Management
I
dentity and A
ccess M
anagement(IAM)
IAM은 AWS 자원에 대한 접근을 안전하게 제어할 수 있는 웹 서비스라고 한다.
사용하면 AWS에서 사용자, 그룹 및 역할을 생성/관리/제어할 수 있다.
다음과 같은 보안 기능을 수행할 수 있다.
인증
IAM을 사용하여 사용자가 AWS 리소스에 액세스할 때 사용자 이름과 암호를 요청하여 인증할 수 있습니다.
권한 부여
IAM을 사용하여 사용자, 그룹 또는 역할에 대한 권한을 지정할 수 있습니다. 권한은 AWS 리소스에서 수행할 수 있는 작업을 나타내며 IAM 정책을 사용하여 지정할 수 있습니다.
권한 검증
IAM을 사용하여 사용자가 AWS 리소스에 대한 액세스를 요청할 때 요청이 인증된 사용자에게 허용되는지 여부를 결정할 수 있습니다. IAM은 권한 검증을 수행하기 위해 사용자가 AWS 리소스에 대한 액세스를 요청할 때 IAM 정책을 적용합니다.IAM은 AWS에서 보안을 강화하고 규정 준수 요구 사항을 충족하는 데 중요한 역할을 합니다. IAM을 사용하면 사용자에게 필요한 권한만 부여하여 보안을 유지하고, 일부 규정 준수 규정을 준수하기 위해 일부 사용자에게만 특정 리소스에 대한 액세스를 부여할 수 있습니다
IAM에서 사용자는 AWS 계정에 액세스하는 개별 인물 또는 서비스입니다. AWS IAM에서는 계정에 액세스하는 각 사용자에 대해 별도의 보안 자격 증명을 생성할 수 있습니다. 이를 통해 사용자가 AWS 리소스에 대한 액세스 권한을 가지며, 이러한 액세스 권한은 IAM 정책을 사용하여 관리됩니다.
IAM에서 그룹은 하나 이상의 사용자를 그룹화하여 이들에게 공통된 권한을 부여하는 데 사용됩니다. 예를 들어, 특정 Amazon S3 버킷에 대한 읽기 및 쓰기 액세스를 가진 모든 사용자를 그룹화할 수 있습니다. 그룹에 대한 권한은 IAM 정책을 사용하여 관리됩니다. 그룹은 유사한 권한을 가진 여러 사용자를 효과적으로 관리할 수 있도록 도와줍니다.
IAM 정책은 AWS 리소스에 대한 액세스 권한을 지정하는 데 사용되며, 사용자 또는 그룹과 연결됩니다. IAM 정책은 JSON 형식으로 작성되며, 허용 또는 거부할 수 있는 작업 및 AWS 리소스에 대한 액세스 수준을 지정합니다. IAM 정책은 일반적으로 최소 권한 원칙을 따릅니다. 즉, 필요한 권한만 부여하고, 불필요한 권한을 제거하여 보안을 강화합니다.
위와 같이 IAM에서는 사용자, 그룹, 정책을 사용하여 AWS 리소스에 대한 액세스 권한을 지정하고 관리합니다. 이를 통해 AWS 리소스에 대한 보안을 강화하고, 사용자에게 필요한 권한만 부여하여 보안을 유지할 수 있습니다.
{ "Version": "policy-version", "Statement": [ { "Effect": "allow-or-deny", "Action": ["action-name"], "Resource": ["resource-arn"], "Condition": { "condition-operator": { "condition-key": "condition-value" } } } ] }
Version
정책의 버전을 나타냅니다.
현재는 "2012-10-17" 에서 고정되었습니다.
Statement
정책의 규칙을 나타냅니다.
배열 형태로 여러 개의 규칙을 작성할 수 있습니다.
Effect
규칙의 적용 여부를 나타냅니다.
"allow"
또는"deny"
중 하나를 선택합니다.
Action
규칙이 적용되는 작업의 종류를 나타냅니다.
예를 들어"s3:ListBucket"
과 같은 형식으로 작성합니다.
Resource
규칙이 적용되는 리소스의ARN (Amazon Resource Name)
을 나타냅니다.
예를 들어"arn:aws:s3:::my-bucket/*"
과 같은 형식으로 작성합니다.
Condition
규칙이 적용되는 조건을 나타냅니다.
필수는 아니며, 필요한 경우 추가할 수 있습니다.
다양한 조건 연산자를 사용할 수 있습니다.
예를 들어 "IpAddress" 조건 연산자를 사용하면 특정 IP 주소에서만 작업을 수행할 수 있도록 제한할 수 있습니다.
M
ulti-F
actor A
uthentication(MFA)
다요소 인증(multifactor)
=비밀번호 + 다른인증수단
추가적인 인증수단을 요구하여 유출된 정보만으로는
접근하지 못하게 안전 장치를 추가한 것이다.
구글 auth, 휴대용 OTP 등등 생각보다 주변에서 많이 볼 수 있는 인증 방법이었다.
Root User
에 반드시 반드시 적용IAM User
에도 반드시 적용MFA는 Multi-Factor Authentication의 약어로, 다중 인증 요소 인증 방식을 의미합니다.
일반적인 사용자 ID와 비밀번호 입력 외에 추가적인 인증 요소를 요구하여 보안을 강화하는 방법이다.
예를 들어, 일반적인 로그인 절차에서는 사용자가 ID와 비밀번호를 입력하여 인증을 완료한다. 하지만 MFA를 사용하는 경우, 사용자는 일반적인 로그인 정보 외에도 추가적인 인증 요소를 제공해야 한다. 이는 일반적으로 사용자의 소유물인 스마트폰 또는 하드웨어 보안 토큰 등을 사용하여 구현된다.
특히 MFA를 사용하면 사용자의 로그인 정보가 유출된 경우에도 보안을 유지할 수 있다.
예를 들어, 악의적인 공격자가 사용자의 ID와 비밀번호를 훔쳐서 로그인을 시도해도, MFA를 사용하면 추가적인 인증 요소를 입력하지 않는 한 로그인이 불가능하다. 이를 통해 AWS와 같은 클라우드 서비스에서는 중요한 데이터와 리소스를 안전하게 보호할 수 있다.
양튜터님이 로컬환경에서 테스트를 거치고 서버 배포를 해야 에러를 최소화 할 수 있다고 하셨다. 생각해보면 배포자체도 에러가 많은 과정인데 나중을 위해 테스트를 잘 해야 할 것 같다.