Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Możesz skonfigurować usługę rozwiązania zabezpieczające firmy Microsoft DevOps do skanowania połączonego repozytorium GitHub lub projektu usługi Azure DevOps. Użyj akcji GitHub lub rozszerzenia Azure DevOps, aby uruchomić rozwiązania zabezpieczające firmy Microsoft DevOps tylko na kodzie źródłowym infrastruktury jako kodu (IaC) i pomóc zmniejszyć czas działania potoku.
W tym artykule pokazano, jak zastosować plik konfiguracji YAML szablonu w celu zeskanowania połączonego repozytorium lub projektu specjalnie pod kątem problemów z zabezpieczeniami IaC z użyciem reguły rozwiązania zabezpieczające firmy Microsoft DevOps. Zanim zaczniesz, upewnij się, że masz podłączone repozytorium GitHub lub projekt Azure DevOps i przejrzyj wymagania wstępne.
Wymagania wstępne
- W przypadku usługi rozwiązania zabezpieczające firmy Microsoft DevOps skonfiguruj akcję GitHub lub rozszerzenie usługi Azure DevOps na podstawie systemu zarządzania kodem źródłowym:
- Jeśli repozytorium znajduje się w usłudze GitHub, skonfiguruj akcję rozwiązania zabezpieczające firmy Microsoft DevOps dla GitHub.
- Jeśli zarządzasz kodem źródłowym w usłudze Azure DevOps, skonfiguruj rozszerzenie rozwiązania zabezpieczające firmy Microsoft DevOps Azure DevOps.
- Upewnij się, że masz szablon IaC w repozytorium.
Skonfiguruj i uruchom akcję GitHub, aby skanować połączony kod źródłowy IaC
Aby skonfigurować akcję i wyświetlić wyniki skanowania w usłudze GitHub:
Zaloguj się do usługi GitHub.
Przejdź do strony głównej repozytorium.
W katalogu plików wybierz pozycję .github>workflows>msdevopssec.yml.
Aby uzyskać więcej informacji na temat pracy z akcją w usłudze GitHub, zobacz Wymagania wstępne.
Wybierz ikonę Edytuj ten plik (ołówek).
W sekcji Run analyzers pliku YAML dodaj następujący kod, aby umożliwić skanowanie Infrastructure as Code:
with: categories: 'IaC'Note
Wartości są rozróżniane według wielkości liter.
Poniższy zrzut ekranu pokazuje przykład zaktualizowanej konfiguracji YAML:
Wybierz Zatwierdź zmiany . .
Wybierz pozycję Zatwierdź zmiany.
(Opcjonalnie) Dodaj szablon IaC do repozytorium. Jeśli masz już szablon IaC w repozytorium, pomiń ten krok.
Na przykład zatwierdź szablon IaC, którego można użyć do wdrożenia podstawowej aplikacji internetowej systemu Linux.
Wybierz plik azuredeploy.json .
Wybierz Surowe.
Skopiuj wszystkie informacje w pliku, tak jak w poniższym przykładzie:
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "webAppName": { "type": "string", "defaultValue": "AzureLinuxApp", "metadata": { "description": "The base name of the resource, such as the web app name or the App Service plan." }, "minLength": 2 }, "sku": { "type": "string", "defaultValue": "S1", "metadata": { "description": "The SKU of the App Service plan." } }, "linuxFxVersion": { "type": "string", "defaultValue": "php|7.4", "metadata": { "description": "The runtime stack of the current web app." } }, "location": { "type": "string", "defaultValue": "[resourceGroup().location]", "metadata": { "description": "The location for all resources." } } }, "variables": { "webAppPortalName": "[concat(parameters('webAppName'), '-webapp')]", "appServicePlanName": "[concat('AppServicePlan-', parameters('webAppName'))]" }, "resources": [ { "type": "Microsoft.Web/serverfarms", "apiVersion": "2020-06-01", "name": "[variables('appServicePlanName')]", "location": "[parameters('location')]", "sku": { "name": "[parameters('sku')]" }, "kind": "linux", "properties": { "reserved": true } }, { "type": "Microsoft.Web/sites", "apiVersion": "2020-06-01", "name": "[variables('webAppPortalName')]", "location": "[parameters('location')]", "kind": "app", "dependsOn": [ "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]" ], "properties": { "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]", "siteConfig": { "linuxFxVersion": "[parameters('linuxFxVersion')]" } } } ] }W repozytorium GitHub przejdź do folderu .github/workflows .
Wybierz pozycję Dodaj plik>Utwórz nowy plik.
Wprowadź nazwę pliku.
Wklej skopiowane informacje w pliku.
Wybierz pozycję Zatwierdź nowy plik.
Plik szablonu jest dodawany do repozytorium.
Sprawdź, czy skanowanie usługi rozwiązania zabezpieczające firmy Microsoft DevOps zostało zakończone:
W repozytorium wybierz pozycję Akcje.
Wybierz przepływ pracy, aby wyświetlić stan akcji.
Aby zobaczyć wyniki skanowania, użyj jednej z następujących opcji:
- Przejdź do Defender for> security. Ta opcja nie wymaga licencji GitHub Advanced Security (GHAS).
- Jeśli masz licencję GitHub Advanced Security (GHAS), przejdź do> Natywnego skanowaniaalertów Security Code w GitHub.
Konfigurowanie i uruchamianie rozszerzenia usługi Azure DevOps w celu skanowania połączonego kodu źródłowego IaC
Aby skonfigurować rozszerzenie i wyświetlić wyniki skanowania w usłudze Azure DevOps:
Zaloguj się do Azure DevOps.
Wybierz projekt.
Wybierz pozycję Potoki danych.
Wybierz potok, w którym skonfigurowano rozszerzenie usługi Azure DevOps dla usługi rozwiązania zabezpieczające firmy Microsoft DevOps.
Wybierz Edytuj pipeline.
W pliku
displayNamekonfiguracyjnym YAML potoku poniżej linii zadania MicrosoftSecurityDevOps@1 dodaj następujący kod, aby umożliwić skanowanie Infrastructure as Code:inputs: categories: 'IaC'Poniższy zrzut ekranu pokazuje przykład konfiguracji YAML potoku z dodaną kategorią IaC:
Wybierz opcję Zapisz.
(Opcjonalnie) Dodaj szablon IaC do projektu usługi Azure DevOps. Jeśli masz już szablon IaC w projekcie, pomiń ten krok.
Wybierz, czy zatwierdzić bezpośrednio do gałęzi głównej, czy utworzyć nową gałąź dla zatwierdzenia, a następnie wybierz pozycję Zapisz.
Aby wyświetlić wyniki skanowania IaC, wybierz pozycję Potoki, a następnie wybierz zmodyfikowany potok.
Aby zobaczyć więcej szczegółów, wybierz wybrane uruchomienie potoku.
Wyświetlanie szczegółów i informacji dotyczących działań naprawczych dla zastosowanych reguł IaC
Narzędzia do skanowania IaC dołączone do metodyki rozwiązania zabezpieczające firmy Microsoft DevOps to Analizator szablonów (PSRule jest dołączony do analizatora szablonów), Checkov i Terrascan.
Analizator szablonów uruchamia reguły w szablonach usługi Azure Resource Manager (szablonach usługi ARM) i szablonach Bicep. Zobacz reguły Template Analyzer i szczegóły korygowania.
Narzędzie Terrascan uruchamia reguły dotyczące szablonów ARM oraz szablonów CloudFormation, Docker, Helm, Kubernetes, Kustomize i Terraform. Zobacz reguły Terrascan.
Chekov uruchamia reguły dotyczące szablonów ARM oraz szablonów CloudFormation, Docker, Helm, Kubernetes, Kustomize i Terraform. Zobacz reguły checkov.
Aby dowiedzieć się więcej na temat narzędzi do skanowania IaC dołączonych do usługi rozwiązania zabezpieczające firmy Microsoft DevOps, zobacz:
Treści powiązane
W tym artykule przedstawiono sposób konfigurowania akcji usługi GitHub i rozszerzenia usługi Azure DevOps dla usługi rozwiązania zabezpieczające firmy Microsoft DevOps w celu skanowania pod kątem błędów konfiguracji zabezpieczeń IaC i wyświetlania wyników.
Aby uzyskać więcej informacji:
- Dowiedz się więcej o zabezpieczeniach metodyki DevOps.
- Dowiedz się, jak połączyć repozytorium GitHub z usługą Defender dla Chmury.
- Dowiedz się, jak połączyć projekt usługi Azure DevOps z usługą Defender dla Chmury.