Heroku mTLS プラグインの CLI コマンド
最終更新日 2023年04月21日(金)
Table of Contents
Heroku では、Private Heroku Postgres、Shield Heroku Postgres、Apache Kafka on Heroku の各アドオンで Mutual TLS を管理するための CLI プラグインを提供しています。mTLS CLI プラグインを追加する前に、Heroku CLI をインストールしておく必要があります。詳細は、「インストール」を参照してください。
概要
mTLS プラグインコマンドを使用して、以下を実行できます。
Heroku のプラグイン全般についての詳細は、「CLI プラグインの使用」を参照してください。
mTLS と Heroku Postgres
Heroku Postgres の場合、mTLS プラグインには以下を行うためのコマンドもあります。
Postgres と mTLS の詳細は、「外部リソースから Private または Shield の Heroku Postgres データベースに接続する」を参照してください。
mTLS と Apache Kafka on Heroku
Heroku で実行されるすべての Kafka クラスターでは、mTLS がデフォルトで有効です。
Kafka アドオンをプロビジョニングすると、Heroku で使用する mTLS 証明書が自動的に作成されます。Kafka クラスターへの接続には、これらの証明書を使用した認証が必要です。これらは、アプリケーションの KAFKA_TRUSTED_CERT
、KAFKA_CLIENT_CERT
、KAFKA_CLIENT_CERT_KEY
の各環境設定で確認できます。詳細は、「外部リソースから Private または Shield の Kafka クラスターに接続する」を参照してください。
mTLS プラグインの mtls:create
、mtls:destroy
、および各種 mtls:certificates
の各コマンドは Heroku Postgres アドオンでのみ使用できます。
インストール
Heroku Connect CLI プラグインを追加する前に、Heroku CLI をインストールしておく必要があります。手順については、「Heroku CLI」を参照してください。
Heroku CLI がインストールされている場合は、次のようにして mTLS プラグインをインストールします。
# Install the plugin
heroku plugins:install @heroku-cli/plugin-mtls
# List arguments and subcommands
heroku help data:mtls
heroku help data:mtls:certificates
heroku help data:mtls:ip-rules
Heroku Postgres 専用の mTLS コマンド
このセクションのコマンドは Heroku Postgres でのみ機能します。
Apache Kafka on Heroku アドオンでは mTLS がデフォルトで有効であり、ユーザーが無効にすることはできません。Apache Kafka on Heroku アドオンの証明書情報は、アプリの環境設定で確認できます。このセクションで説明するコマンドでは確認できません。
heroku data:mtls:create
このコマンドは、Heroku Postgres アドオンで Mutual TLS を有効にします。
USAGE
$ heroku data:mtls:create [ADDON]
OPTIONS
-a, --app=app (required) app to run command against
EXAMPLE
$ heroku data:mtls:create postgresql-sinuous-83720 --app example-app
通常、Mutual TLS の有効化には 5 ~ 10 分かかります。進捗状況は heroku data:mtls
で追跡できます。
heroku data:mtls:certificates
このコマンドは、使用可能なクライアント側証明書、その作成日、Heroku Postgres アドオンのステータスを一覧表示します。
USAGE
$ heroku data:mtls:certificates [ADDON]
OPTIONS
-a, --app=app (required) app to run command against
EXAMPLE
$ heroku data:mtls:ip-rules postgresql-sinuous-83720 --app example-app
heroku data:mtls:certificates:create
このコマンドは、mTLS が有効な Heroku Postgres アドオンの証明書を作成します。
USAGE
$ heroku data:mtls:certificates:create [ADDON]
OPTIONS
-a, --app=app (required) app to run command against
EXAMPLE
$ heroku data:mtls:certificates:create postgresql-sinuous-83720 --app example-app
heroku data:mtls:certificates:download
このコマンドは、Heroku Postgres アドオンの .zip
証明書のバンドルをダウンロードします。--id
フラグで、ダウンロードする証明書の id
を指定します。
USAGE
$ heroku data:mtls:certificates:download [ADDON]
OPTIONS
-a, --app=app (required) app to run command against
--dir=dir directory to download files to. defaults to HOME:/.postgresql
--id=id ID of certificate to download
--prefix=prefix (required) prefix to put in front of downloaded file names
EXAMPLES
$ heroku data:mtls:certificates:download postgresql-sinuous-83720 --id "3559a4df-2c82-4473-86cf-181310a6ef4f" --app example-app
$ heroku data:mtls:certificates:download postgresql-sinuous-83720 --id "3559a4df-2c82-4473-86cf-181310a6ef4f" --dir
"./folder" --app example-app
$ heroku data:mtls:certificates:download postgresql-sinuous-83720 --id "3559a4df-2c82-4473-86cf-181310a6ef4f" --prefix
"prefix_" --app example-app
この証明書のバンドルには、次の 3 つのファイルが含まれています。
PREFIX_postgres.crt
(チェーン付きのクライアント証明書)PREFIX_postgres.key
(クライアントの秘密鍵)PREFIX_root.crt
(サーバー証明書チェーン)
heroku data:mtls:certificates:get
このコマンドは、Heroku Postgres アドオンの特定の証明書の詳細を表示します。
USAGE
$ heroku data:mtls:certificates:get [ADDON]
OPTIONS
-a, --app=app (required) app to run command against
--id=id (required) id of IP Rule
EXAMPLE
$ heroku data:mtls:certificates:create postgresql-sinuous-83720 --id "1862ec85-fdc1-47b3-924e-a91d26ca3a7c" --app example-app
heroku data:mtls:certificates:delete
このコマンドは、Heroku Postgres アドオンの特定の証明書を削除します。
USAGE
$ heroku data:mtls:certificates:delete [ADDON]
OPTIONS
-a, --app=app (required) app to run command against
--id=id (required) id of certificate
EXAMPLE
$ heroku data:mtls:certificates:delete postgresql-sinuous-83720 --id "1862ec85-fdc1-47b3-924e-a91d26ca3a7c" --app example-app
heroku data:mtls:destroy
このコマンドは、Heroku Postgres アドオンで mTLS を無効にします。
USAGE
$ heroku data:mtls:destroy [ADDON]
OPTIONS
-a, --app=app (required) app to run command against
ALIASES
$ heroku data:mtls:delete
EXAMPLE
$ heroku data:mtls:destroy postgresql-sinuous-83720 --app example-app
Heroku Postgres および Apache Kafka on Heroku の mTLS コマンド
以下のコマンドは、Heroku Postgres と Apache Kafka on Heroku の両方で使用できます。
heroku data:mtls
このコマンドは、アドオンの mTLS のステータスを表示します。
Heroku Postgres アドオンの場合、このコマンドは mTLS ステータス、IP ルールのリスト、証明書のリストを表示します。
Apache Kafka on Heroku アドオンの場合、このコマンドは mTLS ステータスと IP ルールのリストを表示します。証明書の詳細はアプリの環境設定で確認できます。
USAGE
$ heroku data:mtls [ADDON]
OPTIONS
-a, --app=app (required) app to run command against
EXAMPLE
$ heroku data:mtls postgresql-sinuous-83720 --app example-app
heroku data:mtls:ip-rules
このコマンドは、アドオンの mTLS 用に設定されたすべての IP ルールの詳細を表示します。
USAGE
$ heroku data:mtls:ip-rules [ADDON]
OPTIONS
-a, --app=app (required) app to run command against
EXAMPLE
$ heroku data:mtls:ip-rules postgresql-sinuous-83720 --app example-app
$ heroku data:mtls:ip-rules kafka-animated-02313 --app example-app
heroku data:mtls:ip-rules:get
このコマンドは、特定の IP ルールの詳細を表示します。--id
フラグで IP ルールの ID を指定します。
USAGE
$ heroku data:mtls:ip-rules:get [ADDON]
OPTIONS
-a, --app=app (required) app to run command against
--id=id (required) id of IP Rule
EXAMPLE
$ heroku data:mtls:ip-rules:get postgresql-sinuous-83720 --id "1862ec85-fdc1-47b3-924e-a91d26ca3a7c" --app example-app
$ heroku data:mtls:ip-rules:get kafka-animated-02313 --id "1862ec85-fdc1-47b3-924e-a91d26ca3a7c" --app example-app
heroku data:mtls:ip-rules:create
このコマンドは、許可リストに登録された IP ブロックのリストに IP 範囲を含めるための IP ルールを mTLS 設定に追加します。--cidr
パラメータで、許可リストに登録する IP アドレスを指定します。オプションの --description
フラグで、名前を定義するか、IP 範囲のメタデータを含めます。
USAGE
$ heroku data:mtls:ip-rules:create [ADDON]
OPTIONS
-a, --app=app (required) app to run command against
--cidr=cidr (required)
--description=description
EXAMPLE
$ heroku data:mtls:ip-rules:create postgresql-sinuous-83720 --cidr "1.2.3.4/32" --description "home IP address" --app example-app
$ heroku data:mtls:ip-rules:create kafka-animated-02313 --cidr "6.7.8.0/24" --description "office IP range" --app example-app
許可リストに登録できるのはアドオンあたり 60 個の IP ブロックというハード制限があります。
個々の IP アドレスを /32
CIDR ブロックとして定義します。
heroku data:mtls:ip-rules:delete
このコマンドは、特定の IP ルールを mTLS 設定から削除します。
USAGE
$ heroku data:mtls:ip-rules:delete [ADDON]
OPTIONS
-a, --app=app (required) app to run command against
--cidr=cidr cidr of IP Rule
--id=id id of IP Rule
EXAMPLE
$ heroku data:mtls:ip-rules:delete postgresql-sinuous-83720 --id "1862ec85-fdc1-47b3-924e-a91d26ca3a7c" --app example-app
$ heroku data:mtls:ip-rules:delete kafka-animated-02313 --id "1862ec85-fdc1-47b3-924e-a91d26ca3a7c" --app example-app