IAM 서비스 역할 (IAM Roles for Services) 이해하기
개요
AWS에서는 다양한 서비스들이 다른 AWS 리소스와 상호작용할 수 있도록 권한을 부여해야 합니다. 이때 필요한 것이 바로 IAM 역할(IAM Roles)입니다. IAM 역할은 특정 AWS 서비스가 다른 리소스에 접근할 수 있게 해주는 중요한 요소입니다. 예를 들어, EC2 인스턴스가 DynamoDB 테이블에 접근해야 할 때, 해당 EC2 인스턴스에 IAM 역할을 할당해야 합니다.
이 글에서는 IAM 역할의 기본 개념과 함께 서비스에 IAM 역할을 전달하는 방법에 대해 다루겠습니다.
IAM 서비스 역할
AWS에서는 거의 모든 서비스가 역할을 요구합니다. 예를 들어, EC2 인스턴스, Lambda 함수, CloudFormation 등의 서비스들은 IAM 역할을 통해 다른 AWS 리소스에 접근할 수 있게 됩니다. 이 과정에서 중요한 점은 역할을 부여하는 사용자에게도 적절한 권한을 부여해야 한다는 것입니다.
역할을 AWS 서비스에 전달하기
AWS에서 중요한 점 중 하나는 역할을 서비스에 전달할 수 있는 권한을 설정하는 것입니다. 사용자가 서비스를 구성할 때 역할을 전달할 수 있는 권한을 부여하는 것입니다. 이를 위해 사용하는 IAM API 호출이 바로 iam:PassRole입니다.
iam:PassRole을 사용하면 특정 사용자가 특정 역할을 AWS 서비스에 전달할 수 있도록 설정할 수 있습니다. 예를 들어, 아래와 같은 방식으로 사용자를 제한할 수 있습니다:
- 정책 예시: 특정 역할을 EC2 인스턴스에 전달할 수 있도록 제한
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:GetRole",
"Resource": "arn:aws:iam::123456789012:role/EC2rolesFor*"
},
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": "arn:aws:iam::123456789012:role/EC2rolesFor*"
}
]
}
위의 정책은 사용자가 EC2rolesFor로 시작하는 IAM 역할만 EC2 인스턴스에 전달할 수 있도록 제한합니다.
CloudTrail 로그 확인
iam:PassRole API 호출은 자체적으로 CloudTrail 로그를 생성하지 않습니다. 대신, 실제로 IAM 역할을 부여하는 리소스를 생성하거나 수정하는 API 호출에 대한 로그를 확인할 수 있습니다. 예를 들어, EC2 인스턴스를 생성하고 해당 인스턴스에 IAM 역할을 할당한 후, CloudTrail에서 어떤 역할이 인스턴스에 할당되었는지를 확인할 수 있습니다.
결론
IAM 역할은 AWS 서비스가 다른 리소스에 접근할 수 있도록 권한을 부여하는 중요한 도구입니다. 이를 통해 사용자와 서비스 간의 권한을 명확하게 설정할 수 있습니다. 또한, iam:PassRole을 사용하여 사용자가 서비스에 특정 역할을 전달할 수 있도록 제어함으로써 보안을 강화할 수 있습니다.
이 글을 통해 IAM 역할과 역할 전달에 대한 개념을 이해하고, 실제 서비스에서의 권한 관리에 유용하게 활용할 수 있기를 바랍니다.
'자격증 > AWS Certified Security - Specialty' 카테고리의 다른 글
[AWS SCS] STS Version 1 & Version 2 (0) | 2024.12.21 |
---|---|
[AWS SCS] AWS STS (1) | 2024.12.21 |
[AWS SCS] IAM Credentials Report (0) | 2024.12.21 |
[AWS SCS] IAM MFA (0) | 2024.12.21 |
[AWS SCS] ABAC (0) | 2024.12.21 |