AWS Security HubをAzure Security Centerへ統合してみた
いわさです。
Microsoft Ignite 2020 にて、Azure Security Centerのマルチクラウド統合機能がパブリックプレビューになりました。
AWS Security Hub、GCP Security Command Center との統合が可能になりました。
各プラットフォームで検出された設定不備や推奨事項をAzure Security Centerで管理することが出来ます。
今回は、AWS Security Hub と Azure Security Centerの統合の流れを確認してみたいと思います。
AWS Security Hubの有効化
まずAWSマネジメントコンソール上で、AWS Configを有効化した上で、AWS Security Hubを有効化します。
今回は、AWS基礎セキュリティのベストプラクティスを有効化してみました。
Azure Security Center の有効化
次はAzureポータルでの作業になります。
メニューから"セキュリティセンター"を選択します。
Azure Security Centerは無償のFreeと有償のDefenderの2つのプランがあります。
今回利用するマルチクラウド統合コネクタはDefenderプランの機能となります。 Azure Defenderを有効化するため、" アップグレード"をしてください。
AWSとAzureの統合設定
統合の仕組みとしては裏でマネージドなAzure Arcが動くため、Arcの有効化に必要ないくつかの設定を行う必要があります。
リソースプロバイダの登録
PS /Users/iwasa.takahito> Login-AzAccount PS /Users/iwasa.takahito> Register-AzResourceProvider -ProviderNamespace Microsoft.HybridCompute PS /Users/iwasa.takahito> Register-AzResourceProvider -ProviderNamespace Microsoft.GuestConfiguration
サービスプリンシパルの作成
PS /Users/iwasa.takahito> $sp = New-AzADServicePrincipal -DisplayName "Arc-for-servers" -Role "Azure Connected Machine Onboarding" PS /Users/iwasa.takahito> $sp Secret : System.Security.SecureString ServicePrincipalNames : {11111111-2222-3333-4444-555555555555, http://Arc-for-servers} ApplicationId : 11111111-2222-3333-4444-555555555555 ObjectType : ServicePrincipal DisplayName : Arc-for-servers Id : 2959bd85-8d1c-4089-989d-2da68d3714d3 Type : PS /Users/iwasa.takahito> $credential = New-Object pscredential -ArgumentList "temp", $sp.Secret PS /Users/iwasa.takahito> $credential.GetNetworkCredential().password AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE PS /Users/iwasa.takahito>
統合コネクタの作成
Azure Security Center のクラウドコネクタメニューから"AWSアカウントの追加"を選択します。
サブスクリプションを選択してください。
そうすると外部IDが表示されるので、この画面を残したままAWSマネジメントコンソールに移動します。
IAMロールを作成します。(IAMユーザのアクセスキーとシークレットを使う方法もあります)
項目 | 設定値 |
---|---|
エンティティの種類 | 別のAWSアカウント |
アカウントID | SecurityCenterのMicrosoftアカウントID |
外部IDが必要 | ON |
外部ID | SecurityCenterに表示されている外部ID(サブスクリプションID) |
次のポリシーをアタッチしてください。
- SecurityAudit
- AmazonSSMAutomationRole
- AWSSecurityHubReadOnlyAccess
作成されたロールのARNをコピーし、Azure Security Centerで入力途中だった "AWSアカウントの接続"画面で ロールARNを入力します。
サービスプリンシパルのクライアントIDとクライアントシークレットを入力します。
- クライアントIDはサービスプリンシパル作成時の表示された"ApplicationId"
- シークレットは
GetNetworkCredential().password
で取得された値
動作確認
概要にAWSアカウントが表示されていれば統合出来ています。
アクティブな推奨事項を選択してみてください。
AWS Security Hubの情報が確認出来ます。
以上となります。
おまけ:発生した問題点
AWSアカウントの接続画面にて、選択サブスクリプションが出てこない問題が発生しました。
サブスクリプションとAzureADの関連付けを行ったり、権限の昇格をやっているうちに表示されるようになりましたが、ちょっと原因がよくわかってないです。
Security Centerの有効化は時間がかかるようなので時間が経過して表示されるようになった可能性もあります。3時間くらい表示されなくて困りました。
プレビューということもあり、Azureコミュニティにフィードバックしておきました。