Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Azure Key Vault

1,192 views

Published on

Azure Key Vault

Published in: Technology
  • Be the first to comment

Azure Key Vault

  1. 1. 1 アイデンティティはもう飽きた? それなら今度は Key 管理だ! Azure Key Vault 徹底解説 日本マイクロソフト株式会社 プリンシパル テクニカル エバンジェリスト 安納 順一 2017年04月16日 V2.0
  2. 2. 2 Security Concept - CIA アクセスすべきでない人から秘匿すること 情報 三者の協調動作が重要
  3. 3. 3 Security Concept - CIA Disclosure(漏洩) unauthorized
  4. 4. 4 People-centric IT User Device Application Data Network Identity Management & Authentication Access Control & Authorization Data(packet)Protection & Encryption Auditing Subjects & Objects Practices Process
  5. 5. 5 Identity and AAA Identity Authentication(認証) Authorization(認可) Accountability(説明責任) Auditing 情報 証跡 Access Active Directory Family Encrypt
  6. 6. 6 Microsoft 製品のマルチレイヤードセキュリティモデル 情報 Authentication Proactive Monitoring Access Control Encryption Key Vault
  7. 7. 7 Azure Key Vault 認可されたユーザーと アプリケーション Set Get List Delete Secret 25KB以内のバイト文字列 • SQL接続文字列 • PFX ファイル • AES 暗号化キー など HSM 保護 Key(RSAーHSM) • Thales nShield(FIPS 140-2 Level 2) • KEK(Key Encryption Key) Software 保護 Key(RSA 2048) 暗 号 化 Premium マイクロソフトが管理するマルチテナント型のHSM Certificate • X.509 Create Get Delete Update Import Encrypt Decrypt Sign Import Encrypt Decrypt Sign
  8. 8. 8 HSM とは HSM(Hardware Security Module) 乱数/キー生成機能 暗号化機能 署名機能 キーの保管、取り出し 大切なキーをハードウェア内部に保管し、外部から取り出せないようにする装置 署名依頼 キーを取り出して署名する のではなく、キーの生成、 署名を外部から依頼する。 キーを取り出さないので、 ハッキングの危険性を減ら せる。
  9. 9. 9
  10. 10. 10
  11. 11. 11 Azure Key Vault の役割 xxxxxxxx Key Certificate Secret 情報 Information Protection Azure Disk Encryption PowerShell C# Key や Secret の保護、アクセスコントロール Application Data LayerUser/Device Azure AD Service Fabric
  12. 12. 12 これまでは • Azure AD でユーザー、デバイス、アプリを認証/認可 • Key や Secret はアプリに埋め込み、または個人/企業で管理 アプリを認可 ユーザー認証 アプリの利用を認可 アクセス Secret や Key を使用してアクセス 暗号化
  13. 13. 13 さらに深いアクセス制御へ • Azure AD は アプリの Key Vault へのアクセスをコントロール • Key Vault はアプリケーションのリソースへのアクセスをコントロール アプリを認可 Secret取り出し リソースとしてアクセス権を管理 アクセス Key Vault の 使用を認可 Secret や Key を使用してアクセス ユーザー認証 アプリの利用を認可 Key Vault の使用を認可 暗号化依頼
  14. 14. 14 キーやシークレットを一元管理
  15. 15. 15 ロール別ソリューション Azure アプリケー ションの開発者 "署名と暗号化のキーを使用する Azure のアプリ ケーションを作成したいが、ソリューションが地 理的に分散したアプリケーションに合うように、 これらをアプリケーションの外部に設定したい。 また、これらのキーとシークレットは、自分で コードを記述せずに保護し、簡単にアプリケー ションから最適なパフォーマンスで使用できるよ うにしたい。” • キーは、資格情報コンテナーに格納され、必要なときに、URI によって呼び出されます。 • キーは、業界標準のアルゴリズム、キーの長さ、およびハード ウェア セキュリティ モジュール (HSM) を使用して、Azure に よって保護されています。 • キーは、アプリケーションと同じ Azure データ センター内にあ る HSM で処理されるため、信頼性が向上し、オンプレミスの 場所などの別の場所にキーが存在する場合より待機時間が削減 されます。 サービスとしての ソフトウェア (SaaS) の開発者 "顧客のテナント キーやシークレットに対して義務 や潜在的責任を負いたくない。 顧客はキーを自分で所有して管理してほしい。そ うすることで、私は自分の専門分野である、中心 的なソフトウェア機能を提供することに集中でき る。" • 顧客は Azure に自分のキーをインポートして管理でき ます。SaaS アプリケーションが顧客のキーを使用して 暗号化操作を実行する必要がある場合は、Key Vault が アプリケーションに代わって、これを行います。アプリ ケーションには、顧客のキーは表示されません。 最高セキュリティ 責任者 (CSO) "アプリケーションが、セキュリティで保護された キー管理のために FIPS 140-2 レベル 2 HSM に準 拠していることを確認したい。 組織が、キーのライフ サイクルを管理し、キーの 使用状況を確実に監視できるようにしたい。 複数の Azure サービスとリソースを使用している が、Azure の 1 つの場所からキーを管理したい。" • HSM は FIPS 140-2 レベル 2 で検証済みです。 • Key Vault は、Microsoft によってご使用のキーが参照 されたり抽出されたりしないように設計されています。 • キー使用法 (現在使用できません) のリアルタイムのロ グ記録。 • 資格情報コンテナーは、Azure にある資格情報コンテ ナーの数、それらがサポートするリージョン、およびそ れらを使用するアプリケーションに関係なく、1 つのイ ンターフェイスを提供します。
  16. 16. 16 可用性、冗長性 • リージョン内自動複製 • リージョン外自動複製 Azure Region Azure Region リージョン内複製 リージョン間複製 Primary Secondary
  17. 17. 17 Due Care:Key/Secret のライフサイクル • 有効化、無効化 • バックアップ • リストア • アクティブ化 • 有効期限
  18. 18. 18 Due Diligent: Key Vault のRBACとライフサイクル管理
  19. 19. 19 Key Vault の監視、ログ • Activity Log • Audit Log Azure Storage Event Hub Log Analytics Stream Analytics PowerBI .JSON
  20. 20. 20 Key Vault の制限 HSM- CREATE KEY HSM - その他のトランザクション ソフトキーの CREATE KEY ソフトキーのその他のトランザクション すべてのシークレット、 資格情報コンテナーに関連するトランザクション トランザクションの種類 リージョンあたりのコンテナーごとに、 10 秒間に許可される最大トランザクション数 キー コンテナーごとに許可される上限は 5 倍までです。 たとえば、1 つのサブスクリプションで許可される 「HSM - その他のトランザクションの最大数」は、10 秒間に 5000 トランザクションです。 5 1,000 10 1,500 2,000
  21. 21. 21 よくある質問 • 既存アプリで Key Vault を使用できるか? • NO. アプリケーションは Key Vault を前提に設計されていないとならない. • ただし、証明書を使用するだけならば Yes. • マイクロソフトは Key を参照できるのか? • NO • マイクロソフトは政府にキーを渡すことがあるか? Microsoft VP of LCA Brad Smith http://blogs.microsoft.com/on-the-issues/2013/07/16/responding-to-government- legal-demands-for-customer-data/ If we receive a government demand for data held by a business customer, we take steps to redirect the government to the customer directly, and we notify the customer unless we are legally prohibited from doing so.
  22. 22. 22 Azure Disk Encryption for Windows and Linux IaaS VMs
  23. 23. 23 Security Center
  24. 24. 24 Azure Disk Encryption Windows Server Linux BitLocker 外部保護キー DM-Crypt Windows OS Windows Data Linux OS Linux Data Basic VM × × × × Standard VM 〇 〇 〇 〇 暗号化方式 BitLocker BitLocker DM-Crypt DM-Crypt 暗号化 〇 〇 〇 〇 非暗号化 〇 〇 × 〇 Premium storage 既に暗号化されたストレージの設定を更新することはできない Managed storage 〇 〇 〇 〇 Backup/restore KEK 必須 KEK 必須 KEK 必須 KEK 必須 Striping/Storage Space 〇 〇 〇 〇 Classic VM × × × × 以下のファイルシステムは未サポート Azure Files (shared file system), Network File System (NFS), dynamic volumes, ソフトウェアRAIDで構成された Windows VM ※GPの「TPM保護」を 有効化しないこと
  25. 25. 25 KEK(Key encryption key) KEK (Key Encryption Key) DEK (Data Encryption Key) encryptencrypt ケルクホフス(Kerchoffs)の原理 1. 暗号方式は、現実的に(数学的にではなく)逆変換不能であること 2. 暗号方式は、秘密であることを必要としてはならず、敵の手に落ちても不都合が無いようにできること 3. 鍵は伝達可能で、文書を見なくても維持することができ、通信員が変更できること 4. 電気通信に適したものであること 5. 携帯可能であり、その利用や動作には大勢の人を必要としてはならない 6. 最後に、利用状況のことを考えて、精神的緊張や長々とした注意書きを知っていることは不要など、取り扱い易いことが必要である From Wikipedia “ケルクホフスの原理” HSM Secret ※SoftwareでもOK
  26. 26. 26 Supported OS Windows Server 2008 R2(.NET Framework 4.5) Windows Server 2012 Windows Server 2012 R2 Windows Server 2016 Windows 8 Windows 10 Ubuntu 16.04-DAILY-LTS OS and Data disk Ubuntu 14.04.5-DAILY-LTS OS and Data disk Ubuntu 12.10 Data disk Ubuntu 12.04 Data disk RHEL 7.3 OS and Data disk RHEL 7.2 OS and Data disk RHEL 6.8 OS and Data disk RHEL 6.7 Data disk CentOS 7.3 OS and Data disk CentOS 7.2n OS and Data disk CentOS 6.8 OS and Data disk CentOS 7.1 Data disk CentOS 7.0 Data disk CentOS 6.7 Data disk CentOS 6.6 Data disk CentOS 6.5 Data disk openSUSE 13.2 Data disk SLES 12 SP1 Data disk SLES 12-SP1 (Premium) Data disk SLES HPC 12 Data disk SLES 11-SP4 (Premium) Data disk SLES 11 SP4 Data disk Key Vault と VM は同じリージョン/サブ スクリプションである必要がある
  27. 27. 27 どうやって暗号化するのか • ARM template(https://github.com/Azure/azure-quickstart-templates) • PowerShell • CLI 現時点ではUIから設定することはできない
  28. 28. 28 KEKとDEKのアクセス制御 DEK(シークレット)保存 DEKをKEKでWrap REST API encrypt KEK の生成 RBAC Azure Disk Encryption Service • ARM template • PowerShell • CLI Disk Encryption がAPIにアクセス できる権限が必要
  29. 29. 29 Azure のオブジェクトモデル Azure Active Directory Subscription Resource Group VM Storage Account Key Vault Secret Key Version Version
  30. 30. 30 Key Vault はリソースグループに割り当てる Key Vault 仮想ネットワーク 仮想マシン NIC パブリックIP ストレージ リソースグループ
  31. 31. 31 “正しいアプリケーション”であることの証明 Azure Disk Encryption Service • ARM template • PowerShell • CLI userdevice application Service Principal Application id Application secret New-MsolServicePrincipalCredential -AppPrincipalId <Application Id> -Type password -Value <Application secret> Application(Client) Secret を使用する場合 Token connect-msolservice Application id Role: Key Wrap Role: Secret Set
  32. 32. 32 “正しいアプリケーション”であることの証明 Azure Disk Encryption Service • ARM template • PowerShell • CLI user device application Service Principal Application id Application secret New-MsolServicePrincipalCredential -AppPrincipalId <Application Id> -Type asymmetric -Value <CertRawData_base64> 証明書を使用する(Windowsでサポート)
  33. 33. 33 Step0 Azure AD にアプリケーション登録
  34. 34. 34 Step1 Key Vault(Premium)の作成
  35. 35. 35
  36. 36. 36 Step2 KEK の作成
  37. 37. 37 Step3 Key Vault パーミッション設定 Azure AD に登録し たApplication
  38. 38. 38 DEKを暗号化する 権限 必ず保存
  39. 39. 39 KEK の URL https://pharaojppremium.vault.azure.net/keys/KEKforDEK/431d92b51afa41458162962bb4009d81 Key名 バージョン
  40. 40. 40 Step4 ディスクを暗号化 Set-AzureRmVMDiskEncryptionExtension -ResourceGroupName $resourceGroupName -VMName $vmName -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $keyVaultResourceId -KeyEncryptionKeyUrl $KeyEncryptionKeyUrl -KeyEncryptionKeyVaultId $keyVaultResourceId -VolumeType All KeyVault の URL DEKは自動生成される
  41. 41. 41 Linux は? オンプレミスで Pre Encrypted の準備が必要
  42. 42. 42 まとめ キー/シークレット は • アプリから切り離しましょう • Key Vault で集中管理 Key Vault へのアクセスを認可するには Azure Active Directory です

×