以下の内容はhttps://kkamegawa.hatenablog.jp/entry/2020/02/17/065948より取得しました。


プライベートで作ったAzure Artifactsフィードをほかのプロジェクトで参照したい

Azure Artifactsに関してこんな相談を受けました。

返信で回答しており、できたということなんですが、一応備忘録的に書いておきます。

まず、Azure Artifactsには全世界に見えるPublic、Organization、Projectといった三段階のスコープがあります。やったことはないですが、Publicにしても例えばAzure の条件付きアクセスポリシーを設定してしまえば、「社員(事務所など)からはみえるんだけど、一般の人には見えない」なんてArtifactsフィードもできるのかな。これできたらちょっと便利なケースがありそうですが。条件付きアクセスポリシーの対象外になるのかなーどうかなー。

f:id:kkamegawa:20200216213202p:plain

Active FeedsとDeleted Feedsの二種類があります。さらにProject(Testfeed)とOrganization(internal_pre_publishとlocalMaven)レベルですね。

f:id:kkamegawa:20200216213206p:plain

Deleted Feedsに切り替えるとゴミ箱に入れたフィードが表示されます(入れてないので空です)。さて、このProjectのフィード(TestFeed)はよそのチームプロジェクトからは参照できません。しかし、昔はArtifactsのスコープがProjectしかなかったので、その経緯でProjectのままになっているとか、あとから見せたくなったとか、理由で参照させたいことはあります。

f:id:kkamegawa:20200216213214p:plain

そういうときはClassicの場合、ビルド定義でBuild job authorization scopeProject Collectionにしてください。Collectionってなんやねん、と思われるかもしれませんが、現在のOrganizationのことです。Organizationという名前があとからできてしまったので、整合が取れて無いですね…。Azure DevOps Server 2019ではCollectionでいいのですが。

f:id:kkamegawa:20200216213219p:plain

え、おれのビルド定義もうYAMLしか書いてないけど、そんなのないよ?どうやるの?という方もいると思います。

f:id:kkamegawa:20200216213210p:plain

そういう場合、ProjectのPipelinesSettingsにあるLimit job authorization scope to current projectを設定します。有効にするとジョブは現在のプロジェクトのみです。スクリーンキャプチャはOrganizationレベルの設定なので、こちらを設定すると全プロジェクトはプロジェクト外のリソースにはアクセスできなくなります。

この設定はビルド管理者の権限が必要になるのと、有効にしてしまうとほかのプロジェクトのリソースに簡単に参照できるようになるので、気を付けてください。

過去のフィードは致し方ないのですが、Artifactsは基本的にOrganizationレベルで作ることをお勧めします。ここが一番大きなセキュリティの分界点です(というお話をIgnite The Tourでもさせていただきました)。




以上の内容はhttps://kkamegawa.hatenablog.jp/entry/2020/02/17/065948より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14