Shield Private Space
この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。
最終更新日 2022年07月15日(金)
Shield Private Space には、高コンプライアンスアプリケーションをビルドするための追加機能が含まれます。Shield Private Space の利用には追加料金が必要なため、ソリューションエンジニアまたはアカウントエグゼクティブに相談して、Shield Private Space がお客様のアプリケーション要件に適しているかどうか判断することをお勧めします。
Shield の機能と制限事項
- Shield Private Space では
shield
タイプの dyno のみを実行できます。Shield dyno は暗号化された一時ファイルシステムを備え、小、中、大のサイズを選択できます。 - Shield Private Space では、
shield
の Heroku Postgres プランを利用できます。これらのデータベースでは、private
の Heroku Postgres プランでは保存できない特定の規制対象データクラスの保存が可能です。 - Shield Private Space では、
shield
の (Heroku Shield for Redis) プランの使用が許可されます。これらのデータベースは厳格な接続要件を備え、外部接続を防ぎ、暗号化されたクライアントを要求します。 - Shield Private Space では、
shield
の Heroku Connect プランを利用できます。 - Shield Private Space では、
shield
の Apache Kafka on Heroku プランを利用できます。これらのサービスでは、private
の Apache Kafka on Heroku プランでは保存できない特定の規制対象データクラスのストリーミングが可能です。 - Shield Private Space では、対話型の
heroku run
セッションに入力されたすべての入力がアプリまたは Space のログストリームに記録_されます。これにより、本番アクセス監査の特定のコンプライアンス要件を満たすことができます。 - Shield Private Space では、Space レベルでログ記録を管理_し、Space 内のすべてのアプリケーションに対して単一のログドレインを設定することが可能です。
- Shield Private Space では、より厳格な TLS ターミネーションの要件が適用されます。TLS 1.0 を使用して Shield Private Space 内のアプリケーションに接続することはできません。
- 対話型の dyno コンソールセッション (
heroku run bash
) は SSH で暗号化され、対話型の dyno セッションを実行するには SSH キーを Heroku アカウントに登録する必要があります。 - (外部の Postgres フォロワーなどの) Shield Heroku Postgres データベースに対する
heroku pg:psql
およびその他一切の外部接続は無効になり、Postgres バックアップのダウンロードも同様です。これは、コンプライアンス要件を満たすためです。 - Heroku Shield for Redis データベースへの
heroku redis:cli
やその他の外部接続はすべて無効になります。これは、コンプライアンス要件を満たすためです。 - コンプライアンス要件を満たすために Heroku Exec (SSH トンネリング) はサポートされていません。
Shield Private Space の作成
Heroku CLI を使用してShield Private Space を作成するには、--shield
オプションを指定します。
$ heroku spaces:create my-shield-space-name --shield --team my-team-name
Creating space my-space-name in team my-team-name... done
=== my-space-name
Team: my-team-name
Region: virginia
State: allocating
Private Space Logging を有効にするには、Space の作成時にログドレイン URL を指定します。
Private Space の作成後に Private Space Logging を有効にすることはできません。
$ heroku spaces:create my-shield-space-name --shield --team my-team-name --log-drain-url https://mylogdrain.com
Creating space my-space-name in team my-team-name... done
=== my-space-name
Team: my-team-name
Region: virginia
State: allocating
One-off dyno を作成するには、まず SSH キーをユーザーアカウントに追加する必要があります (これは一度だけ行う必要があります)。
$ heroku keys:add
Generating public/private rsa key pair.
...
$ heroku run bash
...
~ $
キーストロークのログ記録
Shield Private Space では、キーストロークのログ記録が提供されます。この機能により、対話型の heroku run
セッションで入力されたすべてのユーザーキーストロークがログに記録されます。これは、特定の規制要件を満たす場合に、本番アクセス監査にとって重要となる可能性があります。
たとえば、ユーザーが次のコマンドを実行するとします。
$ heroku run bash -a shield-space-app
Running bash on ⬢ shield-space-app... provisioning, run.5042 (Shield-M)
! Warning: Dynos can take up to a few minutes to be provisioned in Private Spaces.
$ echo hello
hello
アプリまたは Space のログで、対応する出力を確認できます。
$ heroku logs -a shield-space-app
...
2018-08-21T20:32:04.318608+00:00 app[session-df7030f1-c075-4074-aa4e-c0c8581d2ab7]: Creating session on run.4195 by user@example.com
2018-08-21T20:33:41.377121+00:00 heroku[run.4195]: State changed from provisioning to starting
2018-08-21T20:34:24.107283+00:00 heroku[run.4195]: State changed from starting to up
2018-08-21T20:34:33.792538+00:00 app[session-df7030f1-c075-4074-aa4e-c0c8581d2ab7]: user-input="echo hello"
Private Space Logging
Private Space Logging は Shield Private Space 専用の機能で、アプリレベルではなく Space レベルでログキャプチャを設定できます。詳細は、Private Space Logging に関する記事を参照してください。