カスタムドメイン名の設定 - Amazon Redshift

カスタムドメイン名の設定

カスタムドメイン名の設定は、DNS プロバイダーへのドメイン名の登録や証明書の作成など、いくつかのタスクで構成されます。これらのタスクを実行したら、Amazon Redshift コンソールまたは Amazon Redshift Serverless コンソールでカスタムドメイン名を設定するか、AWS CLI で設定します。以下のセクションで、このステップについて詳しく説明します。

ドメイン名を登録し、証明書を選択する

Amazon Redshift でカスタムドメイン名を設定するには、登録されたインターネットドメイン名が必要です。Amazon Route 53 を使用するか、サードパーティーのドメイン登録プロバイダーを使用して、インターネットドメインを登録できます。これらのタスクは Amazon Redshift コンソールの外部で行われます。カスタムドメイン作成の残りの手順を進めるには、登録済みドメインがあることが前提です。

注記

プロビジョニング済みのクラスターを使用する場合は、カスタムドメイン名の設定手順を実行する前に、再配置を有効にしておく必要があります。詳細については、「クラスターの再配置」を参照してください。Amazon Redshift Serverless では、この手順は必要ありません。

カスタムドメイン名には通常、ルートドメインとサブドメインが含まれます (例: mycluster.example.com)。設定するには、以下のステップを実行します。

カスタムドメイン名の DNS CNAME エントリを作成する
  1. ルートドメイン、例えば example.com を登録します。必要に応じて、既存のドメインを選択できます。カスタム名は、特定の文字に対する制限やその他の命名検証によって制限される場合があります。Route 53 を使用してドメインを登録する方法の詳細については、「新しいドメインの登録」を参照してください。

  2. カスタムドメイン名から、クラスターまたはワークグループの Redshift エンドポイントを参照する DNS CNAME レコードを追加します。エンドポイントは、クラスターまたはワークグループのプロパティ、Redshift コンソール、または Amazon Redshift Serverless コンソールで確認できます。[一般的な情報] の下に表示されているクラスターまたはワークグループのプロパティの [JDBC URL] をコピーします。URL は次のようになっています。

    • Amazon Redshift クラスター: redshift-cluster-sample.abc123456.us-east-1.redshift.amazonaws.com

    • Amazon Redshift Serverless ワークグループ: endpoint-name.012345678901.us-east-1-dev.redshift-serverless-dev.amazonaws.com

    URL に JDBC プレフィックスが付いている場合は、削除します。

    注記

    DNS レコードの名前はそれぞれ一意で、組織内で使用できる必要があるため、DNS レコードは空き状況により異なります。

制約事項

カスタムドメインの CNAME レコードの作成には、いくつか制約があります。

  • 同一のプロビジョニング済みクラスターまたは Amazon Redshift Serverless ワークグループに複数のカスタムドメイン名を作成することはできません。CNAME レコードは 1 つだけ関連付けることができます。

  • CNAME レコードを複数のクラスターまたはワークグループに関連付けることはできません。各 Redshift リソースの CNAME は一意にする必要があります。

ドメインを登録して CNAME レコードを作成したら、新しい証明書または既存の証明書を選択します。このステップは AWS Certificate Manager を使用して実行します。

ACM にドメイン名の証明書をリクエストする
  1. AWS Management Console にサインインして、ACM コンソール (https://console.aws.amazon.com/acm/home) を開きます。

  2. [証明書のリクエスト] を選択します。

  3. [ドメイン名] フィールドにカスタムドメイン名を入力します。

    注記

    1 つの証明書を複数のカスタムドメインレコードに使用するには、証明書ドメインに加えて多数のプレフィックスを指定できます。例として、one.example.comtwo.example.com などの追加レコード、*.example.com などのワイルドカード DNS レコードを同じ証明書で使用できます。

  4. [Review and request] を選択します。

  5. [Confirm and request] を選択します。

  6. リクエストが有効であるためには、ACM が証明書を発行する前に、インターネットドメインの登録された所有者がリクエストに同意する必要があります。ステップを完了したら、ACM コンソールにステータスが [発行済み] と表示されていることを確認します。

マネージド更新の条件を満たした DNS 検証による証明書を作成しておくことをお勧めします。マネージド更新は AWS Certificate Manager で利用できます。マネージド更新では、ACM が証明書を自動的に更新するか、有効期限が近づくと E メール通知を送信します。詳細については、「ACM 証明書のマネージド更新」を参照してください。

カスタムドメインの作成

Amazon Redshift または Amazon Redshift Serverless コンソールを使用してカスタムドメイン URL を作成できます。まだ設定していない場合は、[一般情報] の下に [カスタムドメイン名] プロパティがダッシュ () で表示されます。CNAME レコードと証明書を作成したら、クラスターまたはワークグループのカスタムドメイン名を関連付けます。

カスタムドメイン名の関連付けを作成するには、次の IAM アクセス許可が必要です。

  • redshift:CreateCustomDomainAssociation — ARN を追加することにより、特定のクラスターへのアクセス許可を制限できます。

  • redshiftServerless:CreateCustomDomainAssociation — ARN を追加することにより、特定のワークグループへのアクセス許可を制限できます。

  • acm:DescribeCertificate

ベストプラクティスとして、アクセス許可ポリシーを IAM ロールにアタッチし、それを必要に応じてユーザーやグループに割り当てることをお勧めします。詳細については、「Amazon Redshift での Identity and Access Management」を参照してください。

カスタムドメイン名を割り当てるには、次のステップを実行します。

  1. Redshift コンソールでクラスターを選択するか、Amazon Redshift Serverless コンソールでワークグループを選択し、[アクション] メニューの [カスタムドメイン名の作成] を選択します。ダイアログが表示されます。

  2. カスタムドメイン名を入力します。

  3. [ACM 証明書]の ARN を AWS Certificate Manager から選択します。変更を保存します。証明書の作成手順のガイダンスに従い、AWS Certificate Manager によるマネージド更新の対象となる DNS 検証済み証明書を選択することをお勧めします。

  4. クラスターのプロパティで、[カスタムドメイン名][カスタムドメイン証明書 ARN] にエントリが入力されていることを確認します。[カスタムドメイン証明書の有効期限] も表示されます。

カスタムドメインを設定した後、sslmode=verify-full は新しいカスタムドメインでのみ使用できます。デフォルトのエンドポイントでは機能しません。ただし、sslmode=verify-ca などの他の SSL モードを使用してデフォルトのエンドポイントに接続することはできます。

注記

念のため、クラスターの再配置は、追加の Redshift ネットワーク機能を設定するための前提条件ではありません。有効にしなくても、次の項目を有効にすることができます。

  • クロスアカウントまたはクロスリージョン VPC から Redshift への接続 — ある AWS 仮想プライベートクラウド (VPC) から、Redshift データベースを含む別の仮想プライベートクラウド (VPC) に接続できます。これにより、データベースに接続する ID へのローカル VPC アクセスを提供しなくても、異なるアカウントや VPC からのクライアントアクセスなどを簡単に管理できます。詳細については、「Amazon Redshift マネージド VPC エンドポイントから Amazon Redshift Serverless への接続」を参照してください。

  • カスタムドメイン名の設定 — このトピックで説明されているように、カスタムドメイン名を作成して、エンドポイント名をよりわかりやすくすることができます。

コンソールを使用してカスタムドメインが割り当てられているクラスターの名前を変更する

注記

この一連の手順は Amazon Redshift Serverless ワークグループには適用されません。ワークグループ名を変更することはできません。

カスタムドメイン名を持つクラスターの名前を変更するには、acm:DescribeCertificate IAM アクセス許可が必要です。

  1. Amazon Redshift コンソールに移動し、名前を変更するクラスターを選択します。[編集] を選択してクラスターのプロパティを編集します。

  2. [クラスター識別子] を編集します。クラスターの他のプロパティを変更することもできます。次に、変更の保存を選択します。

  3. クラスターの名前を変更したら、DNS レコードを更新して、カスタムドメインの CNAME エントリが更新された Amazon Redshift エンドポイントを指すように変更する必要があります。

CLI コマンドを使用してカスタムドメインの関連付けを記述する

このセクションのコマンドを使用して、特定のプロビジョニング済みクラスターまたは Amazon Redshift Serverless ワークグループに関連付けられているカスタムドメイン名のリストを取得します。

次のアクセス許可が必要です。

  • プロビジョニング済みクラスター: redshift:DescribeCustomDomainAssociations

  • Amazon Redshift Serverless ワークグループ: redshiftServerless:ListCnameAssociations

ベストプラクティスとして、アクセス許可ポリシーを IAM ロールにアタッチし、それを必要に応じてユーザーやグループに割り当てることをお勧めします。詳細については、「Amazon Redshift での Identity and Access Management」を参照してください。

以下は、特定の Amazon Redshift クラスターのカスタムドメイン名を一覧表示するサンプルコマンドを示しています。

aws redshift describe-custom-domain-associations ––custom-domain-name customdomainname

カスタムドメイン名が有効になっている場合にこのコマンドを実行すると、クラスターに関連付けられているカスタムドメイン名を確認できます。カスタムドメインの関連付けを記述するための CLI コマンドの詳細については、「describe-custom-domain-associations」を参照してください。

同様に、以下は、特定の Amazon Redshift Serverless ワークグループのカスタムドメイン名を一覧表示するサンプルコマンドを示しています。この操作には、複数の実行方法があります。カスタムドメイン名だけを指定できます。

aws redshift-serverless list-custom-domain-associations ––custom-domain-name customdomainname

証明書 ARN のみを指定して関連付けを取得することもできます。

aws redshift-serverless list-custom-domain-associations ––custom-domain-certificate-arn certificatearn

カスタムドメイン名が有効になっている場合にこれらのコマンドを実行して、ワークグループに関連付けられているカスタムドメイン名を確認できます。コマンドを実行してカスタムドメインの関連付けのプロパティを取得することもできます。そのためには、カスタムドメイン名とワークグループ名をパラメータとして指定する必要があります。証明書 ARN、ワークグループ名、カスタムドメインの証明書の有効期限が返されます。

aws redshift-serverless get-custom-domain-association ––workgroup-name workgroupname ––custom-domain-name customdomainname

Amazon Redshift Serverless で利用可能な CLI リファレンスコマンドの詳細については、「redshift-serverless」を参照してください。

カスタムドメインを別の証明書に関連付ける

カスタムドメイン名との証明書の関連付けを変更するには、次の IAM アクセス許可が必要です。

  • redshift:ModifyCustomDomainAssociation

  • acm:DescribeCertificate

ベストプラクティスとして、アクセス許可ポリシーを IAM ロールにアタッチし、それを必要に応じてユーザーやグループに割り当てることをお勧めします。詳細については、「Amazon Redshift での Identity and Access Management」を参照してください。

次のコマンドを使用して、カスタムドメインを異なる証明書に関連付けます。––custom-domain-name 引数と custom-domain-certificate-arn 引数は必須です。新しい証明書の ARN は既存の ARN とは異なる必要があります。

aws redshift modify-custom-domain-association ––cluster-id redshiftcluster ––custom-domain-name customdomainname ––custom-domain-certificate-arn certificatearn

次のサンプルは、カスタムドメインを Amazon Redshift Serverless ワークグループの別の証明書に関連付ける方法を示しています。

aws redshift-serverless modify-custom-domain-association ––workgroup-name redshiftworkgroup ––custom-domain-name customdomainname ––custom-domain-certificate-arn certificatearn

クラスターに接続できるようになるまでに最大 30 秒の遅延があります。遅延の一部は Amazon Redshift クラスターがプロパティを更新するときに発生し、DNS が更新されるときにさらに遅延が発生します。API と各プロパティ設定の詳細については、「ModifyCustomDomainAssociation」を参照してください。

カスタムドメインの削除

カスタムドメイン名を削除するには、ユーザーに次のアクションのアクセス許可が必要です。

  • プロビジョニング済みクラスター: redshift:DeleteCustomDomainAssociation

  • Amazon Redshift Serverless ワークグループ: redshiftServerless:DeleteCustomDomainAssociation

コンソール内

カスタムドメイン名を削除するには、[アクション] ボタンを選択し、[カスタムドメイン名を削除] を選択します。削除後も、コンソールに一覧表示されているエンドポイントを使用するようにツールを更新すれば、サーバーに接続できます。

CLI コマンドの使用

次のサンプルは、カスタムドメイン名を削除する方法を示しています。削除操作では、クラスターの既存のカスタムドメイン名を指定する必要があります。

aws redshift delete-custom-domain-association ––cluster-id redshiftcluster ––custom-domain-name customdomainname

次のサンプルは、Amazon Redshift Serverless ワークグループのカスタムドメイン名の削除方法を示しています。カスタムドメイン名は必須パラメーターです。

aws redshift-serverless delete-custom-domain-association ––workgroup-name workgroupname ––custom-domain-name customdomainname

詳細については、「DeleteCustomDomainAssociation」を参照してください。

SQL クライアントを使用して、カスタムドメイン名でクラスターまたはワークグループに接続する

カスタムドメイン名で接続するには、プロビジョニング済みクラスターでは、IAM アクセス許可 redshift:DescribeCustomDomainAssociations が必要です。Amazon Redshift Serverless では、アクセス許可を追加する必要はありません。

ベストプラクティスとして、アクセス許可ポリシーを IAM ロールにアタッチし、それを必要に応じてユーザーやグループに割り当てることをお勧めします。詳細については、「Amazon Redshift での Identity and Access Management」を参照してください。

コンソールで CNAME を作成してクラスターまたはワークグループに割り当てるステップを完了したら、SQL クライアントの接続プロパティでカスタム URL を指定できます。CNAME レコードを作成した直後に DNS の伝播が遅れる場合があることに注意してください。

  1. SQL クライアントを開きます。例えば、SQL/Workbench J を使用できます。接続のプロパティを開き、接続文字列にカスタムドメイン名を追加します。例えば、jdbc:redshift://mycluster.example.com:5439/dev?sslmode=verify-full と指定します。この例では、dev はデフォルトのデータベースを指定します。

  2. データベースユーザーの [ユーザー名][パスワード] を追加します。

  3. 接続をテストします。特定のテーブルなどのデータベースリソースをクエリできるかどうかは、データベースユーザーに付与されるアクセス許可または割り当てられた Amazon Redshift データベースロールに付与されるアクセス許可によって異なる場合があります。

    クラスターまたはワークグループが VPC 内にある場合は、パブリックにアクセスできるように設定しないと接続できない場合があります。この設定はネットワークプロパティで変更できます。

注記

カスタムドメイン名への接続は、JDBC ドライバーと Python ドライバーでサポートされています。ODBC 接続はサポートされていません。