セキュリティ
項目一覧
Atlas は、 組織、プロジェクト、データベースレベルでユーザー権限を管理するためのシステムを提供します。 Atlas Stream Processing は、ストリーム プロセシング タスクに固有のロールと特権を追加する機能、および特定のストリーム プロセシング インスタンスに対するユーザー権限を制限する機能を使用してこのシステムを拡張したものです。
組織とプロジェクトのアクセス
ユーザーは、ストリーム プロセシング インスタンスとそれに関連する接続レジストリをプロジェクト レベルで管理します。 Atlas Stream Processing では、この目的で Project Stream Processing Owner
ロールが提供されています。 このロールを持つユーザーは、任意のストリーム プロセシング インスタンスまたは接続レジストリ管理アクションを実行し、プロジェクト内のデータベースとデータベースユーザーを管理できます。 このロールをユーザーに割り当てて、最小特権の原則に従って機能に不要な権限を付与することなく、Atlas Stream Processing プロジェクトを構成するために必要なすべてのアクションを実行できるようにします。
必要に応じて、Project Stream Processing Owner
ロールまたは ロールのいずれかを持つユーザーとして、Project Owner
Organization Owner
ロールで認可されたアクションを実行できます。
Atlas Stream Processing インスタンスのアクセス
既存のストリーム プロセシング インスタンスにアクセスし、ストリーム プロセッサをデータベース ユーザーとして管理できます。これは、Atlas クラスターにアクセスする方法と同様です。 データベースユーザーに割り当てられたロールとアクションによって、ストリームプロセシングインスタンス内のストリームプロセッサで実行できる操作が決まります。 Atlas Stream Processing では、次の特権アクションが提供されます。
processStreamProcessor
createStreamProcessor
startStreamProcessor
stopStreamProcessor
dropStreamProcessor
listStreamProcessors
sampleStreamProcessor
streamProcessorStats
listConnections
必要なデータベースユーザーまたはカスタムロールに正確にそれらの特権アクションを割り当てることができます。 あるいは、 atlasAdmin
またはreadWriteAnyDatabase
を持つデータベースユーザーは、これらのアクションをすべて実行できます。
ネットワーキング
Atlas Stream Processing は、Atlas クラスターと外部ストリーミング データソース( Apache Kafka など)への接続をサポートしています。 。Atlas 内の接続には手動構成は必要ありません。 外部ストリーミング データソースに接続するには、Atlas IP アドレスを外部ストリーミング データソースのアクセス リストに追加する必要があります。
必要な Atlas IP アドレスを特定するには、次のコマンドを実行します。
curl -H 'Accept: application/vnd.atlas.2023-11-15+json' -s \ 'https://cloud.mongodb.com/api/atlas/v2/unauth/controlPlaneIPAddresses'
プロバイダーとリージョン別にグループ化された、利用可能な Atlas IP アドレスのリストが返されます。 ターゲット ストリーム プロセシング インスタンスが配置されているプロバイダーとリージョンのペアのすべてのアウトバウンド IP アドレスを識別し、これらを外部データソースのアクセス リストに追加します。 詳細については、 「 Atlas Control Plane へのアクセスまたは Atlas Control Plane からのアクセス許可 」を参照してください。
外部のストリーミング データソースへの接続を構成する場合、パブリック IP アドレス経由のアクセスまたはVPC ピアリング接続経由のアクセスのどちらかを選択できます。 詳細については、「接続レジストリへの接続の追加 」を参照してください。
特定のストリーム プロセシング インスタンスへのアクセスの制限
デフォルトでは、Atlas Stream Processing 特権アクションを持つユーザーは、すべてのストリーム プロセシング インスタンスに対して関連する操作を実行できます。 これらの特権の適用を、特定のストリーム プロセシング インスタンスに制限できます。
AtlasGoDatabase AccessAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase Accessをクリックします。
[データベース アクセス ]ページが表示されます。
権限を変更するユーザーの行にあるEditをクリックします。
モーダル ウィンドウで、 Restrict Access to Specific Clusters /Federated Database Instances/Stream Processing Instancesというラベルの付いたスイッチをオンに切り替えます。
ユーザーに特権を付与するストリーム プロセシング インスタンスの名前を見つけます。 名前の横にあるボックスをオンにして、そのストリーム プロセシング インスタンスに対するユーザーの特権を付与します。 そのストリーム プロセシング インスタンスのユーザー特権を拒否するには、 ボックスをオフにします
実行プロファイル
Atlas データベースに接続するときに使用するデータベースユーザー ロールを、 $source
または$merge
シンクのいずれかとして構成できます。 Atlasこれにより、Atlas Stream ProcessingAtlas user インスタンスとその接続を構成する昇格特権 の認証情報を介して、 Stream Processing 固有のデータベース ユーザーが、そのデータベースをホストしているクラスターに間接的にアクセスするのを防ぐことができます。
注意
最小特権の原則に従い、ユーザーが目的の操作を実行するために必要な特権のみを持つカスタムロールを定義します。
AtlasGoStream ProcessingAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Services見出しの下のStream Processingをクリックします。
Atlas Stream Processingページが表示されます。
構成するストリーム プロセシング インスタンスの ペインで、 Configureをクリックします。
[ Connection Registry ] タブをクリックします。 構成する Atlas データベース接続の行で、クリックします。
Execute Asドロップダウン メニューから、データベースに接続するときに使用するロールを選択します。
監査
Atlas Stream Processing の監査により、管理者はストリーム プロセシング インスタンスの認証およびエンティティ マネジメント イベントを追跡できます。 特定のストリーム プロセシング インスタンスで監査可能なイベントが発生するたびに、Atlas Stream Processing はそのイベントをそのストリーム プロセシング インスタンスのログに書込みます。 は、それが属するストリーム プロセシング インスタンスの有効期間中、ログを保持します。また、Atlas Stream Processing は古いイベントを切り捨てません。 ストリーム プロセシング インスタンスを削除すると、そのストリーム プロセシング インスタンスに属するログがさらに30日間保持されます。
Atlas Stream Processing インスタンスの監査ログをダウンロードするには、「監査ログのダウンロード 」を参照してください。
Atlas Stream Processing は、次の認証イベントの監査をサポートしています。
イベント | 説明 |
---|---|
認証に成功 | ユーザーがストリーム プロセシング インスタンスに正常に接続したときに発生します |
認証の失敗 | ユーザーがストリーム プロセシング インスタンスに接続できなかった場合に発生します |
接続の終了 | ユーザーが接続を閉じたときに発生します |
Atlas Stream Processing は、次のエンティティ マネジメント イベントの監査をサポートしています。
startStreamProcessor | ユーザーがストリーム プロセッサを起動したときに発生します |
---|---|
createStreamProcessor | ユーザーがストリーム プロセッサを作成したときに発生します |
stopStreamProcessor | ユーザーがストリーム プロセッサを停止したときに発生します |
dropStreamProcessor | ユーザーがストリーム プロセッサを削除したときに発生します |
.process() | ユーザーが.process()を発行したときに発生します を呼び出す |
.sample() | ユーザーが.sample()を発行したときに発生します を呼び出す |
監査ログにアクセスしました | ユーザーが監査ログをダウンロードしようとしたときに発生します |