説明
SES識別子ポリシーは、メールアドレスやドメインに対する権限を制御します。必要のない主体に広い操作権限を与えると、意図しない送信や識別子の管理操作を許す可能性があります。必要な送信操作と管理操作を区別し、主体、リソース、条件を併せて確認してください。
SESポリシーの操作のワイルドカードだけで、IAMサービスの管理権限が付与されるわけではありません。実際の権限は、有効なポリシーと関連するアクセス制御によって異なります。
想定される影響
- 意図しない主体に送信権限が適用されると、望まないメール送信やドメインの評価低下につながる可能性があります。
- 不要な識別子管理権限は、設定の変更や通常のメール処理に影響する場合があります。
対処方法
- 実際の識別子ポリシーを確認し、必要なSES操作と承認済みの主体を明示してください。不要な操作・主体のワイルドカードを削除してください。
Resourceには対象SES識別子のARNを指定し、必要なら対応する条件で送信元や受信者を制限してください。末尾が:rootのアカウントARNは、そのアカウントへの委任を表し、ルートユーザー一人だけを指すものではありません。- 対応するモジュールで適用してから実際のポリシーを再確認し、必要な操作が成功し、意図しない操作が拒否されることをテストしてください。
例
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
承認済みアカウントに二つの送信操作を委任します。実際に必要な操作だけを残し、そのアカウントの誰が委任された権限を使えるか確認してください。必要な送信元・受信者の条件も追加してください。