Azure DevOps Services
パブリックとプライベートの間で Azure DevOps プロジェクトの可視性を変更し、各可視性設定のセキュリティとアクセスへの影響を理解する方法について説明します。
Important
- プライベート プロジェクトをパブリック表示に変更すると、 すべてのプロジェクト コンテンツにパブリックにアクセスできるようになります。 特定のリポジトリ、エリア パスを選択的に保持したり、パブリック プロジェクト内で成果物をプライベートに構築したりすることはできません。
- パブリック プロジェクトの許可ポリシーが既に有効になっている組織のみが、プロジェクトの可視性をパブリックに変更するプロジェクトを作成できます。 このポリシーは、まだ使用していない組織では使用できなくなりました。 Microsoft では、パブリック プロジェクトのすべてのニーズに GitHub を使用することをお勧めします。
プロジェクトを公開するときの変更点
プロジェクトをパブリックにすることは、アクセス許可、アクセス レベル、および使用可能な機能に影響します。
セキュリティとアクセス許可の変更
プロジェクトの可視性をプライベートからパブリックに切り替えると、次の変更が行われます。
- 拒否アクセス許可は無視されます。明示的に "拒否" に設定されたアクセス許可は、パブリック ユーザーには適用されません
- 最小アクセス許可: 非メンバーは、パブリック コンテンツへのベースライン読み取りアクセスを自動的に受け取ります
- ビルド パイプライン スコープ: Project Collection スコープに設定されたパイプラインは、セキュリティを強化するために Project スコープで自動的に実行されます
アクセス レベルの違い
| ユーザーの種類 | プライベート プロジェクト アクセス | パブリック プロジェクト アクセス |
|---|---|---|
| 匿名ユーザー | アクセス権なし | ほとんどのコンテンツへの読み取り専用アクセス |
| 利害関係者 | ボードの制限付きアクセス、リポジトリへのアクセスなし | リポジトリとボードへのフル アクセス |
| 基本ユーザー | テスト プランを除くフル アクセス | テスト プランを除くフル アクセス |
| 基本 + テストプラン | テスト 計画を含むフル アクセス | テスト 計画を含むフル アクセス |
非メンバーの機能の可用性
次の表は、プロジェクト メンバーではないユーザーが使用できる機能を示しています。
| サービスエリア | 非メンバー アクセス | 注記 |
|---|---|---|
| ダッシュボード | 読み取り専用の制限付きウィジェット | 多くのウィジェットは使用できません |
| Wiki | 読み取り専用 | 完全なコンテンツが表示される |
| ボード | 作業項目のみを読み取る | バックログ、ボード、スプリント非表示 |
| レポ | 読み取り専用 Git リポジトリ | 非表示の TFVC リポジトリ |
| パイプライン | ビルド/リリースの結果を読み取る | エディターとライブラリが非表示 |
| テスト 計画 | アクセス権なし | 手動テストは使用できません |
| Search | フル検索機能 | アクセシビリティの高いコンテンツ間 |
| 設定 | アクセス権なし | 非表示の管理機能 |
前提条件
プロジェクトの可視性を変更する前に、次の要件を満たしていることを確認してください。
| Requirement | 詳細 |
|---|---|
| アクセス許可 | プロジェクト コレクション管理者 または組織の所有者 |
| 組織のセットアップ | [パブリック プロジェクトを許可する] ポリシーを有効にする必要があります |
| セキュリティ レビュー | 移行チェックリストを完了する |
移行前のセキュリティ チェックリスト
警告
パブリック プロジェクトでは、古いコミット、作業項目、ビルド ログなどの履歴データが公開されます。 プロジェクトを公開する前に、すべてのコンテンツを慎重に確認してください。
組織と ID の公開
- [] メンバー情報: すべての組織メンバーの名前とメール アドレスが表示されます
- [ ] 組織の設定: 公開されているすべての組織とプロジェクトの設定の読み取り専用ビュー
- [ ] プロセス メタデータ: 組織全体のプロジェクトのすべての候補リスト値が表示されます
- [ ] ビルド履歴: 公開されているビルド トリガーと Git コミットからの名前と電子メール アドレス
プロジェクト間の考慮事項
- [ ] リンクされた成果物: 機密情報を公開する可能性があるプライベート プロジェクトへのリンクを確認する
- [ ] 共有リソース: プロジェクトによってアクセスされる組織レベルのリソースを確認する
コンテンツ セキュリティ レビュー
作業項目とアジャイル ツール
- [ ] 履歴作業項目: 閉じたアイテムを含むすべての作業項目の機密情報を確認する
- [ ] エリア パスのセキュリティ: エリア パスに特別なセキュリティ制限がないことを確認します (パブリック プロジェクトでは拒否されたアクセス許可は無視されます)
- [ ] ディスカッションとコメント: すべての作業項目のディスカッションで機密性の高いコンテンツや不適切なコンテンツを確認する
ソース コード リポジトリ
- [ ] コミット履歴: 資格情報、セキュリティの脆弱性、または独自のコードについて Git の履歴全体を確認する
- [ ] メッセージをコミットする: すべてのコミット メッセージで機密情報や不適切なコンテンツを確認する
- [ ] ファイルの内容: 資格情報、API キー、または機密データが含まれているファイルがないことを確認する
パイプラインのビルドとリリース
- [ ] パイプライン定義: 公開されている資格情報、内部 URL、または環境の詳細を確認する
- [ ] ビルド ログ: ビルド ログの履歴に機密情報がないか確認する
- [ ] サービス接続: 非メンバーがアクセスできないプライベート フィードの依存関係がないことを確認する
成果物とパッケージ
- [ ] パッケージの内容: プライバシーに関する懸念事項について、プロジェクト スコープ フィード内のすべてのパッケージを確認する
- [ ] フィード設定: パブリック プロジェクト フィードのアップストリーム設定が無効であることを理解する
拡張機能とカスタマイズ
- [ ] カスタム拡張機能: 非メンバーに対して拡張機能が正しく動作するかどうかを確認する
- [ ] 作業項目フォームのカスタマイズ: メンバー以外のアクセス権を持つカスタム コントロールとフィールドをテストする
手順 1: 組織のパブリック プロジェクトを有効にする
組織にサインインします (
https://dev.azure.com/{yourorganization})。[組織の設定] を選択します。
[ポリシー] を選択します。
[ セキュリティ ポリシー] で、[ パブリック プロジェクトを許可する] をオンにします。
手順 2: プロジェクトの可視性を変更する
プロジェクト (
https://dev.azure.com/{yourorganization}/{yourproject}) に移動します。[Project settings] を選択します。
[概要] を選択します。
[ 表示] ドロップダウン メニューで、[ パブリック ] または [ プライベート] を選択します。
保存 を選択します。
パブリック プロジェクトの共同作成者を管理する
プロジェクト メンバーを追加する
プライベート プロジェクトと同じ方法でパブリック プロジェクトに共同作成者を追加します。
- プロジェクト設定>Permissions に移動します。
- [ 追加] を選択してユーザーを招待します。
- 適切なアクセス レベル (利害関係者、基本、または基本 + テスト 計画) を割り当てます。
詳細については、「 組織にユーザーを追加する」を参照してください。
外部ユーザーに関する考慮事項
外部ユーザーをパブリック プロジェクトに招待する場合:
- 組織内のすべてのパブリック コンテンツにアクセスできます。
- 他の場所に機密性の高いコンテンツがある場合は、パブリック プロジェクト用に個別の組織を作成することを検討してください
機密性の高いコンテンツの代替アプローチ
オプション 1: パブリック プロジェクト用の個別の組織
現在の組織に機密資料が含まれている場合:
- パブリック プロジェクト専用の新しい組織を作成する
- 不特定のコンテンツのみを新しい組織に移行する
- 機密性の高いプロジェクトを元のプライベート組織に保持する
オプション 2: 選択的コンテンツ移行
機密性の高い作業項目を移動する
- 作業項目の移動機能を使用して機密性の高いアイテムをプライベート プロジェクトに転送する
- プロジェクト間リンクはメンバーに対して引き続き機能しますが、メンバー以外のメンバーには非表示のままです
Git リポジトリのヒントの移行
問題のある履歴を含むリポジトリの場合は、現在の状態のみを移行します。
警告
このアクションにより、元のリポジトリに接続されていない新しいリポジトリが作成されます。 プル要求の履歴と変更の追跡は失われます。
# Clone the existing repository
git clone <original_clone_URL>
cd <repository_name>
# Ensure you're on the desired branch
git checkout main
# Remove Git history
rm -rf .git # On Windows: rmdir /s .git
# Initialize new repository
git init
# Connect to new repository in public project
git remote add origin <new_public_repo_URL>
# Push current state as initial commit
git add .
git commit -m "Initial public release"
git push --set-upstream origin main
非メンバーの制限事項
パブリック プロジェクトのメンバー以外のユーザーは、次のアクションを実行できません。
- コンテンツ (ファイル、作業項目、パイプライン) を編集または作成する
- プロジェクト メンバーのメール アドレスまたは連絡先情報を表示する
- 管理設定または構成ページにアクセスする
- 組織全体で高度な検索機能を使用する
- 同じ組織内の複数のパブリック プロジェクト間を移動する
- お気に入りまたはフォロー成果物
パブリック プロジェクト アクセスのトラブルシューティング
一般的な問題
問題: 非メンバーがプロジェクトをパブリックにした後にアクセスできない
- 解決策: 組織の "パブリック プロジェクトを許可する" ポリシーが有効になっていることを確認する
問題: 一部のコンテンツが引き続き制限されている
- 解決策: 特定の領域に影響する可能性がある拒否アクセス許可を確認する
問題: 外部ユーザーが投稿できない
- 解決策: 適切なアクセス レベルを持つプロジェクト メンバーとして追加されていることを確認する