2.2. Ceph 認証
ユーザーを特定し、中間者攻撃から保護するために、Ceph は cephx
認証システムを提供し、ユーザーおよびデーモンを認証します。
cephx
プロトコルは、ネットワーク経由で転送されるデータや OSD に保存されるデータの暗号化には対応しません。
Cephx は共有シークレットキーを使用して認証を行います。つまり、クライアントとモニタークラスターの両方にはクライアントの秘密鍵のコピーがあります。認証プロトコルにより、両当事者は、実際にキーを公開することなく、キーのコピーを持っていることを互いに証明できます。これは相互認証を提供します。つまり、ユーザーがシークレットキーを所有し、ユーザーにはシークレットキーのコピーがあることを確認します。
Cephx
cephx
認証プロトコルは、Kerberos と同様に動作します。
ユーザー/アクターが Ceph クライアントを呼び出してモニターに接続します。Kerberos とは異なり、各モニターはユーザーを認証して鍵を配布できるため、cephx
を使用する際に単一障害点やボトルネックはありません。このモニターは、Ceph サービスの取得に使用するセッションキーが含まれる Kerberos チケットと同様の認証データ構造を返します。このセッションキー自体はユーザーの永続的なシークレットキーで暗号化されるため、ユーザーだけが Ceph モニターからサービスを要求することができます。次に、クライアントはセッションキーを使用してモニターから必要なサービスを要求し、モニターはクライアントに実際にデータを処理する OSD に対してクライアントを認証するチケットと共にクライアントを提供します。Ceph モニターおよび OSD はシークレットを共有しているため、クライアントはモニターが提供するチケットをクラスター内の任意の OSD またはメタデータサーバーと共に使用することができます。攻撃者は、Kerberos のように cephx
チケットの有効期限が切れるため、攻撃者は取得した期限切れのチケットまたはセッションキーを誤って使用できません。この形式の認証は、通信媒体にアクセスできる攻撃者が、ユーザーの秘密鍵が期限切れになる前に漏えいしない限り、別のユーザーの ID で偽のメッセージを作成したり、別のユーザーの正当なメッセージを変更したりすることを防ぎます。
cephx
を使用するには、管理者は最初にユーザーを設定する必要があります。以下の図では、client.admin
ユーザーはコマンドラインから ceph auth get-or-create-key
を呼び出して、ユーザー名およびシークレットキーを生成します。Ceph の auth
サブシステムはユーザー名およびキーを生成し、モニターでコピーを保存し、ユーザーのシークレットを client.admin
ユーザーに送り返します。つまり、クライアントとモニターが秘密鍵を共有していることを意味します。
client.admin
ユーザーは、安全にユーザー ID とシークレットキーを提供する必要があります。