dehio3’s diary

仕事、生活、趣味のメモ

terraformでDBサブネットグループを作ろうとすると「Error creating DB Subnet Group: InvalidParameterValue: Missing necessary credentials. 」が出力される

事象

新規のAWSアカウントとで、初めてDBサブネットグループをterraform経由で作成しようとしたところ以下のエラーが発生

* aws_db_subnet_group.db_subnet_group: 1 error(s) occurred:

* aws_db_subnet_group.db_subnet_group: Error creating DB Subnet Group: InvalidParameterValue: Missing necessary credentials. Please check http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAM.ServiceLinkedRoles.html

エラーメッセージに表示されるリンクはこちら docs.aws.amazon.com

原因

上記リンクに記載があるが、本来コンソールから手動で作成すると自動で作成されるサービスロール(AWSServiceRoleForRDS)が、terraform経由なので作成されていなかった。

サービスにリンクされたロールを手動で作成する必要はありません。サービスにリンクされたロールは、create a DB instance すると Amazon RDS で自動的に作成されます。

対応

DBサブネットグループを作成する前に、サービスロールを作成しておく。

resource "aws_iam_service_linked_role" "AWSServiceRoleForRDS" {
  aws_service_name = "rds.amazonaws.com"
}