O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Azure DevOps Management in Organization

Management tips for Azure DevOps. Azure AD and security.

  • Seja o primeiro a comentar

Azure DevOps Management in Organization

  1. 1. Azure DevOpsと IDと セキュリティ管理 かめがわ かずし(@kkamegawa)
  2. 2. Self-intrduction  KAMEGAWA Kazushi / Engineer Microsoft MVP for Developer Technologies (2012/7~)  Twitter : @kkamegawa Facebook : https://www.facebook.com/kkamegawa/ Blog : http://kkamegawa.hatenablog.jp SlideShare : https://www.slideshare.net/kkamegawa/  出版など  アジャイルでやってみた。 http://www.shuwasystem.co.jp/products/7980html/4740.ht ml  Build InsiderでWindows Subsystem for Linux掲載中 http://www.buildinsider.net/enterprise/wsl  Team Foundation Server 2017コンプリートガイド https://www.amazon.co.jp/dp/B073YCLHTC/
  3. 3. This contents based on 2019/11/9
  4. 4. Azure DevOpsの管理と聞いて 思い浮かぶもの?
  5. 5. 管理するものを簡単にまとめると ヒト モノ カネ
  6. 6. Agenda ヒトの管理 モノの管理 カネの管理
  7. 7. ヒトの管理 ここではアカウントの管理について
  8. 8. Azure DevOpsの認証に使っているアカウント Microsoft アカウント 組織アカウント (Azure AD)GitHub
  9. 9. 組織アカウントと個人アカウントの違い 管理の主体(組織 or 個人) アカウントベースのアクセス制御 お金のかけ方
  10. 10. Microsoftアカウント Azure AD(Office 365) アカウント管理 個人管理。セキュリティも個人 クラウドだけのID Azure ADと連携するサービ ス連携が困難 (Teams, Flow等) Azure ADへの移行もできる がちょっと大変 組織が管理 オンプレミスのADと同期可能 同一Azure AD内のサービスと の連携が可能 (Teams, Flow) グループ同期が遅い(1h程度) MSアカウント含む組織外アカウ ントも招待可能 (組織ポリシーによる)
  11. 11. Azure ADアカウントを作る 法人用Office 365を持っていればそのまま http://aad.portal.azure.com/ もっていない場合 Office 365契約する? Azure ADを新規で作る?  https://qiita.com/tab123/items/f13d989c327fc83f4286 Azure Active Directory の検証テナントを作成してみる
  12. 12. どのAzure ADで使う? 組織の Azure ADを 使う 独立した Azure ADを 使う
  13. 13. 自社用に構築したAzure ADで使う Office 365がすでに入っている AAD Connect使っていればSSOが可能になるので楽 自社内だけに閉じた(譲渡がない)使用ならおすすめ 社外パートナ(外部Azure AD)ユーザーを自社Azure ADに招待するため管理側を説得するハードル
  14. 14. Azure AD B2Bでの解決方法 Azure ADを作って、その組 織にAzure DevOpsを作る 全員Azure AD B2Bで参加 ライセンスやセキュリティの問 題を解決できる https://kkamegawa.hatenablog.jp/entry/2018/05/25/071259 Partner Azure AD Azure AD (Azure DevOps) Azure AD (Office 365) Azure AD B2B Azure AD B2BPartner Employees Enterprise Company Partner Company
  15. 15. Azure AD B2Bのメリット 不要になった時点でAzure AD自体を消せばよい 消さない場合は顧客側にAzure ADを作ってもらう セキュリティ、課金の分界点にできる Azure DevOpsのOwner変更で納品代わり ドキュメントも合意したものが全部格納されている
  16. 16. Azure AD B2Bで作る場合の注意点 Teams使う場合 組織でゲストアクセスを認める セルフサービスアクセスを使う(お勧めできない) https://www.microsoft.com/microsoft-365/roadmap?filters=&searchterms=52416 Azure AD Premium機能は作ったADで別課金 最初に行っておかないともめるポイント https://docs.microsoft.com/ja-jp/azure/active-directory/b2b/licensing- guidance Azure ADの管理をゼロベースでやると大変 組織の運営方針を参考にできるとよい そもそもAzure ADの管理がしたいわけじゃない 全然違うポリシーで運営していると「抜け穴作っている」と思われる
  17. 17. Azure AD内の使用状況を確認
  18. 18. 開発チームの仕組み プロダクトA プロダクトBTeam A Team B Team C Management Group
  19. 19. 開発チームとプロダクトとグループ プロダクトA Dev Group B Team A Team B Team C Management Group プロダクトB Dev Group A
  20. 20. グループ管理 Azure ADグループを作ってロール単位で割当 ビルド定義を管理するグループ パスワードや証明書等機密情報を扱うことが多い ライセンスグループ コードレビュワーグループ…etc 外部サービス接続管理 やったら失敗する or 複雑になる 部門単位
  21. 21. Azure ADのグループ参照 Azureポータルで作ったAADグループを Azure DevOpsで利用可能 ライセンス一括割り当てで使用できる ※:ただし、同期には時間がかかる(1h間隔) https://dev.azure.com/{account}/_settings/users
  22. 22. チームプロジェクトとグループの考え方 Team Project Azure Repos Group Team Team Team Team Group Team Team拒否 許可 追加 追加 Team内の担当 者をGroupに 追加
  23. 23. チームプロジェクトの管理 部門単位 成果物単位
  24. 24. グループとプロダクト 管理グループにあるグループ単位で違うプロダクト を作っている このような場合、管理グループで作ると混乱する
  25. 25. チームプロジェクトを分割する方針 リリースするプロダクト単位 外部接続(AzureをはじめとするWeb連携) Service Hook GitHub(Azure Boardsを連携) SVN, GitHub, Docker Hubなどの連携範囲 (OAuth, パスワード)
  26. 26. レポジトリ単位(Git) シングル or マルチ メリット シンプル 依存性がある場合、複雑になってついていけなくなる レポジトリ単位でセキュリティをかけられる デメリット 大きなGitレポジトリは操作が遅くなる (clone/checkout..)
  27. 27. Organization Project VS
  28. 28. いつOrganizationを作るべき? 開発者が地理的に近いデータセンターにしたい 中国とドイツは選択不可(法律上の制限) ゲストユーザーを秘匿したい ゲストで登録した顧客ユーザーが検索で出ると困る 全体で使うAzure Artifactsを集中管理したい Artifactsは容量課金
  29. 29. Azure AD Subscription Organization Organization Team Project Organization Azure AD Group Azure AD Group Team Project
  30. 30. まとめ Azure ADに紐づくサブスクリプション サブスクリプションにAzure DevOps Organizationが作られる OrganizationはAzure ADのグループを参照
  31. 31. アカウント設定で外部接続を制限する 接続ポリシー 説明 Alternate authentication credentials 以前、MSアカウントしかサポートしていなかった頃の名残。Windows 以外の環境でAzure DevOpsに接続するために使用。現在は非推奨 Third-party application access via OAuth OAuthで認可する他社提供のアプリケーションを許可するか。 SSH authentication SSHでの接続を許可するか External guest access 外部組織のゲストユーザーを許可するか Allow public projects プロジェクトを一般公開できるようにするか。仕事であればオフ推奨 Enable Azure Active Directory Conditional Access Policy Validation Azure ADのCAPを適用する。特定のIPから、証明書、MFA必須と いったアクセス制御ができるようになる。 https://dev.azure.com/{アカウント}/_settings/policy
  32. 32. プロジェクトの設定 チームプロジェクトごとに Public/Private(既定)を設定 誤って公開されたくない場合は Organizationで不可にする 使用しない機能はOffに 例:レポジトリをGitHub使って いればReposは不要
  33. 33. 監査 Azure DevOpsでの監査ログは90日保存 定期的になんらかの方法でexportする Logic Appsで自動的にAzure Cosmos DBにエク スポートしてみる https://kkamegawa.hatenablog.jp/entry/2019/ 09/01/115041 現在特定イベント発生時の通知はない
  34. 34. モノの管理 デバイスやAzure DevOpsで作った成果物の管理
  35. 35. 接続元を管理したい Azure DevOpsはインターネットがつながってい ればアクセス可能 でも、組織によってはどこからでもアクセスされて は困ることもある 条件付きアクセスポリシー
  36. 36. 条件付きアクセスポリシー Azure AD P2の機能 https://docs.microsoft.com/ja- jp/azure/active-directory/conditional- access/overview https://docs.microsoft.com/ja- jp/azure/active-directory/conditional- access/controls https://blogs.technet.microsoft.com/jpazur eid/2018/09/27/ca-basic/
  37. 37. Azure AD P2で使える条件付きアクセス制御 IPアドレス/国単位のアクセス VPN MFA強制(SMS/アプリ) ハイブリッドAD参加端末のみ
  38. 38. Express Route使えば? 専用線と聞いた →No。ポータルが使うJavaScript/CSSなどはイ ンターネット経由 Web UI一切なし(APIのみ)ならひょっとして? 50Mbpsから。200Mbpsまでの増速は簡単。減 速は不可(回線ひきなおし)
  39. 39. カネの管理
  40. 40. なにはなくともSubscription Subscriptionに紐づくOrganizationはいくら でも(上限非公表)作成可能 Organization作成を統制したい場合、現状は方法なし 複数のOrganizationに所属しても Subscriptionのユーザーは重複課金されない Azure AD B2BでP1/P2を使う場合は別課金
  41. 41. 課金ポイント Azure Pipelines エージェント 並列度での課金 Visual Studio Subscription契約者は優遇あり Azure Artifactsの容量 ダンプシンボル Pipeline Artifacts Nuget/npm/maven/Pythonのパッケージサーバー  https://azure.microsoft.com/ja-jp/pricing/details/devops/azure-devops- services/ ユーザーライセンス(月額/年額組み合わせいろいろ) Basic/Stakeholder/Visual Studio Subscription Load Testもあるけど、2020/3でリタイアなので、計算しない Express Route使う場合は回線課金
  42. 42. ライセンスによるセキュリティ ライセンスでできることが変わるので、 不要な人に権限を渡さない。 Stakeholder BASIC Visual Studio Subscriber 明示的に 有効化した時 BASIC + Test Plan Visual Studioが不要 な人向け
  43. 43. ライセンス詳細 ライセンス 概要 使えるサービス BASIC • Azure DevOpsの基本機能が使 えるユーザー。5人までは無料。 • 6人目以降は6ドル/月 Azure Boards Azure Repos Azure Pipelines BASIC + Test Plans • BasicにTest Plansを追加した プラン Basic に加えて、Azure Tests Stakeholder • 発注元などの作業を管理している 人だけ。 • 無制限に作成可能 Azure Boards Azure Pipelines(許可した場合) Visual Studio Subscriber • Visual Studio Enterprise Subscriptionを購入したユー ザー(月額課金含む) Azure DevOpsの全サービス 追加数に応じてPipelinesの並列 度が上がる Azure Artifacts • 2GBまで無料 • パッケージ管理 • シンボルサーバー • 成果物管理 計算はツールで https://azure.microsoft.com/ja-jp/pricing/details/devops/azure-devops-services/
  44. 44. Azure DevOps Serverの場合
  45. 45. Active Directory Azure DevOps Serverの構成  クラウドサービスにはない Collectionという単位がある ※:大体Organization  Collection内に複数のTeam Projectが作成できる  CollectionはSQL Serverの データベース単位で分割される  容量はSQL Serverに依存  それでも不足する要件があれば、 別サーバーを計画する Azure DevOps Server Collection Collection Azure DevOps Server Azure DevOps Server Azure DevOps Server Team Project Team Security Group Team Project Team Project Team Project Collection Collection Collection Team
  46. 46. Azure DevOps ServerのCollection SQL Server Default Collection New Collection Team Project Team Project Team Project Team Project • Collection単位にSQL Serverの データベースが作成される • Worker Processは共有 IIS Worker Process
  47. 47. Collectionを分割する方針 バックアップポリシーが異なる場合 Azure DevOps ServerはデータはSQL Server セキュリティポリシーが異なる場合 データベースに異なる照合順序を使いたい場合
  48. 48. まとめ ヒト・モノ・カネの管理について見落とすポイントは結構 ある 組織では意外と課金が必要になるケースがあるので(特 にAzure AD)、最初に合意しておかないと泣く Azure DevOps内のグループ管理も難しいので、こち らもどうぞ https://www.slideshare.net/kkamegawa/az ure-devops-127875796

×