설명
SES 식별자 정책은 이메일 주소나 도메인에 대한 권한을 제어합니다. 광범위한 작업을 불필요한 주체에게 허용하면 원치 않는 발송이나 식별자 관리 작업을 허용할 수 있습니다. 필요한 발송 작업과 관리 작업을 구분하고 정책의 주체, 리소스와 조건을 함께 검토하세요.
SES 정책의 작업 와일드카드가 곧 IAM 서비스의 관리 권한을 뜻하지는 않습니다. 실제 권한은 유효한 정책과 관련 접근 제어에 따라 달라집니다.
잠재적 영향
- 의도하지 않은 주체에게 발송 권한이 적용되면 원치 않는 이메일 발송과 도메인 평판 저하로 이어질 수 있습니다.
- 필요하지 않은 식별자 관리 권한은 설정 변경이나 정상 메일 처리에 영향을 줄 수 있습니다.
해결 방법
- 실제 식별자 정책을 확인하고 필요한 SES 작업과 승인된 주체를 구체적으로 지정하세요. 불필요한 작업·주체 와일드카드를 제거하세요.
Resource에 해당 SES 식별자의 ARN을 넣고 필요한 경우 지원되는 조건으로 발신 주소나 수신자 범위를 제한하세요. 계정 ARN의:root는 해당 계정에 대한 위임이며 루트 사용자 한 명만 뜻하지 않습니다.- 지원되는 모듈로 정책을 적용한 뒤 실제 정책을 다시 확인하고 필요한 작업은 허용되며 의도하지 않은 작업은 거부되는지 시험하세요.
예시
ses_identity에는 해당 계정·리전에서 검증한 이메일 주소나 도메인을 지정하세요. aws_account_id와 aws_region은 식별자 소유 계정과 리전이며 sender_account_id는 승인된 발송 계정입니다. 실제 발송에는 해당 계정의 인증·권한 및 SES 사용 요건도 충족해야 합니다.
변경 전
yaml
- name: add sending authorization policy to email identity
community.aws.ses_identity_policy:
identity: "{{ ses_identity }}"
policy_name: ExamplePolicy
policy: >
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "*",
"Principal": {
"AWS": "*"
},
"Effect": "Allow",
"Resource": "arn:aws:ses:{{ aws_region }}:{{ aws_account_id }}:identity/{{ ses_identity }}",
"Sid": ""
}
]
}
state: present
광범위한 주체에 전체 작업을 허용합니다. 식별자에 필요한 접근보다 넓지 않은지 검토해야 합니다.
변경 후
yaml
- name: add sending authorization policy to email identity
community.aws.ses_identity_policy:
identity: "{{ ses_identity }}"
policy_name: ExamplePolicy
policy: >
{
"Version": "2012-10-17",
"Statement": [
{
"Action": ["ses:SendEmail", "ses:SendRawEmail"],
"Principal": {
"AWS": "arn:aws:iam::{{ sender_account_id }}:root"
},
"Effect": "Allow",
"Resource": "arn:aws:ses:{{ aws_region }}:{{ aws_account_id }}:identity/{{ ses_identity }}",
"Sid": ""
}
]
}
state: present
승인된 계정에 두 발송 작업을 위임합니다. 실제 필요한 작업만 유지하고 해당 계정에서 누가 위임된 권한을 사용할 수 있는지 확인하세요. 필요한 발신자·수신자 조건도 추가하세요.