RDS CloudWatch告警需要IAM角色来授权CloudFormation访问相关资源。您可以在CloudFormation模板中使用以下代码来创建IAM角色:
"MyIAMRole": {
"Type": "AWS::IAM::Role",
"Properties": {
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"cloudformation.amazonaws.com"
]
},
"Action": [
"sts:AssumeRole"
]
}
]
},
"Policies": [
{
"PolicyName": "MyPolicy",
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"rds:DescribeDBInstances",
"cloudwatch:GetMetricStatistics",
"sns:Publish"
],
"Resource": "*"
}
]
}
}
]
}
}
您可以将上面的IAM角色添加到您的CloudFormation模板中,同时将其分配给RDS CloudWatch Alarm。示例代码如下:
"Alarms": {
"Type": "AWS::CloudWatch::Alarm",
"Properties": {
"AlarmName": "MyAlarm",
"AlarmDescription": "My RDS alarm",
"MetricName": "CPUUtilization",
"Namespace": "AWS/RDS",
"Statistic": "Average",
"Period": "60",
"EvaluationPeriods": "5",
"Threshold": "80",
"ComparisonOperator": "GreaterThanOrEqualToThreshold",
"Dimensions": [
{
"Name": "DBInstanceIdentifier",
"Value": {"Ref": "MyDBInstance"}
}
],
"AlarmActions": [
{"Ref": "MySNSTopic"}
],
"OKActions": [
{"Ref": "MySNSTopic"}
],
"InsufficientDataActions": []
},
"DependsOn": ["MyIAMRole"]
}
在上