MySQL Workbenchを使ったIAM認証によるAmazon RDS接続

AWS

2022.3.15

Topics

はじめに

こんにちは。クラウドリードチームのフクナガです。
記事をご覧いただきありがとうございます。

今回の記事では、MySQLのクライアントツールであるMySQL Workbenchを利用してIAM認証でRDSへ接続する方法についてご紹介します。

IAM認証を利用したRDS接続の環境構築

今回の記事では、「MySQL Workbenchを利用した接続方法」をメインとしているので簡潔に構築に必要な作業を記載いたします。

IAM認証によるRDS接続の構築手順

IAM ロールを使用して IAM データベース認証をセットアップするには、以下のステップを行います。

1. DB インスタンスで IAM DB 認証を有効にします。

2. AWS 認証トークンを使用するデータベースユーザーアカウントを作成します。

3. データベースユーザーを IAM ロールにマッピングする IAM ポリシーを追加します。

4. IAM ロールを Amazon EC2 インスタンスにアタッチします。

5. AWS 認証トークンを生成して、IAM ロールを識別します。

6. SSL ルート証明書ファイルまたは証明書バンドルファイルをダウンロードします。

7. IAM ロール認証情報と認証トークンまたは SSL 証明書を使用して DB インスタンスに接続します。
出典:IAM 認証情報を使用して Amazon RDS MySQL DB インスタンスに対する認証をユーザーに許可する方法を教えてください。

MySQL Workbenchを利用した接続

事前準備

  • IAMユーザの作成
    RDS接続用に作成したIAMポリシーを、利用者のIAMユーザへ付与する必要があります。こちらの認証情報を利用してローカルからRDSヘ接続することになります。
  • AWS CLIのインストール
    こちらのページを参考にローカルにAWS CLIを利用できる環境を構築する
    Installing or updating the latest version of the AWS CLI

AWS CLIにIAM情報を読み込む

作成したIAMユーザのアクセスキー、シークレットキーを取得し、以下で設定

$ aws configure
AWS Access Key ID [None]: [取得したアクセスキー]
AWS Secret Access Key [None]: [取得したシークレットキー]
Default region name [None]: [RDSが存在するリージョン]
Default output format [None]: json

MySQL Workbenchからの接続

1. Workbenchを起動

2. 「Database」>「Connect to Database」を選択

3. 各パラメータを埋める

【Parameters】
Hostname: 接続先RDSエンドポイントを入力
Username: IAM接続用に作成したDBユーザ
Password: Store in Vaultを選択し、以下コマンドで出力された接続用トークンを入力

$ aws rds generate-db-auth-token --hostname [RDSエンドポイント] --port [接続先ポート] --username [DBユーザ] --region [リージョン]

【SSL】
Use SSL:Require and Verify CA
SSL CA File: 以下でダウンロードしたルート証明書を指定
https://s3.amazonaws.com/rds-downloads/rds-ca-2019-root.pem

【Advanced】
「Enable Cleartext Authentication Plugin」にチェックを入れる

 

4. OKを押下し、接続

まとめ

今回の記事では、クライアントツール(MySQL Workbench)を利用した接続についてご紹介いたしました。
IAM認証を利用し、セキュリティ観点のリファクタリングを行う事例が増えてきていると思いますが、開発者側からは今まで通りの使い方を求められるケースも多いと思います。
その他のクライアントツールを利用した場合についてもどこかで記事にできればと思います。

テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!

フクナガ

インフラエンジニア歴5年のフクナガです。AWS(特にBedrockとCodePipeline)とGoogle Cloud(Vertex AI)が得意分野。休日はベースを弾いてます。技術力と発信力を高め、Top Engineerを目指しています。

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら