Atlas は、 組織、プロジェクト、データベースレベル でユーザー権限を管理するためのシステムを提供します。 Atlas Stream Processing は、ストリーム処理タスクに固有のロールと特権を追加する機能、および特定のストリーム処理ワークスペースへのユーザー権限を制限する能力を使用してこのシステムを拡張します。
組織とプロジェクトのアクセス
ユーザーは、ストリーム処理ワークスペースとそれに関連する接続レジストリをプロジェクトレベルで管理します。 Atlas Stream ProcessingProject Stream Processing Owner では、この目的で ロールが提供されています。このロールを持つユーザーは、任意のストリーム処理ワークスペースまたは接続レジストリ管理アクションを実行し、プロジェクト内のデータベースとデータベースユーザーを管理できます。このロールをユーザーに割り当てて、最小特権の原則に従って機能に不要な権限を付与することなく、Atlas Stream Processingプロジェクトを構成するために必要なすべてのアクションを実行できるようにします。
必要に応じて、Project Stream Processing Owner ロールまたは ロールのいずれかを持つユーザーとして、Project Owner Organization Ownerロールで認可されたアクションを実行できます。
Atlas Stream Processing ワークスペースのアクセス
Atlas クラスターにアクセスする方法と同様に、既存のストリーム処理ワークスペースにアクセスし、ストリーム プロセッサをデータベースユーザーとして管理できます。データベースユーザーに割り当てられたロールとアクションによって、ストリーム処理ワークスペース内のストリームプロセッサで実行できる操作が決まります。 Atlas Stream Processing では、次の特権アクションが提供されます。
processStreamProcessorcreateStreamProcessorstartStreamProcessorstopStreamProcessordropStreamProcessorlistStreamProcessorssampleStreamProcessorstreamProcessorStatslistConnections
必要なデータベースユーザーまたはカスタムロールに正確にそれらの特権アクションを割り当てることができます。 あるいは、 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特権アクションを持つユーザーは、すべてのストリーム処理ワークスペースに対して関連する操作を実行できます。これらの特権のアプリケーションを、特定のストリーム処理ワークスペースに制限できます。
Atlas Atlasで、プロジェクトの {0 ページにGoします。GoDatabase & Network Access
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase & Network Accessをクリックします。
[ データベースとネットワーク アクセス ] ページが表示されます。
権限を変更するユーザーの行にあるEditをクリックします。
モーダル ウィンドウで、 Restrict Access to Specific Clusters /Federated Database Instances/Stream Processing Workspacesというラベルの付いたスイッチをオンに切り替えます。
ユーザーに特権を付与するストリーム処理ワークスペースの名前を見つけます。名前の横にあるボックスをオンにして、そのストリーム処理ワークスペースに対するユーザーの特権を付与します。そのストリーム処理ワークスペースのユーザー特権を拒否するには、 ボックスをオフにします
実行プロファイル
Atlasデータベースに接続するときに使用するデータベースユーザーロールを、$source または$merge シンクのいずれかとして構成できます。これにより、Atlas Stream Processing 固有のデータベースユーザーが、ストリーム処理ワークスペースとその接続を構成する昇格特権 Atlas ユーザーの認証情報を介して、そのデータベースをホストしているクラスターに間接的にアクセスするのを防ぐことができます。
注意
最小特権の原則に従い、ユーザーが目的の操作を実行するために必要な特権のみを持つカスタムロールを定義します。
AtlasGoStream ProcessingAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Streaming Data見出しの下の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 は、次のエンティティ マネジメント イベントの監査をサポートしています。
startStreamProcessor | ユーザーがストリーム プロセッサを起動したときに発生します |
|---|---|
createStreamProcessor | ユーザーがストリーム プロセッサを作成したときに発生します |
stopStreamProcessor | ユーザーがストリーム プロセッサを停止したときに発生します |
dropStreamProcessor | ユーザーがストリーム プロセッサを削除したときに発生します |
.process() | ユーザーが.process()を発行したときに発生します を呼び出す |
.sample() | ユーザーが.sample()を発行したときに発生します を呼び出す |
監査ログにアクセスしました | ユーザーが監査ログをダウンロードしようとしたときに発生します |