AWS Security HubをAzure Security Centerへ統合してみた

2020.12.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

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コミュニティにフィードバックしておきました。