Skip to content

Instantly share code, notes, and snippets.

@kkamegawa
Created March 7, 2021 08:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kkamegawa/1d61eb40283e0495e7d755f7d6b5270a to your computer and use it in GitHub Desktop.
Save kkamegawa/1d61eb40283e0495e7d755f7d6b5270a to your computer and use it in GitHub Desktop.

パーソナルアクセストークンのライフサイクル管理をプライベートプレビューとして公開します - Sprint 183

今までパーソナル アクセストークンの作成、更新、および失効は Azure DevOps UIを使わなくてはなりませんでした。今回のリリースではパーソナルアクセストークンの Azure DevOps REST API サポートを発表します。

今回提供する機能の詳細は以下をご覧ください。

Azure DevOpsでPAT(Personal Access Tokens)のライフサイクルを管理するための新しいAPIのリリースを発表します。この豊富なAPIセットにより、チームは所有するPATの管理を簡素化し、希望のスコープと期間で新しいパーソナルアクセストークンを作成したり、既存のPATを更新または期限切れにしたりといった新しい機能の提供が可能になります。

現在、PAT (Personal Access Tokens) を管理する主な方法は、UI を通して、またはプロジェクト・コレクション管理者のみを対象とした限定された API のセットを使用することです。この新しい API は、ビルドパイプラインの設定や作業アイテムとのやりとりなど、PAT に関わる自動化を組織が設定する能力を解放します。

PATライフサイクル管理APIは、現在、組織がプライベートプレビューで使用できるようになっています。

APIとドキュメントにアクセスできるようにするには、お客様のユースケースとAzure DevOps Organizationをお知らせください。このAPIがどのようにあなたの Organizationの役に立ったか、またはあなたのニーズを満たすためにさらに改善できるかについて、フィードバックを提供していただけるとありがたいです。

Personal Access Tokens (PATs) と SSH Keys を使用すると、人間の入力を行うことなく Azure DevOps での認証が可能になります。不正なユーザーによる悪意のある活動を防ぐために、これらのトークンが誰によってどのように使用されるのかを理解する必要性を多くの方が表明しています。今回のリリースでは、トークンが正常に作成、更新、失効、削除されるたびに、新しいイベントが監査ログへ追加されるようになりました。

これらの新しいイベントを確認するには、Organizationの設定ページからAuditingページに移動してください。これらの新しいイベントと、監査ログで利用可能なすべてのイベントについての詳細は、ドキュメントを参照してください。

このスプリントでは、Azure DevOpsのorganization管理者が異なるプロジェクトにいるユーザーの閲覧やコラボレーションを制限できるようにするプレビュー機能を公開します。この機能により、プロジェクトに別のレベルの分離とアクセス制御がもたらされます。早期のフィードバックは、エクスペリエンスの改善に役立ちます。

デフォルトでは、organizationに追加されたユーザーは、すべてのorganizationのメタデータと設定の閲覧が可能です。これには、organization内のユーザーのリスト、プロジェクトのリスト、請求書の詳細、使用データなど、organizationの設定からアクセス可能なものが含まれます。さらに、ユーザーはさまざまなピッカーを使用して、同じプロジェクトに所属していないユーザーであっても他のすべてのorganizationメンバーを検索、表示、選択、タグ付が可能です。

このような情報からユーザーを制限するには、organizationにLimit user visibility and collaboration to specific projectsというプレビュー機能を有効にします。有効にすると、組織レベルのセキュリティ グループである Project-Scoped Users グループが Azure DevOps organizationに追加されます。この新しいグループに追加されたユーザーとグループ (Organization Settings → Permissions にあります) には、ふたつの制限があります。非表示の組織設定と、制限されたピッカーの検索とタグ付けです。

Project-Scoped Usersグループに追加されたユーザーは、Overviewと"Projects"以外のOrganization設定ページへのアクセスが制限され、所属するプロジェクトのデータのみが表示されるように制限されます。

製品内の各種ピープルピッカーを使用する場合、"Project-Scoped Users"グループに追加されたユーザーやグループは、現在所属しているプロジェクトのメンバーでもあるメンバーのみを検索、閲覧、選択、タグ付けが可能になります。

パイプラインを承認した人の詳細を監査ログで確認できるようになりました。'Check Suite Completed'イベントにこの情報が含まれるようになります。監査ログは、Organization Settings → Auditingからアクセスできます。

Azure Pipelinesは2018年9月からオープンソースプロジェクトに無料のCI/CDを提供しています。これは無料のコンピュートを提供することに相当するため、常に悪用の対象となっていました - とくに暗号化マイニングが代表例です。この悪用を最小限に抑える作業に対して、常にチームのエネルギーが奪われていました。ここ数ヶ月間、状況は大幅に悪化しており、Azure DevOpsの新規公開プロジェクトの高い割合で、私たちが悪用の対象として分類している暗号化マイニングやその他の活動に使用されています。チームのエネルギー量が増えるだけでなく、これはホストされたエージェントプールにストレスを与え、オープンソースと有料の両方のユーザーのエクスペリエンスを低下させています。

この状況に対処するため、Azure DevOpsで作成された新しいパブリックプロジェクトに対して、並列ジョブの無償付与を行わないことにしました。その結果、新しいパブリックプロジェクトを作成する際にパイプラインを実行することができなくなります。ただし、azpipelines-ossgrant@microsoft.com にメールを送信し、以下の情報を提供することで、無料の並列実行ジョブの要求が可能となります。

  • お名前
  • 無料の並列実行ジョブ付与を依頼するAzure DevOpsのorganization
  • 構築予定のリポジトリへのリンク
  • プロジェクトの簡単な説明

ジョブの並列実行や無料助成金の詳細については、資料をご覧ください。

以前は、Azure Artifacts フィードでは、upstreamのすべてのソースからのパッケージのバージョンが表示されていました。このupstreamには、もともと Azure Artifacts フィードにプッシュされたパッケージのバージョン (内部ソース) と、npmjs.com、NuGet.org、Maven Central、PyPI などの一般的なパブリックリポジトリからのパッケージのバージョン (外部ソース) が含まれます。

このスプリントでは、内部ソースのパッケージがすでに存在する場合、外部ソースのパッケージへのアクセスを制限することで、プライベートフィードに追加のセキュリティを提供する新しい動作が導入されました。この機能は新しいセキュリティ層を提供し、パブリックレジストリから悪意のあるパッケージが不用意に消費されるのを防ぎます。これらの変更は、すでに使用中のパッケージやフィードにキャッシュされているパッケージのバージョンには影響しません。

外部からソースを取得したパッケージのバージョンを許可する必要がある一般的なパッケージのシナリオと、パブリックパッケージへのブロックが必要ない他のいくつかのシナリオ、および上流の動作を設定する方法の詳細については、 Configure upstream behavior - Azure Artifacts | Microsoft Docsを参照してください。

注意事項

ここで議論されている機能は今後二~三週にわたって順次展開されます。

これらの新機能を読んだ後、次のリンクからぜひご自身でAzure DevOpsサービスを体験してみてください。

Go to Azure DevOps Services

これらの機能についてどう思っているかお聞きしたいと思います。 フィードバックメニューを使用して問題を報告するか、提案を提出してください。

Make a suggestion

アドバイスや回答を必要とする質問がある場合、Stack Overflowコミュニティで聞いてください。

ありがとうございました。

Aaron Halberg

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment