There are 4 IAM roles and anyone of those three should be in place to create alerting policy in GCP
Monitoring Editor
Grants read-write access to Monitoring in the Google Cloud console and API,
and grants read-write access to a metrics scope when using the Google Cloud console. Write access to a metrics scope grants permission to add (or remove) monitored Google Cloud projects to that metrics scope.
Predefined role : roles/monitoring.editor
Monitoring Admin
Grants full access to Monitoring in the Google Cloud console and API,
and grants read-write access to a metrics scope. Write access to a metrics scope grants permission to add (or remove) monitored Google Cloud projects to that metrics scope.
Predefined role : roles/monitoring.admin
Project Owner
The Monitoring permissions are the same as those in roles/monitoring.admin.
Predefined role : roles/owner
Alert Policy Editor
This role ID grants the minimal permissions that are needed to create an alerting policy.
It has
monitoring.alertPolicies.create
monitoring.alertPolicies.delete
monitoring.alertPolicies.get
monitoring.alertPolicies.list
monitoring.alertPolicies.update
Predefined role : roles/monitoring.alertPolicyEditor
Use either predefined role roles/monitoring.alertPolicyEditor
or add monitoring.alertPolicies.list
in order to create a alert policy.
Note :
Sometimes an alerting policy requires some extra permissions related to cloud logging and notification channels so you might need to provide roles/monitoring.editor
role to create alerting policy.
References :
https://cloud.google.com/monitoring/alerts#cc-perms
https://cloud.google.com/monitoring/alerts#api-perms