サーバー名の解決
Advanced Server Accessには、カスタム名解決システムが実装されています。このシステムは、Advanced Server Accessに登録されているサーバーのユーザー指定の名前の解決に使用されます。
たとえば、sft ssh web0を実行すると、web0という名前がAdvanced Server Accessで解決されます。同様に、web0上のエージェント構成ファイルにBastion: bastion.example.comが指定されている場合、bastion.example.comを解決することでweb0へのトンネルが確立されます。
Advanced Server Accessが登録済みのサーバーの名前を解決できない場合は、Advanced Server Accessはローカルにサポートされる名前解決と認証方式にフォールバックしてサーバーにアクセスします。たとえば、sft ssh web0.example.comを実行したときにAdvanced Server AccessがAdvanced Server Accessに登録されているサーバーのweb0.example.comという名前を解決できない場合は、クライアントは、ssh web0.example.comがAdvanced Server Accessなしで実行されたかのように動作します。
アクティブなサーバー
Advanced Server Accessはアクティブなサーバーに対してのみ名前を照合します。次のすべての条件が真の場合、サーバーはアクティブであると見なされます。
- サーバーはAdvanced Server Accessに登録されている
- サーバーはそれ以後Advanced Server Accessから削除されていない
- 最近サーバー上でAdvanced Server Access のエージェントが実行され、Advanced Server Accessのプラットフォームに接続できました。現在のしきい値は96時間(4日)ですが、変更される可能性があります。
特殊な場合として、管理対象外のサーバーがAdvanced Server Accessで作成された場合、これは削除されるまでアクティブと見なされます。
マッチング
名前の解決では、Advanced Server Accessは次のいずれかの値に一致するサーバーを検出します。
サーバーID
サーバーのID。登録時にAdvanced Server Accessのプラットフォームによって自動的に割り当てられるランダムUUID。
ホスト名
サーバーのホスト名。サーバーのオペレーティングシステムが報告する名前。OSホスト名が「.local」で終わる場合、プラットフォームはこれを無視します。たとえば、OSホスト名がweb0.localの場合、サーバーにはweb0としてならアクセスできますが、web0.localとしてはアクセスできません。
Advanced Server Access のエージェントの構成にCanonicalNameの値が指定されている場合、OSホスト名の代わりにこの値が使用されます。
AltNames
サーバーのAdvanced Server Access エージェント構成ファイルに指定されたAltNamesの値。AltNamesを使用することで、サーバーにエイリアスを追加できます。
デフォルトIPアドレス
Advanced Server Accessによって決定されるサーバーのデフォルトIPアドレス。
インスタンスID
サーバーがAWSまたはGCEクラウドインスタンスの場合、これはプロバイダーが割り当てたインスタンスID です。
あいまいな名前
Advanced Server Accessのクライアントに提供される名前が複数のサーバーとして解決される場合、誤って意図しないサーバーに接続するのを回避するために、クライアントはエラーを返します。
これには副次的な影響があります。サーバーが同一ホスト名の新しいサーバーに置き換えられた場合、またはエージェントが再登録を強制された場合に、管理者権限を持つユーザーは、新しいサーバーを共通の名前で指定できるように、元のサーバーレコードを手動で削除する必要があります。または、サーバーID等の明確な名前を指定するか、元のサーバーレコードが非アクティブになるまで待機することもできます。
Advanced Server Access のエージェント構成で指定されたBastion名があいまいな場合、Advanced Server Accessのプラットフォームは、一致を優先度の高い順にランク付けすることで最適な選択を試みます。
- IDまたはCanonicalName
- クラウドインスタンスID
- ホスト名
- AltNames
- デフォルトIPアドレス
接続は任意に切断されます。
IPアドレス
サーバーの解決後、Advanced Server Accessはサーバーの指定に使用されるIPアドレスの決定を試みます。
Advanced Server Accessのクライアントがサーバーに直接アクセスする場合、以下に説明するように、クライアントはサーバーのデフォルトIPアドレスの使用を試みます。
サーバーが1つまたは複数のBastion (踏み台)を介してアクセスされ、直前のBastion (踏み台)がサーバーと同じAWS VPCまたはGCEネットワークに存在する場合、Advanced Server Accessは、サーバーの対応プライベートIPアドレスを優先します。それ以外の場合、Advanced Server AccessはデフォルトIPアドレスを使用します。
デフォルトIPアドレス
Advanced Server Accessに登録されている各サーバーには、以下の値の中で利用できる最初の値であるデフォルトIPアドレスが割り当てられます。
- Advanced Server Access のエージェント構成ファイルに指定されているAccessAddressの値。
- インスタンスのメタデータに基づくAWSインスタンスのpublic_ip_v4アドレス。
- インスタンスのメタデータに基づくGCEまたはAzureインスタンスの外部または内部IPアドレス。
- パブリックアドレスの範囲内で数値的に最小のIPv4アドレス。
- プライベートアドレスの範囲内で数値的に最小のIPv4アドレス。