パイプラインでプロジェクトを安全に構造化するための推奨事項

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

個々のリソースの範囲を超えて、リソースのグループについても検討する必要があります。 Azure DevOps では、リソースはチーム プロジェクトによってグループ化されます。 プロジェクトの設定と包含に基づいてパイプラインがアクセスできるリソースを理解することが重要です。

パイプライン内のすべてのジョブが、アクセス トークンを受け取ります。 このトークンには、開いているリソースを読み取るためのアクセス許可があります。 場合によっては、パイプラインでもそれらのリソースが更新されることがあります。 つまり、ユーザー アカウントで特定のリソースにアクセスできなくても、パイプラインで実行されるスクリプトやタスクで、そのリソースにアクセスできる可能性があります。 Azure DevOps のセキュリティ モデルでは、組織内の他のプロジェクトからこれらのリソースにアクセスすることもできます。 これらのリソースの一部へのパイプライン アクセスを遮断する場合、決定はプロジェクト内のすべてのパイプラインに適用されます。 開いているリソースへのアクセスを特定のパイプラインに許可することはできません。

個別のプロジェクト

オープン リソースの性質上、個別のプロジェクトで各製品とチームを管理することを検討する必要があります。 この方法により、ある製品のパイプラインが別の製品から開かれているリソースにアクセスできないようにします。 このようにすると、横方向の露出を防ぐことができます。 複数のチームまたは製品がプロジェクトを共有する場合、それらのリソースを相互に細かく分離することはできません。

Azure DevOps 組織が 2019 年 8 月より前に作成された場合、組織のすべてのプロジェクトで開かれているリソースに、実行からアクセスできる可能性があります。 組織の管理者は、パイプラインでプロジェクトの分離を可能にする Azure Pipelines の重要なセキュリティ設定を検討する必要があります。 この設定は、[Azure DevOps]>[組織の設定]>[パイプライン]>[設定] にあります。 または、次の Azure DevOps の場所に直接移動します: https://dev.azure.com/ORG-NAME/_settings/pipelinessettings

ジョブ承認スコープ UI のスクリーンショット

次のステップ

適切なプロジェクト構造を設定したら、テンプレートを使用して実行時のセキュリティを強化します。