Cisco Secure Dynamic Attributes Connector (CSDAC) を使ってみた

#はじめに
この記事は[FUJITSU Advent Calender 2021](https://qiita.com/advent-calendar/2021/fujitsu)の2日目の記事です。
Advent Calender初投稿になります。

まずCSDACってなんやねーんと思う人が多いはず。
CSDACは他にも複数ありますがCisco Secure Firewallの7.0から追加された機能の一つです。
今回は出たばかりなのもあり、調べても情報が少ないので使ってみた所感や見え方、動作を確認していきます。

また、画像多めですがお許しください。

>Cisco Secure Dynamic Attributes Connector (CSDAC) は、クラウドプロバイダーからデータ（ネットワークやIPアドレスなど）を収集し、Firepower Management Center (FMC) に送信することで、アクセス制御ルールに使用することができます。

長々と解説は省きますが詳細が気になる方はここが参考になります。
[Cisco Secure Dynamic Attribute Connector (CSDAC)](https://community.cisco.com/t5/security-documents/cisco-secure-dynamic-attribute-connector-csdac/ta-p/4465565)


動的にAWSやAzureで生成されたIP情報をFMCに教えれる。
→FMCが教えてもらったIPで制御を行う事ができる。

割愛した説明はこんな感じ。
![CSDAC.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1730261/1af2052f-f729-1960-936c-5bfec923da36.png)




#環境
・Cisco Firepower Threat Defense for VMware Version 7.0.0
・Cisco Firepower Management Center for VMware Version 7.0.0
・Ubuntu 18.04 LTS (CSDACと利用者サーバ)


#構成図
利用者→Web Serverへアクセスさせます。
えんじにあ君は勝手にWeb Serverとか作っちゃいます。
![CSDAC 構成図.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1730261/358fab5c-060c-7b4a-f62d-5569a0f629fd.png)



#やりたい事
1.AWS InstanceのIPをFMCが把握できるのか確認する。
　☞CSDACがちゃんとIP情報渡せてるのか？

2.利用者→Web Server のアクセスが制御できるのか確認する。
　☞IPわかっても制御ちゃんとできるのか？



#環境の準備
インストール編は今回は割愛します。
諸々の環境構築は以下の動画を参考にしてます。
[Cisco Secure Firewall 7.0 Release - Deployment of CSDAC](https://www.youtube.com/watch?v=5hVAmh7E0gU)

#AWSでInstanceを作成
AWSでWebサーバを建てます。
ここで書いてあるIPを覚えておきます。
![csdac AWS Instance.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1730261/2829b3dd-133d-d8aa-87bc-003f8377d103.png)


タグ情報をCSDACに登録するので、あらかじめ確認しておく。
![CSDAC_tag.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1730261/7997b088-d9f0-35ef-04aa-b7317034c993.png)


#CSDACの設定

以下の3つが設定できる。
ユニークな値以外は参考にした動画を参考にしてます。

![CSDAC3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1730261/d4ebed21-0709-afde-c8b2-438694350531.png)

・Connectors : AWSやAzureへのAccess key等を設定する。![CSDAC_Conect.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1730261/0f7bf44e-b82e-d8d5-b213-78f471799c5a.png)

・Adapters : FMCの情報を登録する。
![CSDAC_Adapter.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1730261/9e3d91aa-c29a-a0b4-b1d1-e9ea77acdc9b.png)

・Dynamic Attributes Filters :FMCへ教える対象を設定する。
ここでは「AWS_department_engineering」を作成しています。

![CSDAC_Filter3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1730261/b37b90a6-fe9a-6bb0-a244-124face0b4a9.png)


OperationはEqualsかContainsを選択できます。
今回はEqualsを選択します。

「Valuesの値が一致したタグの情報を持ってくる」設定になります。


![CSDAC_Filter.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1730261/81d48dff-c909-9eb4-9c53-622e074e2f35.png)

取得できてる～👆ﾖｼ！
Equalsを設定した後だとこんな感じでIPを貰えてます。


#FMC側
FMCでの制御はこんな感じ。
注目するところは見ずらいですが、IP情報で登録してるわけではなく「Destination Dynamic Attributes」にAWS_department...を登録してるところです。
IPは動的に変わったり増えたりするので、オブジェクトを登録指定してあげてます。

![CSDAC_FMC.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1730261/a23c5f03-aa8d-6c1a-03aa-8f01c5a358fc.png)

:::note info
CSDAC側で作成した”Dynamic Attributes Filters”を登録する事になるので、CSDACの設定を先にしましょう。
:::

#動作確認（成功パターン）
利用者PCからWeb Serverへのアクセスを行ってみましょう。
![Accept.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1730261/f27b40ce-d808-aa81-6c0d-ba366b545dc5.png)

アクセスできたAPACHEのよく見る画面が見れました。
他にはWeb ServerへのPingと8.8.8.8へのPingも行って疎通できています。

次はアクセスできないパターンを試してみましょう。
AWSのタグ情報を変更します👇
![CSDAC_edit.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1730261/c22bce7e-8d14-374d-866a-0c61a5a85b28.png)

CSDACの設定が”Equals”なので、一致してない場合どうなるのか確認してみましょう。



#動作確認（失敗パターン）
Web serverへのアクセスとPingが通信不可になっています。
さらに、Dynamic Attributes Filters で取得していたIP情報も見えなくなっています。
![CSDAC_block.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1730261/b000c398-10e1-4d33-9f91-9de5c0f970b0.png)

続いてタグ情報の一致が条件の”Equals”ではなく、”Contains”を設定した場合も確認します。
設定後👇

![CSDAC_accept2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1730261/4ed2a02a-2c6e-ae8a-3b24-1cdc1cb1fe21.png)

”Contains”なのでタグ情報が含まれていればいいのでWebserver_hondaEEEEでもIP情報取得できて制御できてますね。

#最後に
CSDACを触ってみてどんな動き方をするのか確認できた。
不特定多数の利用者がクラウドへのアクセスをしたい時、タグだけルール化してしまえばFMCで制御できるのでわざわざ登録する手間がなくなり幸せになる人が居そう。幸あれ


#詰まったところ（番外編）
CSDACとAWS間で時間がずれていると認証情報をpassできない。
→Ubuntu のNTPを同期して治ったが、エラーの出方が「An error occurred (AuthFailure) when calling the DescribeInstances operation」なのでNTP同期の関係に気づくのに時間がかかった。