Table of Contents [expand]
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