SCPでRDSのインスタンスクラスを制限する

SCP(サービスコトロールポリシー)でRDSのインスタンスクラスを制限する方法になります。
初めてSCPを作成したので微妙にハマりました。

RDSのインスタンスクラスを制限する

※Auroraも同じSCPで制限できます
コスト最適化のために以下のインスタンスクラスに制限
・db.t2:micro、small、medium
・db.t3:micro、small、medium
・db.t4g:micro、small、medium

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "rds:CreateDBInstance",
      "Resource": "arn:aws:rds:*:*:*:*",
      "Condition": {
        "StringNotLike": {
          "rds:DatabaseClass": [
            "db.t2.micro",
            "db.t2.small",
            "db.t2.medium",
            "db.t3.micro",
            "db.t3.small",
            "db.t3.medium",
            "db.t4g.micro",
            "db.t4g.small",
            "db.t4g.medium"
          ]
        }
      }
    }
  ]
}


気を付けるところ1

以下の「Resource」記述にするとエラーとなりました

"Resource": "arn:aws:rds:*"

「Missing ARN Field: リソース ARN には、少なくとも 6 フィールドが含まれていて、次の構造が含まれている必要があります: arn:partition:service:region:account:resource。」

対応としては以下にしました。

"Resource": "arn:aws:rds:*:*:*:*",


気を付けるところ2

インスタンスクラスの先頭に「db」を付ける。 当たり前ですが「t2.micro」だとダメで、「db.t2.micro」にすること。


気を付けるところ3

Aurora MySQLを利用する場合は
Aurora(Mysql8.0~)はmedium以下のインスタンスタイプは選択できないため、mediumも含める。


動作確認(制限確認)

エラーとなりインスタンスは作成できませんが、クラスターは作成できてしまう。。


クラスターが作成されてしまう問題はありますが、
RDS及びAuroraのインスタンスクラスは制限することができました。