설명
IAM 허용 문에 Action: "*"와 Resource: "*"를 함께 지정하면 모든 작업과 리소스를 대상으로 하는 광범위한 권한을 나타냅니다. 실제 권한은 정책 연결, 기본 버전, 조건, 명시적 거부 및 권한 경계 등의 통제에 따라 달라집니다.
업무에 필요하지 않은 권한은 제거하세요. 정책을 여러 문으로 나누는 것만으로 권한 범위가 줄지는 않습니다.
잠재적 영향
- 넓은 권한이 실제로 적용되면 자격 증명 탈취나 오용으로 데이터 변경·삭제와 리소스 관리에 미치는 영향이 커질 수 있습니다.
- 기본 버전이 아닌 정책만 수정하면 기존 권한이 남고, 기본 버전 변경은 연결된 모든 주체에 영향을 줍니다.
해결 방법
- 연결된 사용자·그룹·역할과 기본 버전을 확인하세요. 필요한 작업만 지정하고 지원되는 경우 리소스 ARN과 조건으로 범위를 제한하세요.
- 권한 사용 기록과 다른 정책을 함께 검토하고 불필요한 읽기·쓰기·관리 작업을 제거하세요.
- 검토한 버전을 의도한 기본 버전으로 적용하고 정상 작업의 허용과 불필요한 작업의 거부를 시험하세요.
예시
정책 연결은 생략했습니다. Version: "2012-10-17"은 정책 언어 버전입니다. 기존 정책에서 make_default: false로 만든 버전은 자동으로 기본 버전이 되지 않지만, 새 정책의 첫 버전은 기본 버전이 됩니다.
변경 전
yaml
- name: IAM Managed Policy 생성
community.aws.iam_managed_policy:
policy_name: ManagedPolicy
policy:
Version: "2012-10-17"
Statement:
- Effect: Allow
Action:
- "*"
Resource: "*"
make_default: false
state: present
모든 작업과 리소스를 허용하는 문입니다. 실제 적용되는 정책과 권한 제한을 함께 확인하세요.
변경 후
yaml
- name: IAM Managed Policy 생성
community.aws.iam_managed_policy:
policy_name: ManagedPolicy
policy:
Version: "2012-10-17"
Statement:
- Effect: Allow
Action: logs:CreateLogGroup
Resource: "*"
make_default: false
state: present
이 문은 로그 그룹 생성 작업으로 좁혀졌지만 리소스 범위는 여전히 넓습니다. 필요한 로그 그룹 ARN으로 제한하고 검토한 정책 버전을 실제로 적용하세요.