自己紹介
personal:
name: かめがわ かずし
alias: kkamegawa
community:
MVP: Microsoft MVP for Developer Technologies(2009-)
UsersGroup: Team Foundation Server Users Group
URL: https://dev.azure.com/tfsug/tfsuginfo
Blog: はてなブログ
URL: https://kkamegawa.hatenablog.jp
This contents based on 2020/5/2
持ち帰っていただきたいもの
組織としてAzure DevOpsを運用する場合のポイント
Azure DevOpsをAzure ADベースで管理するポイント
Azure DevOps全体象
Azure DevOps概要
アジャイルツールを使用し
て、より迅速にユーザーに
価値をもたらし、 チームの
垣根を越えて作業の計画、
追跡、相談ができます。
多くの言語、プラットフォーム、
クラウドに 対応したCI/CD を使
用して、ビルド、テスト、 デプロ
イできます。GitHub や他の Git
プロバイダーも対応しています。
クラウドでホストされた容
量無制限のプライベート Git
リポジトリです。プルリクエ
ストと高度なファイル管理
を提供します。
手動の探索的テスト ツー
ルを使用することで、テス
トと公開を自信を持って行
えます。
パッケージを作成、提供して、
チームで共有し、ワンクリック
で CI/CD パイプラインに 成果
物を追加できます。
Azure Boards Azure ReposAzure Pipelines
Azure Test Plans Azure Artifacts
https://azure.com/devops

Azure DevOps全体像
MSアカウン
ト
組織アカウン
ト
Express Route
GitHub アカウント
Azure DevOpsの管理と聞いて
思い浮かぶところは?
Azure DevOpsの管理ポイント
MSアカウン
ト
組織アカウン
ト
GitHub アカウント
Express Route
アカウント管理
Azure DevOpsの管理ポイント
MSアカウン
ト
組織アカウン
ト
GitHub アカウント
Express Route
Azure DevOpsの認証に使用可能なアカウント
Microsoft
アカウント
組織アカウント
(Azure AD)GitHub
Azure ADベースで
Azure DevOpsを使う
場合のポイント
組織アカウントと個人アカウントの違い
管理の主体(組織 or 個人)
アカウントベースのアクセス制御
お金のかけ方
オンプレミスとの連携
Azure ADアカウントを作る方法
法人用Office 365を持っていればそのまま
http://aad.portal.azure.com/
もっていない場合
Office 365を契約する?
Azure ADを新規で作る?
Azure ADと連携して使う
Azure ADの作り方
組織の
Azure ADを使う
独立した
Azure ADを使う
組織のAzure ADを使うケース
Office 365がすでに入っている
自社内だけで使用する
社外パートナー(外部Azure AD)ユーザーを自社Azure
ADに招待しない
独立したAzure ADを使うケース
社外のパートナーと共同で使用する
社外の顧客に納品する
明確に課金とセキュリティの分割ポイントにしたい
独立したAzure ADで運用する場合
別Azure ADを作成
新Azure ADにAzure DevOps Organizationを作る
全員Azure AD B2Bで新Azure ADへ参加する
https://kkamegawa.hatenablog.jp/entry/2018/05/25/071259
Azure AD B2BとAzure DevOps
Partner
Azure AD
Azure AD
(Azure DevOps)
Azure AD
(Office 365)
Azure AD
B2B
Azure AD
B2BPartner Employees
Enterprise
Company
Partner
Company
Azure AD B2BでAzure DevOpsを使うメリット
不要になった時点でAzure AD自体を消せばよい
継続使用時は顧客側にAzure ADを作ってもらう
セキュリティ、課金の分界点にできる
Azure DevOpsのOwner変更で納品代わり
Azure AD B2Bで作る場合の注意点
Teamsを使う場合のテナントについて
Azure AD Premium機能は作ったAD毎に課金
Azure ADの管理方式設計
注意点1 : Teamsを使う場合
Azure BoardsをTeamsのタブに追加はできなくなる
代わりにAzure Boardsアプリを使う
セルフサービスアクセスを使って、無料版Teamsを
使うと、管理が厄介
https://www.microsoft.com/microsoft-
365/roadmap?filters=&searchterms=52416
管理者のいないTeams用のAzure ADドメインができてしまう。
詳細は国井さんのAzure AD B2Bを見てみようシリーズで。
https://azuread.net/2018/07/19/azure-ad-b2b-part1/
Azure BoardsとTeams統合について
https://docs.microsoft.com/en-
us/azure/devops/boards/integrations/boards-
teams?view=azure-devops
注意点2: Azure AD Premiumは別課金
Azure AD Premiumはテナント単位に請求される
https://docs.microsoft.com/ja-jp/azure/active-directory/b2b/licensing-guidance
Azure Active Directory B2B コラボレーションのライセンスに関するガイダンス
自社テナントでPremiumを購入していた場合、二重課金に
なる
アプリを使った多要素認証は無償化が発表された
多要素認証用のPremiumは不要
注意点3 : Azure ADの管理設計
そもそもAzure ADの管理をしたいわけじゃない
組織で使っているAzure ADの運営方針を参考にして作る
全然違うポリシーで運営していると「抜け穴作っている」と
思われないように
Azure DevOpsの権限
Azure DevOpsの管理ポイント
MSアカウント
組織アカウント
GitHub アカウント
Express Route
サブスクリプション
Azure DevOpsに紐づくサブスクリプションが必要
サブスクリプションに紐づくOrganizationは複数作成
可能
Azure ADでAzure DevOps管理者ロールを使用して制御
サブスクリプションへのアクセス権限も慎重に
Azure DevOps管理者ロール
Azure DevOpsとサブスクリプション、グループの関係
外部接続とサブスクリプション
Organization分割の指針
開発者が地理的に近いデータセンターにしたい
ゲストユーザーを秘匿したい
サブスクリプション単位で使うAzure Artifactsを集中管理した
い
接続方法を変更したい
監査単位を分離させたい
Organization設定で接続方法を制限する
接続ポリシー 説明
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
Organizationに対する監査に関して
Azure DevOpsでの監査ログは90日保存
定期的になんらかの方法でexportする
Logic Appsで自動的にAzure Cosmos DBにエクスポートし
てみる
https://kkamegawa.hatenablog.jp/entry/2019/09/01/115041
現在特定イベント発生時の通知はない
サービスでセキュリティをかける
サービスで機能制限がかかります
Stakeholder
BASIC
Visual Studio
Subscriber
明示的に
有効化した時
BASIC +
Test Plan
Visual Studioが
不要な人向け
接続経路
Azure DevOpsの管理ポイント
MSアカウント
組織アカウント
GitHub アカウント
Express Route
接続を管理したい
承認したデバイスのみアクセス
特定の事業所および地域からのみアクセス
Express Routeのみでのアクセス
Firewallで接続先を制限したい
承認したデバイスからのみアクセス
条件付きアクセス(Azure AD P1必須)を使う
https://docs.microsoft.com/ja-jp/azure/active-directory/conditional-access/
ハイブリッドAD参加(Windows)、Azure AD参加端末のみ認める
https://docs.microsoft.com/ja-jp/azure/active-directory/devices/hybrid-azuread-join-plan
コンプライアンス準拠を強制
パスワードポリシー
デバイス暗号化
デバイスセキュリティ
特定の事業所からのアクセスに制限したい
Azure ADの条件付きアクセスポリシー(CAP)を使って制限する
特定のIPアドレスのみ
特定の国や地域のみ
Firewallで接続先を制限したい
Azure DevOpsが使うIPv4 / IPv6アドレスは明示されている。
IP以外にもサインイン用に必要なURLが多数あるので注意
Artifactsを使わず、NuGet / mavenなどに直接アクセスしたい
場合は別登録
https://devblogs.microsoft.com/devops/new-ip-firewall-rules-for-azure-devops/
https://docs.microsoft.com/en-us/azure/devops/organizations/security/allow-list-
ip-url?view=azure-devops
Azure DevOpsとExpress Route
MSアカウント
組織アカウント
GitHub アカウント
Express Route
Express Routeは専用線だからこれだけあればいい?
No。ポータルが使うJavaScript/CSSなどはインター
ネット経由で取得します。
Web UI一切なし(APIのみ)ならひょっとして?
速度は50Mbpsから。200Mbpsまでの増速は簡単。
減速は不可
チームプロジェクトの管理
プロジェクトの設定
チームプロジェクトごとに
Public/Private(既定)を設定
誤って公開されたくない場合は
Organizationで不可にする
使用しないサービスはOffに
例:レポジトリをGitHub使っていれば
Reposは不要
チームプロジェクトを分割する方針案
リリースするプロダクト単位
サービス接続(Azure/GitHub等)で区切る
Service Hook
GitHub(Azure Boardsを連携)
SVN, GitHub, Docker Hubなどの連携範囲
(OAuth, パスワード)
Sprint 160以降、プロジェク
トで共有可能になりました。
グループ管理
グループを作ってロール単位で割当がおすすめ
ビルド定義を管理するグループ
ライセンスグループ
コードレビュワーグループ…etc
外部サービス接続管理
Azure ADのグループかAzure DevOpsのグループで
運用
Azure ADグループ数はテナント毎の上限があるため注意
Azure ADのグループ参照
Azureポータルで作ったAADグループを
Azure DevOpsで利用可能
ライセンス一括割り当てで使用できる
※:ただし、同期には時間がかかる(1h間隔)
まとめ
Azure DevOpsをセキュアに運用するにはAzure AD
ベースでやると楽になります。
グループを考える場合、サービス、役割、開発チー
ムというグループ中心で考えると運用が楽になり
ます。

Azure DevOps's security