Ein Produktions-Build importiert Signaturmaterial auf einem Mac, den auch andere Workflows verwenden: Ein möglicher Rest im Schlüsselbund wird zum Risiko.
Schnellste Lösung: Bewahren Sie Signaturmaterial getrennt vom Runner auf, geben Sie es nur einem vertrauenswürdigen Veröffentlichungsworkflow frei und verwenden Sie für den Build einen temporären Schlüsselbund; ist die Trennung nicht nachweisbar, separieren Sie zuerst den Runner.
Für IT- und Sicherheitsverantwortliche: Sie prüfen Verwahrung, Freigabe und Widerruf von iOS-Signaturmaterial.
Für Plattformteams: Sie richten die Injektion und Bereinigung in GitHub Actions macOS Runnern ein.
Für iOS-Verantwortliche: Sie entscheiden, ob ein vorhandener gemeinsam genutzter Mac Produktionssignaturen verarbeiten darf.
GitHub Actions macOS Runner: iOS-Signaturschlüssel nach Funktion trennen
Die Entscheidung besteht nicht aus der Wahl eines einzelnen Speicherorts. Langfristige Verwahrung, Workflow-Freigabe und Zugriff während des Signierens sind unterschiedliche Aufgaben. Ein verschlüsselter Speicher kann den Zugriff auf gespeicherte Geheimnisse begrenzen, verhindert aber nicht automatisch, dass ein berechtigter Build oder ein weiterer Prozess auf einem gemeinsam genutzten Host das Material erreicht.
| Ebene | Zweck | Geeigneter Prüfpunkt | Was damit nicht belegt ist |
|---|---|---|---|
| Langfristige Verwahrung | Signaturmaterial außerhalb des laufenden Builds aufbewahren | Zugriffskreis, Zuständigkeit für Rotation und Widerruf sowie nachvollziehbare Freigabe dokumentieren | Dass ein Runner nach einem Build keine Datenreste enthält |
| Workflow-Freigabe | Geheimnisse nur für vorgesehene Veröffentlichungsabläufe bereitstellen | Berechtigungen, Umgebungsregeln und Workflow-Vertrauen überprüfen | Dass andere Prozesse auf demselben Mac ausgeschlossen sind |
| Laufzeit-Schlüsselbund | Importiertes Material für den Signiervorgang verfügbar machen | Schlüsselbund je Ausführung anlegen, Zugriff begrenzen und Bereinigung prüfen | Dass ein Schlüsselbund auf einem gemeinsam genutzten Host eine Teamgrenze schafft |
Apple beschreibt eine Code-Signaturidentität als Verbindung von Zertifikat und zugehörigem privaten Schlüssel. Für die technische Einordnung ist daher nicht nur die Zertifikatsdatei entscheidend: Auch der private Schlüssel muss bei der Signierung verfügbar sein. Siehe Apples Erläuterung zu Code-Signaturzertifikaten und die Dokumentation zum Teilen von Signaturzertifikaten im Team.
Die Konsequenz für die Architektur: Ein macOS-Schlüsselbund gehört in den Laufzeitabschnitt des Builds, nicht als unbegrenzt wiederverwendbarer Ablageort auf einen gemeinsam genutzten Runner. Selbst wenn ein Workflow Geheimnisse aus einem kontrollierten Speicher bezieht, muss anschließend noch geklärt werden, welche Prozesse und nachfolgenden Aufgaben auf dem Mac Zugriff haben könnten.
Prüfhinweis: Verschlüsselung bei der Speicherung und Isolation zur Ausführungszeit sind zwei verschiedene Kontrollen. Dokumentieren Sie beide getrennt, statt aus einer vorhandenen Secret-Funktion auf eine sichere Runner-Grenze zu schließen.
GitHub Secrets und externe Verwahrung anhand derselben Kriterien bewerten
GitHub Actions Secrets sind ein möglicher Weg, Geheimnisse Workflows bereitzustellen. Die GitHub-Dokumentation beschreibt deren Verwaltung und Verwendung; sie ersetzt jedoch nicht die Entscheidung, welcher Workflow Zugang erhalten darf und wie der Host nach dem Einsatz behandelt wird. Prüfen Sie die GitHub-Referenz zu Actions Secrets für die tatsächlich verfügbaren Einstellungen und Grenzen.
Ein externer Geheimnisspeicher kann in eine Unternehmensarchitektur passen, wenn Zuständigkeiten oder vorhandene Prüfprozesse dies erfordern. Daraus folgt nicht automatisch, dass ein bestimmtes Produkt besser rotiert, detaillierter protokolliert oder sicherer in GitHub Actions integriert werden kann. Solche Fähigkeiten müssen anhand der Dokumentation des jeweiligen Dienstes und der eigenen Konfiguration verifiziert werden; hier wird keine konkrete Produktfunktion vorausgesetzt.
Für den Vergleich zählen vor allem diese Fragen:
- Zugriffssteuerung: Ist ersichtlich, welche Repositorys, Umgebungen und Workflows ein Geheimnis verwenden dürfen?
- Rotation und Widerruf: Wer ist verantwortlich, und lässt sich der Zugriff im Notfall nachvollziehbar entziehen?
- Prüfbarkeit: Können Änderungen und Freigaben gemäß den eigenen Anforderungen dokumentiert werden?
- Nutzungsumfang: Wird das Geheimnis nur dem vorgesehenen Veröffentlichungsworkflow bereitgestellt?
- Laufzeitgrenze: Was geschieht mit importierten Dateien und Schlüsselbunddaten auf dem Mac, nachdem die Aufgabe beendet wurde?
Der Speicherort allein beantwortet keine dieser Fragen vollständig. Ein Team kann Secrets zentral verwalten und trotzdem einen Runner betreiben, auf dem nicht vertrauenswürdige Aufgaben ausgeführt werden. Umgekehrt macht ein externer Speicher einen unsauber begrenzten Workflow nicht vertrauenswürdig. Entscheidend ist die ganze Kette: Freigabe, Übertragung, Import, Verwendung und Nachweis der Bereinigung.
Temporärer Schlüsselbund und gemeinsam genutzter Mac sind keine austauschbaren Kontrollen
Für den Signiervorgang muss der Mac auf das Signaturmaterial zugreifen können. Ein temporärer Schlüsselbund begrenzt, wo das importierte Material während der Aufgabe verfügbar sein soll. Apple stellt eine Schnittstelle zum Erstellen eines Schlüsselbunds bereit; die Dokumentation zu SecKeychainCreate beschreibt diese Funktion. Die konkrete Nutzung und Bereinigung müssen Sie jedoch in Ihrer Runner-Umgebung testen.
Ein temporärer Schlüsselbund ist keine eigenständige Isolationsgarantie. Der Build läuft weiterhin unter einem Betriebssystemkonto auf einem Host. Arbeitsverzeichnisse, temporäre Dateien, Protokolle, weitere Prozesse und die Wiederverwendung des Runner-Hosts können relevant sein. Deshalb sollte die Bewertung auch klären, ob andere Workflows unter demselben Konto oder auf demselben Host laufen und welche Dateien nach Abschluss tatsächlich verbleiben.
GitHub weist bei selbst gehosteten Runnern auf das Risiko hin, dass nicht vertrauenswürdige Workflows die Umgebung beeinflussen können. Die Dokumentation zu selbst gehosteten Runnern und die Hinweise zum sicheren Einsatz von GitHub Actions sind deshalb für die Vertrauensbewertung des Hosts relevant. Sie begründen keine allgemeine Pflicht zu einer bestimmten Unternehmensarchitektur, machen aber deutlich, warum die Vertrauensgrenze des Workflows nicht mit dem Speicherort des Schlüssels verwechselt werden darf.
Bei der technischen Umsetzung sollte ein Team mindestens festlegen, wann der Schlüsselbund angelegt wird, welcher Prozess darauf zugreifen darf, wo importierte Dateien liegen und welche Aufräumschritte nach einem Fehler oder Abbruch greifen. Ein Build, der vor der Bereinigung scheitert, ist ein anderer Ablauf als ein regulär erfolgreich abgeschlossener Build. Beide Fälle gehören in die Prüfung.
Freigaben, Umgebungen und Runner-Vertrauen getrennt prüfen
Die Freigabe eines Geheimnisses ist nur eine Kontrolle in der Kette. GitHub beschreibt für Umgebungen Schutzregeln und Freigabeprozesse; die Dokumentation zu Deployments und Umgebungen hilft dabei, deren konkrete Wirkung im Workflow zu prüfen. Daraus lässt sich jedoch nicht ableiten, dass ein gemeinsam genutzter Mac gegenüber anderen Aufgaben isoliert ist.
Legen Sie für Produktionssignaturen fest, welche Branches und Workflow-Dateien als vertrauenswürdig gelten, welche Änderungen eine Überprüfung erfordern und welche Actions im Veröffentlichungsablauf eingesetzt werden. Drittanbieter-Actions sind Teil der Ausführungskette. Prüfen Sie ihre Herkunft, ihren Umfang und ihre Berechtigungen, anstatt allein auf einen erfolgreichen Jobstatus zu vertrauen.
Begrenzen Sie zudem die Token-Berechtigungen der Workflows auf das, was sie tatsächlich benötigen. GitHub dokumentiert die verfügbaren Berechtigungen in der Workflow-Syntaxreferenz. Ein minimierter Token-Zugriff kann die Reichweite eines Workflows beschränken, entfernt aber weder bereits importierte private Schlüssel noch stellt er eine Betriebssystemgrenze zwischen Aufgaben her.
Zu einer belastbaren Prüfung gehören daher zwei getrennte Entscheidungen: Darf dieser Workflow die Signaturdaten erhalten, und darf er auf diesem Runner mit anderen Aufgaben oder Teams gemeinsam ausgeführt werden? Die erste Frage betrifft Autorisierung und Workflow-Vertrauen. Die zweite betrifft die tatsächliche Ausführungsumgebung. Eine Freigabe im Veröffentlichungsprozess beantwortet nicht automatisch die zweite.
Bereinigung als überprüfbaren Ablauf abnehmen
Ein Skriptaufruf mit erfolgreichem Status ist kein vollständiger Nachweis, dass alle Kopien des Signaturmaterials entfernt wurden. Legen Sie vor dem Pilotbetrieb fest, welche Belege Sie für den eigenen Runner verlangen. Diese Anforderungen sind interne Kontrollen, sofern sie nicht ausdrücklich als Plattformfunktion dokumentiert sind.
Prüfen Sie den Ablauf Schritt für Schritt:
- Import: Dokumentieren Sie, wann und in welchen temporären Pfad das Signaturmaterial gelangt. Halten Sie geheime Inhalte selbst aus Testprotokollen heraus.
- Schlüsselbund: Protokollieren Sie die vorgesehene Anlage, den verwendeten Namen und den Abschluss der Entfernung, ohne Schlüssel oder vertrauliche Inhalte auszugeben.
- Signiervorgang: Erfassen Sie, welcher Job die Signierung ausführt und welche Freigabe ihn dazu berechtigt. Die Protokolle sollen den Ablauf belegen, nicht das Geheimnis offenlegen.
- Fehlerpfade: Testen Sie, was bei abgebrochenen oder fehlgeschlagenen Jobs geschieht. Prüfen Sie, ob Bereinigungsschritte auch dann ausgeführt werden und welche zusätzlichen Kontrollen der Host benötigt.
- Arbeitsdateien und Logs: Suchen Sie nach verbliebenen Exportdateien und prüfen Sie, ob Ausgaben vertrauliche Werte enthalten könnten. Verlassen Sie sich nicht nur auf die Absicht des Skripts.
- Zugriff und Widerruf: Halten Sie fest, wer Geheimnisse freigeben oder entziehen kann und wie ein Widerruf für betroffene Workflows umgesetzt wird.
Führen Sie diese Prüfung auf dem echten Runner-Typ und mit den tatsächlichen Konten und Arbeitsverzeichnissen durch. Ein Test auf einem anderen Mac belegt nicht ohne Weiteres, dass die Produktionsumgebung gleich konfiguriert ist. Ebenso sollte ein Aufräumprotokoll als Nachweis eines ausgeführten Schritts bewertet werden, nicht als pauschale Sicherheitsgarantie.
Entscheidung nach Vertrauensmodell und vorhandener Mac-Architektur
Die folgenden Bedingungen geben eine Richtung vor, keine pauschale Plattformvorgabe:
- Wenn ausschließlich ein kontrolliertes Veröffentlichungsteam Zugriff erhält, der Workflow nachvollziehbar freigegeben ist und ein temporärer Schlüsselbund in der tatsächlichen Runner-Umgebung geprüft wurde, dann kann eine kontrollierte Secret-Bereitstellung mit temporärer Laufzeitnutzung als Pilot bewertet werden.
- Wenn mehrere Teams, Repositorys oder unterschiedlich vertrauenswürdige Aufgaben denselben Runner verwenden, dann trennen Sie zuerst Runner und Geheimnisberechtigungen, bevor Produktionssignaturen dort ausgeführt werden.
- Wenn nicht geprüft werden kann, welche Prozesse auf importiertes Material zugreifen oder welche Daten nach Jobende verbleiben, dann geben Sie dem gemeinsam genutzten Knoten keine Produktionssignaturen.
- Wenn Ihr Team eine externe Verwahrung erwägt, dann vergleichen Sie dokumentierte Zugriffs-, Widerrufs- und Prüfprozesse mit den konkreten Anforderungen; unterstellen Sie keine Fähigkeiten, die für den ausgewählten Dienst nicht belegt sind.
- Wenn ein Pilot keine nachvollziehbaren Belege für Import, Signiervorgang, Bereinigung und Zugriffsgrenzen liefert, dann behandeln Sie die Architektur als nicht abgenommen und ändern Sie die Runner-Trennung oder den Ablauf.
Für die Abnahme sollten ein Inventar der signierenden Workflows, eine Liste berechtigter Personen und Konten sowie Protokolle aus einem realen Testlauf vorliegen. Entscheidend ist, ob die dokumentierte Grenze im tatsächlichen Betrieb nachvollziehbar ist – nicht, ob eine Architektur auf einem Diagramm getrennt aussieht.
Wer die Mac-Umgebung für einen Pilotbetrieb ändern oder abgrenzen muss, sollte zugleich Datenschutz, Kontenzugriff und Zuständigkeit für Support dokumentieren. Die Informationen zur Datenschutzregelung von ArmMacs sind ein Ausgangspunkt für die Prüfung der veröffentlichten Datenschutzangaben; sie ersetzen keine interne Sicherheits- oder Compliance-Bewertung.
Häufige Fragen zu iOS-CI-Signaturdaten
Kann ein selbst gehosteter macOS Runner den iOS-Signaturschlüssel dauerhaft speichern?
Ein selbst gehosteter Runner kann Dateien und Schlüsselbunddaten auf seinem System behalten; das macht ihn jedoch nicht automatisch zu einem geeigneten Langzeitspeicher. GitHub weist auf Risiken durch nicht vertrauenswürdige Workflows bei selbst gehosteten Runnern hin. Verwahren Sie Signaturmaterial deshalb getrennt und geben Sie es nur einem freigegebenen Veröffentlichungsworkflow zur Laufzeit.
Gehört das Signierzertifikat in GitHub Secrets oder in den macOS-Schlüsselbund?
Die beiden Speicherorte erfüllen unterschiedliche Aufgaben. GitHub Secrets können für die kontrollierte Bereitstellung von Workflow-Geheimnissen verwendet werden; der macOS-Schlüsselbund ist dagegen der Laufzeitort, an dem der Signiervorgang auf dem Mac auf das importierte Material zugreift. Weder Secrets noch ein Schlüsselbund auf einem gemeinsam genutzten Runner ersetzen die Trennung von Aufgaben und Teams.
Wie verhindere ich, dass Builds aus verschiedenen Repositorys dieselben Signaturdaten auf einem Mac lesen?
Prüfen Sie zuerst, ob die Workloads und vertrauenswürdigen Teams auf getrennte Runner oder ausreichend isolierte Ausführungsgrenzen verteilt werden können. Begrenzen Sie außerdem die Workflow-Freigabe der Geheimnisse und dokumentieren Sie Konten, Arbeitsverzeichnisse und Schlüsselbundzugriff. Ein Freigabeschritt allein beweist nicht, dass ein gemeinsam genutzter Host isoliert ist.
Was muss nach einem GitHub-Actions-Build mit importierten Signaturschlüsseln geschehen?
Der Workflow sollte den temporären Schlüsselbund schließen und entfernen sowie Arbeitsdateien mit importiertem Signaturmaterial bereinigen. Belegen Sie diese Schritte durch nachvollziehbare Protokolle und Tests in der tatsächlichen Runner-Umgebung. Ein erfolgreich beendetes Skript ist für sich genommen kein Nachweis, dass keine Kopien oder zugänglichen Daten auf dem Host verblieben sind.
Wenn vorhandene Mac-Knoten weder eine belastbare Teamtrennung noch überprüfbare Bereinigung ermöglichen, sollte das Team zunächst die Runner-Architektur ändern, statt sich allein auf verschlüsselte Geheimnisse zu verlassen. Ein Kauf ist sinnvoll, wenn eine dauerhaft kontrollierte eigene Infrastruktur benötigt wird; für einen zeitlich begrenzten Pilot oder eine klar umrissene Build-Umgebung kann eine gemietete Mac-Umgebung eine Alternative sein. Vor einer Entscheidung sollten Sie die Anforderungen, Freigaben und Abnahmen dokumentieren und anschließend prüfen, ob die Mietoptionen von ArmMacs zu diesem Versuchsrahmen passen.
Häufig gestellte Fragen
Kann ein selbst gehosteter macOS Runner den iOS-Signaturschlüssel dauerhaft speichern?
Ein selbst gehosteter Runner kann Dateien und Schlüsselbunddaten auf seinem System behalten; das macht ihn jedoch nicht automatisch zu einem geeigneten Langzeitspeicher. GitHub weist auf Risiken durch nicht vertrauenswürdige Workflows bei selbst gehosteten Runnern hin. Verwahren Sie Signaturmaterial deshalb getrennt und geben Sie es nur einem freigegebenen Veröffentlichungsworkflow zur Laufzeit.
Gehört das Signierzertifikat in GitHub Secrets oder in den macOS-Schlüsselbund?
Die beiden Speicherorte erfüllen unterschiedliche Aufgaben. GitHub Secrets können für die kontrollierte Bereitstellung von Workflow-Geheimnissen verwendet werden; der macOS-Schlüsselbund ist dagegen der Laufzeitort, an dem der Signiervorgang auf dem Mac auf das importierte Material zugreift. Weder Secrets noch ein Schlüsselbund auf einem gemeinsam genutzten Runner ersetzen die Trennung von Aufgaben und Teams.
Wie verhindere ich, dass Builds aus verschiedenen Repositorys dieselben Signaturdaten auf einem Mac lesen?
Prüfen Sie zuerst, ob die Workloads und vertrauenswürdigen Teams auf getrennte Runner oder ausreichend isolierte Ausführungsgrenzen verteilt werden können. Begrenzen Sie außerdem die Workflow-Freigabe der Geheimnisse und dokumentieren Sie Konten, Arbeitsverzeichnisse und Schlüsselbundzugriff. Ein Freigabeschritt allein beweist nicht, dass ein gemeinsam genutzter Host isoliert ist.
Was muss nach einem GitHub-Actions-Build mit importierten Signaturschlüsseln geschehen?
Der Workflow sollte den temporären Schlüsselbund schließen und entfernen sowie Arbeitsdateien mit importiertem Signaturmaterial bereinigen. Belegen Sie diese Schritte durch nachvollziehbare Protokolle und Tests in der tatsächlichen Runner-Umgebung. Ein erfolgreich beendetes Skript ist für sich genommen kein Nachweis, dass keine Kopien oder zugänglichen Daten auf dem Host verblieben sind.
ArmMacs Cloud Mac
Richten Sie Ihre Signierumgebung auf einem dedizierten Mac ein
Mieten Sie bei ArmMacs einen dedizierten physischen Mac als selbst gehosteten Runner für Builds und Signieraufgaben.
