
Boundaryは、動的インフラストラクチャ向けのアイデンティティベースのアクセス管理を実現します。
Boundaryはアイデンティティ認識型プロキシであり、ネットワーク上のホストや重要なシステムにアクセスするためのシンプルで安全な方法を提供します。
Boundaryでできること:
Boundaryは、理解しやすく、拡張性が高く、復元力に優れるように設計されています。クラウド、オンプレミス、セキュアエンクレーブなどで実行でき、すべてのエンドホストにエージェントをインストールする必要がないため、従来のホストシステムやサービスに加えて、マネージド/クラウドサービスやコンテナベースのワークフローへのアクセスにも適しています。
詳細については、Boundaryウェブサイトの「Boundaryとは?」を参照してください。
Boundaryは、2つのサーバーコンポーネントで構成されています:
実際のBoundary環境は、通常、1つ以上のコントローラーと1つ以上のワーカーの組み合わせで構成されます。単一のBoundaryバイナリは、これら2つのモードのいずれか、または両方として動作できます。
さらに、Boundaryは、エンドユーザーがネットワーク全体のリソースへの認可されたセッションをリクエストして確立するためのデスクトップクライアントとCLIを提供します。
Boundaryは、ホストやサービスにソフトウェアをインストールする必要は_ありません_。
Boundaryには2つの外部依存関係があります:
データベースには、Boundaryの設定情報とセッション情報が格納されます。コントローラーノードはデータベースにアクセスできる必要があります。
シークレット(例: クレデンシャル)である値は、データベース内で暗号化されます。現在、データベースとしてPostgreSQLがサポートされており、Postgres 12以上でテストされています。
Boundaryは一般的な拡張機能のみを使用し、ホステッドインスタンスとセルフマネージドインスタンスの両方がサポートされています。ほとんどの場合、必要なのはデータベースエンドポイントと適切なクレデンシャルだけです。
Boundaryは、シークレットの保護、ワーカーの認証、データの復旧、Boundary設定内の値の暗号化など、さまざまな目的でKMSキーを使用します。Boundaryは、これらの高価値キーのキースプロール(乱立)を避けるために、キー導出を広範囲に使用します。
任意のクラウドKMSまたはVaultのTransit Secrets Engineを使用して、KMS要件を満たすことができます。
Boundaryをより恒久的な環境で実行するには、ノードにデータベースとKMSへの到達方法を伝えるための簡単な設定ファイルを作成するなど、さらにいくつかの手順が必要です。以下の手順と、恒久的なインストールに必要な追加情報は、インストールガイドに詳しく記載されています。
⚠️ 開発またはテストケース以外では、
mainブランチを_使用しないでください_。Boundary 0.10でリリースブランチが導入され、これを追跡するのは安全です。ただし、mainのマイグレーションは必要に応じて番号が付け直される場合があります。長期にわたってmainを実行した結果、マイグレーションの破損やその他のバグが発生した場合、Boundaryチームは支援を提供できません。
サーバーバイナリと適切なデスクトップクライアントの最新リリースをダウンロードページからダウンロードしてください。
Boundaryには、テストに使用できるdevモードがあります。devモードでは、単一のコマンドでコントローラーとワーカーの両方を起動でき、次の特性があります:
次のローカル要件を満たしている場合は、Boundaryをすぐに使い始めることができます:
次のコマンドを実行するだけです:
make install
これでBoundaryがビルドされます。(初回実行時はUIアセットの取得とコンパイルが行われるため、数分余分に時間がかかります。)完了したら、devモードでBoundaryを実行します:
$GOPATH/bin/boundary dev
開発には他のツールが必要な場合があることに注意してください。Boundaryチームが使用しているバージョンのツール一式をインストールするには、次のコマンドを実行します:
make tools
これを実行しない場合、make installの実行中にエラーが発生する可能性があります。また、make toolsを使用すると、Boundary開発に使用されるさまざまなツールが通常のGoバイナリディレクトリにインストールされることにも注意することが重要です。これにより、システムにすでにインストールされているツールが上書きされたり、優先されたりする可能性があります。
次のコマンドでサーバーバイナリを起動します:
boundary dev
これにより、受信APIリクエストをhttp://127.0.0.1:9200で待ち受けるControllerサービスと、受信セッションリクエストをhttp://127.0.0.1:9202で待ち受けるWorkerサービスが起動します。また、さまざまなデフォルトリソースが作成され、認証に使用できるログイン名やパスワードなどのさまざまな有用な情報が表示されます。
devモードでBoundaryを簡単にテストする場合、通常はリソースをまったく設定する必要はありません! ただし、次のステップに進むために、devモードが何を行ったかを理解しておくと役立ちます。デフォルトでは、devモードは以下を作成します:
globalスコープ。パスワードタイプの認証方法と、ログイン用のアカウントが含まれます。globalの下に組織スコープ、その組織内にプロジェクトスコープ。127.0.0.1)を持つホストが含まれます。22(例: SSH)です。たとえば、別のホストに接続したい場合や接続先のポートを変更する必要がある場合は、BoundaryのWeb UIに入るか、APIを使用してこれらのデフォルト値を変更できます。
次に、Boundaryを介してローカルのSSHデーモンに実際に接続してみましょう:
dev値を使用する場合、これはboundary authenticate password -auth-method-id ampw_1234567890 -login-name admin -password passwordになります。(注: passwordフラグを含めない場合は、パスワードの入力を求められます。)boundary connect ssh -target-id ttcp_1234567890を実行します。ユーザー名を変更したい場合は、コマンドに-username <name>を渡します。ターゲット設定のオプションを確認して、セッションごとの接続数の制限(または増加)や最大時間制限の設定を試してみてください。セッションページまたはboundary sessionsを使用してアクティブなセッションのキャンセルを試したり、boundary connect -execで独自のコマンドを作成したりすることもできます。
この例は簡単に始めるための方法ですが、本番環境で実行できるいくつかの重要な手順が省略されています:
注意: 当社はBoundaryのセキュリティとユーザーの信頼を非常に真剣に受け止めています。Boundaryにセキュリティ上の問題を発見したと思われる場合は、[email protected]までご連絡いただき、_責任ある情報開示_をお願いします。
コントリビューションにご関心をお持ちいただきありがとうございます! ガイダンスについては、CONTRIBUTING.mdを参照してください。