コンピューターおよび周辺機器のライセンス使用状況の統計
このユニットでは、マシン アカウントと周辺機器サービスが GitHub Enterprise ライセンスの使用に与える影響について説明します。 消費を追跡し、非効率性を特定し、ベスト プラクティスを適用してコスト管理とセキュリティを向上させる方法について説明します。
ライセンスの使用状況の追跡は、コストの最適化とセキュリティ コンプライアンスに不可欠です。 マシン アカウント (自動化に使用) と 周辺機器サービス (CI/CD、統合、API コンシューマーなど) はライセンスを消費し、エンタープライズ コストとリソース管理に影響を与える可能性があります。
マシン アカウントと周辺機器サービスについて
コンピューター アカウント
マシン アカウントは、自動化、スクリプトの実行、またはサード パーティ製ツールとの統合に使用される GitHub アカウント です。
特徴: - 人間のユーザーとは独立して動作します。 - CI/CD ツール (GitHub Actions、Jenkins、CircleCI など) でよく使用されます。- 各マシン アカウントは、標準ユーザーと同様に GitHub ライセンスを使用します。
周辺機器サービス
周辺機器サービスは、 API 要求を介して GitHub と対話する外部統合です。
例: - CI/CD パイプライン (例: GitHub Actions、GitHub Runners、Jenkins)。- セキュリティ スキャン ツール (例: Dependabot、Snyk、CodeQL)。- サードパーティの統合 (Slack、Jira、Datadog など)。- セルフホステッド GitHub ランナー。
これらを追跡する理由
- 未使用または過剰なライセンスを特定するため。
- コストを最適化し、不要な支出を防ぐため。
- 非アクティブまたは正しく構成されていない Automation アカウントから セキュリティ リスクを監視 するため。
マシン アカウントのライセンス使用状況統計の検索
方法 1: GitHub Enterprise 管理コンソール
- [エンタープライズ設定] に移動します。
- 課金とライセンス管理を選択します。
- コンピューター アカウント セクション (使用可能な場合) を探します。
- 識別する:
- アクティブなマシン アカウントの数。
- コンピューター アカウントあたりのライセンス使用量。
- 最後にアクティブな日付。
方法 2: コンピューター アカウントの GraphQL API クエリ
コンピューター アカウントの使用状況の統計情報を取得するには、GraphQL API を使用します。
{
enterprise(slug: "enterprise-name") {
organizations(first: 50) {
nodes {
name
machineAccounts {
totalCount
nodes {
login
createdAt
lastActiveAt
}
}
}
}
}
}
これらを追跡する理由
- 非アクティブなマシン アカウントを識別するため。
- 各マシン アカウントが最後にアクティブになった日時を追跡するため。
- 不要なライセンスの割り当てを減らすのに役立ちます。
周辺機器サービスのライセンス使用状況の検索
方法 1:GitHub Actions & ランナー使用状況メトリック
- [エンタープライズ設定] ** → アクションに移動 します。
- 表示:
- GitHub でホストされるランナーの合計使用時間 (分)。
- セルフホステッド ランナーの使用状況。
- 追加ランナー時間の課金。
方法 2: Self-Hosted ランナーの REST API
セルフホステッド ランナーとそのライセンス使用状況を追跡するには:
curl -H "Authorization: token YOUR-TOKEN" \
"https://api.github.com/enterprises/YOUR-ENTERPRISE/actions/runners"
Key Insights:
- ライセンスを 消費しているランナーの数を識別します。
- リソースを無駄にしている可能性があるアイドル ランナーを追跡します。
- GitHub でホストされるランナーの分数の課金を最適化するのに役立ちます。
方法 3: 周辺機器サービス API の使用状況の追跡
以下を使用して API ベースの統合を監視します。
curl -H "Authorization: token YOUR-TOKEN" \
"https://api.github.com/enterprises/YOUR-ENTERPRISE/audit-log"
これは、次の場合に役立ちます。
- [非アクティブなサービスの検出]: 使用されなくなったサービスを検索します。
- サード パーティ製ツールの監査: 外部ツールが必要であり、適切に構成されていることを確認します。
- コストの削減: 価値を提供していないサービスを無効にします。
4. マシン アカウントと周辺機器サービス ライセンスの管理に関するベスト プラクティス
次のベスト プラクティスは、使用状況の監査、ポリシーの適用、自動化フットプリントの合理化に役立ちます。
- マシン アカウントを定期的に監査する: 未使用の マシン アカウントを識別して非アクティブ化します。
- 時間の経過とともに、組織はリポジトリやシステムにまだアクセスできる可能性がある 未使用または古いマシン アカウント を蓄積します。
- 使用されていないアカウントは、侵害された場合に悪用される可能性があるため、 セキュリティ リスクが高まります。
- 定期的な監査により、 アクティブで必要な マシン アカウントのみが存在することが保証され、承認されていないアクセスへの露出が減少します。
- API の使用状況を監視する: エンタープライズ ライセンスを使用するサード パーティ製ツールを追跡します。
- 多くのサード パーティ製アプリケーション、CI/CD パイプライン、および統合では、GitHub API リソースとエンタープライズ ライセンスが使用されます。
- 過剰な API 呼び出しによって レート制限が発生し、開発者のワークフローに影響を与える可能性があります。
- 未承認または不明な API の使用により、機密データとセキュリティの脆弱性が公開される可能性があります。
- ランナーの使用を最適化する: アイドル状態のセルフホステッド ランナーを 特定し、 GitHub でホストされるランナー コストを削減します。
- セルフホステッド ランナーと GitHub ホスト ランナーは、 CI/CD ワークフローを実行します。 非効率的な使用は 、不要なコストにつながります。
- アイドル状態のセルフホステッド ランナーは コンピューティング リソースを無駄 にし、監視されていない場合は組織にセキュリティ リスクが発生する可能性があります。
- GitHub でホストされるランナーは 従量課金 制で動作し、使用を最適化することで コストを大幅に削減できます。
- マシン アカウントを制限する: アクセス許可 を制限し、 セキュリティ ポリシーを適用します。
- マシン アカウントはリポジトリへの 不要なアクセス権を持たないように し、特権エスカレーションのリスクを軽減します。
- 侵害された場合、ソース コードの 操作、悪意のある変更のデプロイ、シークレットの公開を行うためにマシン アカウントが悪用される可能性があります。
- セキュリティ ポリシーを適用すると、コンプライアンスを確保し、 潜在的な侵害を最小限に抑えることができます。
GitHub Enterprise のコストの最適化、セキュリティ、コンプライアンスには、マシン アカウントと周辺機器サービスのライセンス使用状況を追跡することが重要です。 管理者は 、GitHub UI、GraphQL、REST API を 利用して 、非アクティブなアカウントを識別し、使用状況を最適化し、不要な支出を防ぐ必要があります。