Foxpass は、LDAP および RADIUS ログをリアルタイムでアマゾン ウェブ サービス アカウントに送信できます。Foxpass は、さまざまなデータ処理エンジンに接続できるAmazon Kinesisデータ ストリーミング サービスにログを送信します。たとえば、次のことができます。
- ログ ストリームをリアルタイムで取り込むようにログ管理ソリューションを構成します。Kinesis プラグインは、SumoLogic (手順)、Logstash (手順)、Splunk (手順) などで利用できます。
- 今後の分析と取得のために、Amazon Kinesis Firehoseを使用してログを独自の Amazon S3 バケットに保存します。
- AWS Lambda (手順) またはAmazon Kinesis APIを使用して、カスタム ロジックでログをリアルタイムで検査します。
この機能を使用するには、あなたまたはあなたの会社が Amazon Web Services アカウントを持っていて、Foxpass の高度なログ アドオンを購入している必要があります。この機能の使用によって発生するすべての AWS データ処理およびストレージ料金は、お客様が負担するものとします。
Foxpass は、各認証リクエストを個別のレコードとして Kinesis ストリームに記録します。各レコードは、末尾に改行 ( ) を持つ JSON データ構造にフォーマットされます。JSON データ構造は、ログに記録されるサービスによって異なりますが、常に共通のフィールドが含まれています。\n
service
:LDAP 認証要求の場合は常に、RADIUS 承認要求の場合は常に"ldap"
"radius"
method
:試行されたアクション。現在、LDAP についてログに記録された唯一の方法であり、RADIUS についてログに記録された唯一の方法です。"bind"
"authorize"
message
:ログに記録されるイベントを説明する文字列timestamp
:アクションが試行された時刻。形式は次のようになります (例:)"YYYY-MM-DD HH:MM:SS.sss"
"2018-01-15 14:29:38.175"
success
:リクエストが成功したかどうかを示すブール値
bind_dn
:LDAP バインド試行で使用される識別名user_type
:通常のユーザーの場合、LDAP バインダーの場合、またはユーザーが見つからなかった場合"user"
"binder"
null
username
:認証を試みたユーザーのユーザー名、またはユーザーが見つからなかった場合null
ipAddress
:RADIUS 承認要求の送信元である IP アドレスusername
:認証を試みたユーザーのユーザー名、またはユーザーが見つからなかった場合null
Foxpass は、この機能用の AWS リソースの作成を自動化する 2 つの Amazon CloudFormation テンプレートを提供します。これらのテンプレートは、単一のユニットとして管理される AWS リソースのコレクションである新しい CloudFormation スタックを作成します。
-
テンプレート 1: ログを Kinesis ストリームに発行する:このテンプレートを使用すると、Foxpass はログ エントリを AWS アカウントの Amazon Kinesis ストリームに送信します。この時点で、他のソフトウェアを Kinesis ストリームに接続できます。この設定により、Foxpass が Kinesis ストリームにアクセスできるようにする IAM ロールも作成されます。この設定は、Foxpass ログを SumoLogic (instructions)、Logstash (instructions)、Splunk (instructions) などの Kinesis 対応ユーティリティにプッシュする場合に適しています。これは、AWS Lambda (手順) またはAmazon Kinesis APIを使用して、カスタム コンシューマー コードでも使用できます。
-
テンプレート 2: Amazon S3 にログを保存する:このテンプレートを使用すると、Foxpass はログ エントリを AWS アカウントの Amazon Kinesis ストリームに送信します。この設定は、Foxpass ログの長期アーカイブ、または Amazon S3 から読み取ることができる別のシステムにログをロードする場合に適しています。この構成では、新しいログ ファイルが約 1 分に 1 回 S3 に書き込まれます。ログ ファイルには 1 行に 1 つのレコードが含まれ、各レコードは JSON として保存されます。ログは永続的に保持されますが、ライフサイクル ポリシーを追加して、より制限された保持ポリシーを適用できます。
S3 バケットの操作に関するヒント
S3 バケット名は、S3 の既存のすべてのバケット名で一意であるため、既存のバケットとの競合を避けるために、作成時に一意の名前を指定する必要があります。
Foxpass ログを既存の S3 バケットに保存する場合は、新しいバケットを作成するのではなく、そのバケットを使用するように CloudFormation テンプレートを変更する必要があります。
- AWS コンソールにログインし、CloudFormation Management Consoleに移動します。
- [Create Stack] ボタンをクリックして、新しい CloudFormation スタックの作成を開始します。
- 次のページで、[Amazon S3 テンプレートの URL を指定する] を選択し、正しい URL を指定します。
- Amazon Kinesis ストリームへの書き込み:https://s3.amazonaws.com/foxpass-public-cloudformation/foxpass-logs-to-kinesis.yaml
- Amazon S3 のファイルへの書き込み:https://s3.amazonaws.com/foxpass-public-cloudformation/foxpass-logs-to-s3.yaml
- 次のページで、スタックの名前と、作成する Amazon Kinesis ストリームまたは S3 バケットの名前を指定するよう求められます。
- 次のページには、いくつかの高度な CloudFormation オプションが表示されます。これらのオプションを変更する必要はありません。
- 次の手順では、選択したオプションの概要が表示されます。Foxpass で使用される AWS リソースの作成を開始するには、ページの下部にある [作成] をクリックします。
- これにより、アカウント内の CloudFormation スタックのリストが表示されます。開始したばかりのスタックは、その状態が として表示されます。status に変わるまで待ちます。
CREATE_IN_PROGRESS
CREATE_COMPLETE
- スタックの準備ができたら、リストで新しく作成されたスタックをクリックし、[出力] タブをクリックします。Foxpass を構成するために必要になるため、これら 4 つの値をメモしておいてください。「Kinesis にログを送信するための Foxpass の設定」に進んでください。
Foxpass が使用する AWS リソースをより細かく制御したい場合は、Foxpass が使用する Amazon Kinesis ストリームと IAM ロールを手動で設定できます。実行時に、Foxpass はこの IAM ロールを使用して Kinesis ストリームに接続します。
Foxpass ログ専用の Amazon Kinesis ストリームを作成するか、Foxpass でアカウント内の既存の Amazon Kinesis ストリームに書き込むことができます。ストリームに特別な構成は必要ありません。ストリームに複数のシャードがある場合、Foxpass ログ レコードは、ユーザーや操作に関係なく、すべてのシャードに均等に分散されます (つまり、各レコードにはランダムなパーティション キーがあります)。
また、Foxpass が Kinesis ストリームに書き込むことを許可する IAM ロールを作成する必要があります。このロールは、AWS アカウント ID によって引き受けられる必要があり、外部 ID を必要とする必要があります (ただし、多要素認証は必要ありません)。使用する外部 ID は、コンソールに Kinesis の詳細を入力するときに Foxpass によって生成されます ([Kinesis Logging ] ページの [Add Logging Configuration] ボタンをクリックしてプロセスにします)。Foxpass が役割を引き受けることを許可する信頼関係ポリシー ドキュメントの例を次に示します。843529240033
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::843529240033:root"
},
"Condition": {"StringEquals": {"sts:ExternalId": "<ExternalID Assigned by Foxpass>"}},
"Action": "sts:AssumeRole"
}
]
}
ロールには、Kinesis ストリームでの 3 つのアクション( 、、および) を許可する IAM ポリシーが必要です。その IAM ポリシーの例を次に示します。kinesis:DescribeStream
kinesis:PutRecord
kinesis:PutRecords
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kinesis:DescribeStream",
"kinesis:PutRecord",
"kinesis:PutRecords"
],
"Resource": "<stream ARN>"
}
]
}
Event Logging アドオンを使用している Foxpass のお客様には、Kinesis Loggingという Foxpass コンソールのページが表示されます。このページでは、Foxpass アカウント内のすべての LDAP および RADIUS 認証イベントのレコードを受信する 1 つ以上の Kinesis ストリームを設定できます。
ヒント:Kinesis Logging 設定の変更が有効になるまでに最大 1 分かかります。
Foxpass で Kinesis ログ設定を作成するには、4 ビットの情報が必要です。上記の CloudFormation テンプレートのいずれかを使用して AWS リソースを作成した場合、CloudFormation スタックの [出力] タブですべての設定を利用できます。
- AWS アカウント ID:12 桁の Amazon アカウント ID
- AWS リージョン:Kinesis ストリームがある AWS リージョンの名前
- IAM ロール名:Foxpass が引き受けることができる AWS IAM ロールの名前
- Kinesis stream name:Foxpass が書き込む Kinesis ストリームの名前
新しいストリームに書き込むように Foxpass を設定するには、Foxpass コンソールのKinesis Loggingページに移動し、[Add Logging Configuration] をクリックします。構成の自由形式のわかりやすい名前と、上記の 4 つの情報を入力します。[Test & Add] をクリックすると、Foxpass は IAM ロールを引き受けて Kinesis ストリームにアクセスしようとし、テストに合格すると保存されます。
各ログ設定の横にある [アクション] メニューから [設定を無効にする] を選択すると、ログ設定を無効にできます。「アクション」メニューから「構成の削除」を選択して、既存の構成を削除することもできます。