diff --git a/docs/tutorials/aws/getting-started-aws.md b/docs/tutorials/aws/getting-started-aws.md new file mode 100644 index 0000000000..840069a5e3 --- /dev/null +++ b/docs/tutorials/aws/getting-started-aws.md @@ -0,0 +1,214 @@ +# Getting Started with AWS on Prowler Cloud + + + +Set up your AWS account to enable security scanning using Prowler Cloud. + +## Requirements + +To configure your AWS account, you’ll need: + +1. Access to Prowler Cloud +2. Properly configured AWS credentials (either static or via an assumed IAM role) + +--- + +## Step 1: Get Your AWS Account ID + +1. Log in to the [AWS Console](https://console.aws.amazon.com) +2. Locate your AWS account ID in the top-right dropdown menu + +![Account ID detail](./img/aws-account-id.png) + +--- + +## Step 2: Access Prowler Cloud + +1. Navigate to [Prowler Cloud](https://cloud.prowler.com/) +2. Go to `Configuration` > `Cloud Providers` + + ![Cloud Providers Page](../img/cloud-providers-page.png) + +3. Click `Add Cloud Provider` + + ![Add a Cloud Provider](../img/add-cloud-provider.png) + +4. Select `Amazon Web Services` + + ![Select AWS Provider](./img/select-aws.png) + +5. Enter your AWS Account ID and optionally provide a friendly alias + + ![Add account ID](./img/add-account-id.png) + +6. Choose your preferred authentication method (next step) + + ![Select auth method](./img/select-auth-method.png) + +--- + +## Step 3: Set Up AWS Authentication + +Before proceeding, choose your preferred authentication mode: + +Credentials + +* Quick scan as current user ✅ +* No extra setup ✅ +* Credentials time out ❌ + +Assumed Role + +* Preferred Setup ✅ +* Permanent Credentials ✅ +* Requires access to create role ❌ + +--- + +### 🔐 Assume Role (Recommended) + +![Assume Role Overview](./img/assume-role-overview.png) + +This method grants permanent access and is the recommended setup for production environments. + +=== "CloudFormation" + + 1. Download the [Prowler Scan Role Template](https://raw.githubusercontent.com/prowler-cloud/prowler/refs/heads/master/permissions/templates/cloudformation/prowler-scan-role.yml) + + ![Prowler Scan Role Template](./img/prowler-scan-role-template.png) + + ![Download Role Template](./img/download-role-template.png) + + 2. Open the [AWS Console](https://console.aws.amazon.com), search for **CloudFormation** + + ![CloudFormation Search](./img/cloudformation-nav.png) + + 3. Go to **Stacks** and click `Create stack` > `With new resources (standard)` + + ![Create Stack](./img/create-stack.png) + + 4. In **Specify Template**, choose `Upload a template file` and select the downloaded file + + ![Upload a template file](./img/upload-template-file.png) + ![Upload file from downloads](./img/upload-template-from-downloads.png) + + 5. Click `Next`, provide a stack name and the **External ID** shown in the Prowler Cloud setup screen + + ![External ID](./img/prowler-cloud-external-id.png) + ![Stack Data](./img/fill-stack-data.png) + + 6. Acknowledge the IAM resource creation warning and proceed + + ![Stack Creation Second Step](./img/stack-creation-second-step.png) + + 7. Click `Submit` to deploy the stack + + ![Click on submit](./img/submit-third-page.png) + +=== "Terraform" + + To provision the scan role using Terraform: + + 1. Run the following commands: + + ```bash + terraform init + terraform plan + terraform apply + ``` + + 2. During `plan` and `apply`, you will be prompted for the **External ID**, which is available in the Prowler Cloud UI: + + ![Get External ID](./img/get-external-id-prowler-cloud.png) + + > 💡 Note: Terraform will use the AWS credentials of your default profile. + +--- + +### Finish Setup with Assume Role + +8. Once the role is created, go to the **IAM Console**, click on the `ProwlerScan` role to open its details: + + ![ProwlerScan role info](./img/prowler-scan-pre-info.png) + +9. Copy the **Role ARN** + + ![New Role Info](./img/get-role-arn.png) + +10. Paste the ARN into the corresponding field in Prowler Cloud + + ![Input the Role ARN](./img/paste-role-arn-prowler.png) + +11. Click `Next`, then `Launch Scan` + + ![Next button in Prowler Cloud](./img/next-button-prowler-cloud.png) + ![Launch Scan](./img/launch-scan-button-prowler-cloud.png) + +--- + +### 🔑 Credentials (Static Access Keys) + +You can also configure your AWS account using static credentials (not recommended for long-term use): + +![Connect via credentials](./img/connect-via-credentials.png) + +=== "Long term credentials" + + 1. Go to the [AWS Console](https://console.aws.amazon.com), open **CloudShell** + + ![AWS CloudShell](./img/aws-cloudshell.png) + + 2. Run: + + ```bash + aws iam create-access-key + ``` + + 3. Copy the output containing: + + - `AccessKeyId` + - `SecretAccessKey` + + ![CloudShell Output](./img/cloudshell-output.png) + + > ⚠️ Save these credentials securely and paste them into the Prowler Cloud setup screen. + +=== "Short term credentials (Recommended)" + + You can use your [AWS Access Portal](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html) or the CLI: + + 1. Retrieve short-term credentials for the IAM identity using this command: + + ```bash + aws sts get-session-token --duration-seconds 900 + ``` + + ???+ note + Check the aws documentation [here](https://docs.aws.amazon.com/IAM/latest/UserGuide/sts_example_sts_GetSessionToken_section.html) + + 2. Copy the output containing: + + - `AccessKeyId` + - `SecretAccessKey` + + > Sample output: + ```json + { + "Credentials": { + "AccessKeyId": "ASIAIOSFODNN7EXAMPLE", + "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY", + "SessionToken": "AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4OlgkBN9bkUDNCJiBeb/AXlzBBko7b15fjrBs2+cTQtpZ3CYWFXG8C5zqx37wnOE49mRl/+OtkIKGO7fAE", + "Expiration": "2020-05-19T18:06:10+00:00" + } + } + ``` + + > ⚠️ Save these credentials securely and paste them into the Prowler Cloud setup screen. + +Complete the form in Prowler Cloud and click `Next` + +![Filled credentials page](./img/prowler-cloud-credentials-next.png) + +Click `Launch Scan` + +![Launch Scan](./img/launch-scan-button-prowler-cloud.png) diff --git a/docs/tutorials/aws/img/add-account-id.png b/docs/tutorials/aws/img/add-account-id.png new file mode 100644 index 0000000000..bfded597a9 Binary files /dev/null and b/docs/tutorials/aws/img/add-account-id.png differ diff --git a/docs/tutorials/aws/img/assume-role-overview.png b/docs/tutorials/aws/img/assume-role-overview.png new file mode 100644 index 0000000000..d99ea0564e Binary files /dev/null and b/docs/tutorials/aws/img/assume-role-overview.png differ diff --git a/docs/tutorials/aws/img/aws-account-id.png b/docs/tutorials/aws/img/aws-account-id.png new file mode 100644 index 0000000000..ea7c96efc4 Binary files /dev/null and b/docs/tutorials/aws/img/aws-account-id.png differ diff --git a/docs/tutorials/aws/img/aws-cloudshell.png b/docs/tutorials/aws/img/aws-cloudshell.png new file mode 100644 index 0000000000..91e66c4ed3 Binary files /dev/null and b/docs/tutorials/aws/img/aws-cloudshell.png differ diff --git a/docs/tutorials/aws/img/cloudformation-nav.png b/docs/tutorials/aws/img/cloudformation-nav.png new file mode 100644 index 0000000000..3ea375a34c Binary files /dev/null and b/docs/tutorials/aws/img/cloudformation-nav.png differ diff --git a/docs/tutorials/aws/img/cloudshell-output.png b/docs/tutorials/aws/img/cloudshell-output.png new file mode 100644 index 0000000000..85a8493724 Binary files /dev/null and b/docs/tutorials/aws/img/cloudshell-output.png differ diff --git a/docs/tutorials/aws/img/connect-via-credentials.png b/docs/tutorials/aws/img/connect-via-credentials.png new file mode 100644 index 0000000000..4e3ba9e7f8 Binary files /dev/null and b/docs/tutorials/aws/img/connect-via-credentials.png differ diff --git a/docs/tutorials/aws/img/create-stack.png b/docs/tutorials/aws/img/create-stack.png new file mode 100644 index 0000000000..ab95304bb8 Binary files /dev/null and b/docs/tutorials/aws/img/create-stack.png differ diff --git a/docs/tutorials/aws/img/download-role-template.png b/docs/tutorials/aws/img/download-role-template.png new file mode 100644 index 0000000000..755e480ba9 Binary files /dev/null and b/docs/tutorials/aws/img/download-role-template.png differ diff --git a/docs/tutorials/aws/img/fill-stack-data.png b/docs/tutorials/aws/img/fill-stack-data.png new file mode 100644 index 0000000000..7c7214f0be Binary files /dev/null and b/docs/tutorials/aws/img/fill-stack-data.png differ diff --git a/docs/tutorials/aws/img/get-external-id-prowler-cloud.png b/docs/tutorials/aws/img/get-external-id-prowler-cloud.png new file mode 100644 index 0000000000..720557a06e Binary files /dev/null and b/docs/tutorials/aws/img/get-external-id-prowler-cloud.png differ diff --git a/docs/tutorials/aws/img/get-role-arn.png b/docs/tutorials/aws/img/get-role-arn.png new file mode 100644 index 0000000000..1add60580a Binary files /dev/null and b/docs/tutorials/aws/img/get-role-arn.png differ diff --git a/docs/tutorials/aws/img/launch-scan-button-prowler-cloud.png b/docs/tutorials/aws/img/launch-scan-button-prowler-cloud.png new file mode 100644 index 0000000000..06b7e37a85 Binary files /dev/null and b/docs/tutorials/aws/img/launch-scan-button-prowler-cloud.png differ diff --git a/docs/tutorials/aws/img/next-button-prowler-cloud.png b/docs/tutorials/aws/img/next-button-prowler-cloud.png new file mode 100644 index 0000000000..f41437c17e Binary files /dev/null and b/docs/tutorials/aws/img/next-button-prowler-cloud.png differ diff --git a/docs/tutorials/aws/img/next-cloudformation-template.png b/docs/tutorials/aws/img/next-cloudformation-template.png new file mode 100644 index 0000000000..1f646f90b8 Binary files /dev/null and b/docs/tutorials/aws/img/next-cloudformation-template.png differ diff --git a/docs/tutorials/aws/img/paste-role-arn-prowler.png b/docs/tutorials/aws/img/paste-role-arn-prowler.png new file mode 100644 index 0000000000..82d7165334 Binary files /dev/null and b/docs/tutorials/aws/img/paste-role-arn-prowler.png differ diff --git a/docs/tutorials/aws/img/prowler-cloud-credentials-next.png b/docs/tutorials/aws/img/prowler-cloud-credentials-next.png new file mode 100644 index 0000000000..0f73b00905 Binary files /dev/null and b/docs/tutorials/aws/img/prowler-cloud-credentials-next.png differ diff --git a/docs/tutorials/aws/img/prowler-cloud-external-id.png b/docs/tutorials/aws/img/prowler-cloud-external-id.png new file mode 100644 index 0000000000..79fb1b19e3 Binary files /dev/null and b/docs/tutorials/aws/img/prowler-cloud-external-id.png differ diff --git a/docs/tutorials/aws/img/prowler-scan-pre-info.png b/docs/tutorials/aws/img/prowler-scan-pre-info.png new file mode 100644 index 0000000000..950a45f3c1 Binary files /dev/null and b/docs/tutorials/aws/img/prowler-scan-pre-info.png differ diff --git a/docs/tutorials/aws/img/prowler-scan-role-template.png b/docs/tutorials/aws/img/prowler-scan-role-template.png new file mode 100644 index 0000000000..34847eb2d7 Binary files /dev/null and b/docs/tutorials/aws/img/prowler-scan-role-template.png differ diff --git a/docs/tutorials/aws/img/select-auth-method.png b/docs/tutorials/aws/img/select-auth-method.png new file mode 100644 index 0000000000..17d26dec41 Binary files /dev/null and b/docs/tutorials/aws/img/select-auth-method.png differ diff --git a/docs/tutorials/aws/img/select-aws.png b/docs/tutorials/aws/img/select-aws.png new file mode 100644 index 0000000000..f7d08ae628 Binary files /dev/null and b/docs/tutorials/aws/img/select-aws.png differ diff --git a/docs/tutorials/aws/img/stack-creation-second-step.png b/docs/tutorials/aws/img/stack-creation-second-step.png new file mode 100644 index 0000000000..fb4c6a27b0 Binary files /dev/null and b/docs/tutorials/aws/img/stack-creation-second-step.png differ diff --git a/docs/tutorials/aws/img/submit-third-page.png b/docs/tutorials/aws/img/submit-third-page.png new file mode 100644 index 0000000000..7bbb1db8b8 Binary files /dev/null and b/docs/tutorials/aws/img/submit-third-page.png differ diff --git a/docs/tutorials/aws/img/upload-template-file.png b/docs/tutorials/aws/img/upload-template-file.png new file mode 100644 index 0000000000..6455cee381 Binary files /dev/null and b/docs/tutorials/aws/img/upload-template-file.png differ diff --git a/docs/tutorials/aws/img/upload-template-from-downloads.png b/docs/tutorials/aws/img/upload-template-from-downloads.png new file mode 100644 index 0000000000..3d9bbc6716 Binary files /dev/null and b/docs/tutorials/aws/img/upload-template-from-downloads.png differ diff --git a/docs/tutorials/azure/getting-started-azure.md b/docs/tutorials/azure/getting-started-azure.md new file mode 100644 index 0000000000..04240c692a --- /dev/null +++ b/docs/tutorials/azure/getting-started-azure.md @@ -0,0 +1,171 @@ +# Getting Started with Azure on Prowler Cloud + + + +Set up your Azure subscription to enable security scanning using Prowler Cloud. + +## Requirements + +To configure your Azure subscription, you’ll need: + +1. Get the `Subscription ID` +2. Access to Prowler Cloud +3. Configure authentication in Azure: + + 3.1 Create a Service Principal + + 3.2 Assign required permissions + + 3.3 Assign permissions at the subscription level + +4. Add the credentials to Prowler Cloud + +--- + +## Step 1: Get the Subscription ID + +1. Go to the [Azure Portal](https://portal.azure.com/#home) and search for `Subscriptions` +2. Locate and copy your Subscription ID + + ![Search Subscription](./img/search-subscriptions.png) + ![Subscriptions Page](./img/get-subscription-id.png) + +--- + +## Step 2: Access Prowler Cloud + +1. Go to [Prowler Cloud](https://cloud.prowler.com/) +2. Navigate to `Configuration` > `Cloud Providers` + + ![Cloud Providers Page](../img/cloud-providers-page.png) + +3. Click on `Add Cloud Provider` + + ![Add a Cloud Provider](../img/add-cloud-provider.png) + +4. Select `Microsoft Azure` + + ![Select Microsoft Azure](./img/select-azure-prowler-cloud.png) + +5. Add the Subscription ID and an optional alias, then click `Next` + + ![Add Subscription ID](./img/add-subscription-id.png) + +--- + +## Step 3: Configure the Azure Subscription + +### Create the Service Principal + +A Service Principal is required to grant Prowler the necessary privileges. + +1. Access **Microsoft Entra ID** + + ![Search Microsoft Entra ID](./img/search-microsoft-entra-id.png) + +2. Navigate to `Manage` > `App registrations` + + ![App Registration nav](./img/app-registration-menu.png) + +3. Click `+ New registration`, complete the form, and click `Register` + + ![New Registration](./img/new-registration.png) + +4. Go to `Certificates & secrets` > `+ New client secret` + + ![Certificate & Secrets nav](./img/certificates-and-secrets.png) + ![New Client Secret](./img/new-client-secret.png) + +5. Fill in the required fields and click `Add`, then copy the generated value + +| Value | Description | +|-------|-------------| +| Client ID | Application ID | +| Client Secret | AZURE_CLIENT_SECRET | +| Tenant ID | Azure Active Directory tenant ID | + +--- + +### Assign Required API Permissions + +Assign the following Microsoft Graph permissions: + + - Directory.Read.All + + - Policy.Read.All + + - UserAuthenticationMethod.Read.All (optional, for MFA checks) + +1. Go to your App Registration > `API permissions` + + ![API Permission Page](./img/api-permissions-page.png) + +2. Click `+ Add a permission` > `Microsoft Graph` > `Application permissions` + + ![Add API Permission](./img/add-api-permission.png) + ![Microsoft Graph Detail](./img/microsoft-graph-detail.png) + +3. Search and select: + + - `Directory.Read.All` + - `Policy.Read.All` + - `UserAuthenticationMethod.Read.All` + + ![Permission Screenshots](./img/directory-permission.png) + +4. Click `Add permissions`, then grant admin consent + + ![Grant Admin Consent](./img/grant-admin-consent.png) + +--- + +### Assign Permissions at the Subscription Level + +1. Download the [Prowler Azure Custom Role](https://github.com/prowler-cloud/prowler/blob/master/permissions/prowler-azure-custom-role.json) + + ![Azure Custom Role](./img/download-prowler-role.png) + +2. Modify `assignableScopes` to match your Subscription ID (e.g. `/subscriptions/xxxx-xxxx-xxxx-xxxx`) + +3. Go to your Azure Subscription > `Access control (IAM)` + + ![IAM Page](./img/iam-azure-page.png) + +4. Click `+ Add` > `Add custom role`, choose "Start from JSON" and upload the modified file + + ![Add custom role via JSON](./img/add-custom-role-json.png) + +5. Click `Review + Create` to finish + + ![Select review and create](./img/review-and-create.png) + +6. Return to `Access control (IAM)` > `+ Add` > `Add role assignment` + + - Assign the `Reader` role + - Then repeat and assign the custom `ProwlerRole` + + ![Role Assignment](./img/add-role-assigment.png) + +--- + +## Step 4: Add Credentials to Prowler Cloud + +1. Go to your App Registration overview and copy the `Client ID` and `Tenant ID` + + ![App Overview](./img/app-overview.png) + +2. Go to Prowler Cloud and paste: + + - `Client ID` + - `Tenant ID` + - `AZURE_CLIENT_SECRET` from earlier + + ![Prowler Cloud Azure Credentials](./img/add-credentials-azure-prowler-cloud.png) + +3. Click `Next` + + ![Next Detail](./img/click-next-azure.png) + +4. Click `Launch Scan` + + ![Launch Scan Azure](./img/launch-scan.png) diff --git a/docs/tutorials/azure/img/add-api-permission.png b/docs/tutorials/azure/img/add-api-permission.png new file mode 100644 index 0000000000..9fa3d02b47 Binary files /dev/null and b/docs/tutorials/azure/img/add-api-permission.png differ diff --git a/docs/tutorials/azure/img/add-credentials-azure-prowler-cloud.png b/docs/tutorials/azure/img/add-credentials-azure-prowler-cloud.png new file mode 100644 index 0000000000..48b722a200 Binary files /dev/null and b/docs/tutorials/azure/img/add-credentials-azure-prowler-cloud.png differ diff --git a/docs/tutorials/azure/img/add-custom-role-json.png b/docs/tutorials/azure/img/add-custom-role-json.png new file mode 100644 index 0000000000..92e7d18bc7 Binary files /dev/null and b/docs/tutorials/azure/img/add-custom-role-json.png differ diff --git a/docs/tutorials/azure/img/add-custom-role.png b/docs/tutorials/azure/img/add-custom-role.png new file mode 100644 index 0000000000..0f00f05619 Binary files /dev/null and b/docs/tutorials/azure/img/add-custom-role.png differ diff --git a/docs/tutorials/azure/img/add-reader-role.png b/docs/tutorials/azure/img/add-reader-role.png new file mode 100644 index 0000000000..110ae1645d Binary files /dev/null and b/docs/tutorials/azure/img/add-reader-role.png differ diff --git a/docs/tutorials/azure/img/add-role-assigment.png b/docs/tutorials/azure/img/add-role-assigment.png new file mode 100644 index 0000000000..3037911aaf Binary files /dev/null and b/docs/tutorials/azure/img/add-role-assigment.png differ diff --git a/docs/tutorials/azure/img/add-subscription-id.png b/docs/tutorials/azure/img/add-subscription-id.png new file mode 100644 index 0000000000..235fd377b8 Binary files /dev/null and b/docs/tutorials/azure/img/add-subscription-id.png differ diff --git a/docs/tutorials/azure/img/api-permissions-page.png b/docs/tutorials/azure/img/api-permissions-page.png new file mode 100644 index 0000000000..9093cc5ece Binary files /dev/null and b/docs/tutorials/azure/img/api-permissions-page.png differ diff --git a/docs/tutorials/azure/img/api-permissions-result.png b/docs/tutorials/azure/img/api-permissions-result.png new file mode 100644 index 0000000000..26a7f83587 Binary files /dev/null and b/docs/tutorials/azure/img/api-permissions-result.png differ diff --git a/docs/tutorials/azure/img/app-overview.png b/docs/tutorials/azure/img/app-overview.png new file mode 100644 index 0000000000..bb869c098d Binary files /dev/null and b/docs/tutorials/azure/img/app-overview.png differ diff --git a/docs/tutorials/azure/img/app-registration-menu.png b/docs/tutorials/azure/img/app-registration-menu.png new file mode 100644 index 0000000000..cc66a0088c Binary files /dev/null and b/docs/tutorials/azure/img/app-registration-menu.png differ diff --git a/docs/tutorials/azure/img/application-permissions-inside-graph.png b/docs/tutorials/azure/img/application-permissions-inside-graph.png new file mode 100644 index 0000000000..58f0846d4f Binary files /dev/null and b/docs/tutorials/azure/img/application-permissions-inside-graph.png differ diff --git a/docs/tutorials/azure/img/certificates-and-secrets.png b/docs/tutorials/azure/img/certificates-and-secrets.png new file mode 100644 index 0000000000..6377a271f0 Binary files /dev/null and b/docs/tutorials/azure/img/certificates-and-secrets.png differ diff --git a/docs/tutorials/azure/img/click-add-permissions.png b/docs/tutorials/azure/img/click-add-permissions.png new file mode 100644 index 0000000000..f4f30fd591 Binary files /dev/null and b/docs/tutorials/azure/img/click-add-permissions.png differ diff --git a/docs/tutorials/azure/img/click-next-azure.png b/docs/tutorials/azure/img/click-next-azure.png new file mode 100644 index 0000000000..4e2e90cd98 Binary files /dev/null and b/docs/tutorials/azure/img/click-next-azure.png differ diff --git a/docs/tutorials/azure/img/directory-permission.png b/docs/tutorials/azure/img/directory-permission.png new file mode 100644 index 0000000000..34dc81abeb Binary files /dev/null and b/docs/tutorials/azure/img/directory-permission.png differ diff --git a/docs/tutorials/azure/img/download-prowler-role.png b/docs/tutorials/azure/img/download-prowler-role.png new file mode 100644 index 0000000000..ef03f7e6ef Binary files /dev/null and b/docs/tutorials/azure/img/download-prowler-role.png differ diff --git a/docs/tutorials/azure/img/get-subscription-id.png b/docs/tutorials/azure/img/get-subscription-id.png new file mode 100644 index 0000000000..2d4cfa4b2e Binary files /dev/null and b/docs/tutorials/azure/img/get-subscription-id.png differ diff --git a/docs/tutorials/azure/img/grant-admin-consent.png b/docs/tutorials/azure/img/grant-admin-consent.png new file mode 100644 index 0000000000..5c7a7c1169 Binary files /dev/null and b/docs/tutorials/azure/img/grant-admin-consent.png differ diff --git a/docs/tutorials/azure/img/iam-azure-page.png b/docs/tutorials/azure/img/iam-azure-page.png new file mode 100644 index 0000000000..db87f9e7ce Binary files /dev/null and b/docs/tutorials/azure/img/iam-azure-page.png differ diff --git a/docs/tutorials/azure/img/launch-scan.png b/docs/tutorials/azure/img/launch-scan.png new file mode 100644 index 0000000000..5fad0c34ea Binary files /dev/null and b/docs/tutorials/azure/img/launch-scan.png differ diff --git a/docs/tutorials/azure/img/member-select-app-prowler.png b/docs/tutorials/azure/img/member-select-app-prowler.png new file mode 100644 index 0000000000..e95984263a Binary files /dev/null and b/docs/tutorials/azure/img/member-select-app-prowler.png differ diff --git a/docs/tutorials/azure/img/microsoft-graph-detail.png b/docs/tutorials/azure/img/microsoft-graph-detail.png new file mode 100644 index 0000000000..888a2e551e Binary files /dev/null and b/docs/tutorials/azure/img/microsoft-graph-detail.png differ diff --git a/docs/tutorials/azure/img/new-client-secret.png b/docs/tutorials/azure/img/new-client-secret.png new file mode 100644 index 0000000000..2d1205d733 Binary files /dev/null and b/docs/tutorials/azure/img/new-client-secret.png differ diff --git a/docs/tutorials/azure/img/new-registration.png b/docs/tutorials/azure/img/new-registration.png new file mode 100644 index 0000000000..b3c9337683 Binary files /dev/null and b/docs/tutorials/azure/img/new-registration.png differ diff --git a/docs/tutorials/azure/img/policy-permission.png b/docs/tutorials/azure/img/policy-permission.png new file mode 100644 index 0000000000..dce61b7caf Binary files /dev/null and b/docs/tutorials/azure/img/policy-permission.png differ diff --git a/docs/tutorials/azure/img/prowler-app-registration.png b/docs/tutorials/azure/img/prowler-app-registration.png new file mode 100644 index 0000000000..9a2e521702 Binary files /dev/null and b/docs/tutorials/azure/img/prowler-app-registration.png differ diff --git a/docs/tutorials/azure/img/review-and-assign-last-step.png b/docs/tutorials/azure/img/review-and-assign-last-step.png new file mode 100644 index 0000000000..768c58f536 Binary files /dev/null and b/docs/tutorials/azure/img/review-and-assign-last-step.png differ diff --git a/docs/tutorials/azure/img/review-and-create.png b/docs/tutorials/azure/img/review-and-create.png new file mode 100644 index 0000000000..8ef0ec24b7 Binary files /dev/null and b/docs/tutorials/azure/img/review-and-create.png differ diff --git a/docs/tutorials/azure/img/search-microsoft-entra-id.png b/docs/tutorials/azure/img/search-microsoft-entra-id.png new file mode 100644 index 0000000000..f5fc7170eb Binary files /dev/null and b/docs/tutorials/azure/img/search-microsoft-entra-id.png differ diff --git a/docs/tutorials/azure/img/search-subscriptions.png b/docs/tutorials/azure/img/search-subscriptions.png new file mode 100644 index 0000000000..c9b3d2e017 Binary files /dev/null and b/docs/tutorials/azure/img/search-subscriptions.png differ diff --git a/docs/tutorials/azure/img/select-azure-prowler-cloud.png b/docs/tutorials/azure/img/select-azure-prowler-cloud.png new file mode 100644 index 0000000000..2b8b473d0a Binary files /dev/null and b/docs/tutorials/azure/img/select-azure-prowler-cloud.png differ diff --git a/docs/tutorials/azure/img/select-custom-role-prowler.png b/docs/tutorials/azure/img/select-custom-role-prowler.png new file mode 100644 index 0000000000..219455ce12 Binary files /dev/null and b/docs/tutorials/azure/img/select-custom-role-prowler.png differ diff --git a/docs/tutorials/azure/img/select-members-iam.png b/docs/tutorials/azure/img/select-members-iam.png new file mode 100644 index 0000000000..a7d0999a98 Binary files /dev/null and b/docs/tutorials/azure/img/select-members-iam.png differ diff --git a/docs/tutorials/azure/img/subscription-page-azure.png b/docs/tutorials/azure/img/subscription-page-azure.png new file mode 100644 index 0000000000..98bc1a0b26 Binary files /dev/null and b/docs/tutorials/azure/img/subscription-page-azure.png differ diff --git a/docs/tutorials/azure/img/user-permission.png b/docs/tutorials/azure/img/user-permission.png new file mode 100644 index 0000000000..4a402fe161 Binary files /dev/null and b/docs/tutorials/azure/img/user-permission.png differ diff --git a/docs/tutorials/gcp/getting-started-gcp.md b/docs/tutorials/gcp/getting-started-gcp.md new file mode 100644 index 0000000000..c4de37d68e --- /dev/null +++ b/docs/tutorials/gcp/getting-started-gcp.md @@ -0,0 +1,107 @@ +# Getting Started with GCP on Prowler Cloud + + + +Set up your GCP project to enable security scanning using Prowler Cloud. + +## Requirements + +To configure your GCP project, you’ll need: + +1. Get the `Project ID` +2. Access to Prowler Cloud +3. Configure authentication in GCP: + + 3.1 Retrieve credentials from Google Cloud + +4. Add the credentials to Prowler Cloud + +--- + +## Step 1: Get the Project ID + +1. Go to the [GCP Console](https://console.cloud.google.com/) +2. Locate your Project ID on the welcome screen + +![Get the Project ID](./img/project-id-console.png) + +--- + +## Step 2: Access Prowler Cloud + +1. Go to [Prowler Cloud](https://cloud.prowler.com/) +2. Navigate to `Configuration` > `Cloud Providers` + + ![Cloud Providers Page](../img/cloud-providers-page.png) + +3. Click `Add Cloud Provider` + + ![Add a Cloud Provider](../img/add-cloud-provider.png) + +4. Select `Google Cloud Platform` + + ![Select GCP](./img/select-gcp.png) + +5. Add the Project ID and optionally provide a provider alias, then click `Next` + + ![Add Project ID](./img/add-project-id.png) + +--- + +## Step 3: Configure Authentication in GCP + +### Retrieve Credentials from Google Cloud + +1. In the [GCP Console](https://console.cloud.google.com/), click on `Activate Cloud Shell` + + ![Activate Cloud Shell](./img/access-console.png) + +2. Click `Authorize Cloud Shell` + + ![Authorize Cloud Shell](./img/authorize-cloud-shell.png) + +3. Run the following command: + + ```bash + gcloud auth application-default login + ``` + + - Type `Y` when prompted + + ![Run Gcloud Auth](./img/run-gcloud-auth.png) + +4. Open the authentication URL provided in a browser and select your Google account + + ![Choose the account](./img/take-account-email.png) + +5. Follow the steps to obtain the authentication code + + ![Copy auth code](./img/copy-auth-code.png) + +6. Paste the authentication code back in Cloud Shell + + ![Enter Auth Code](./img/enter-auth-code.png) + +7. Use `cat ` to view the temporary credentials file + + ![Get the FileName](./img/get-temp-file-credentials.png) + +8. Extract the following values for Prowler Cloud: + + - `client_id` + - `client_secret` + - `refresh_token` + + ![Get the values](./img/get-needed-values-auth.png) + +--- + +## Step 4: Add Credentials to Prowler Cloud + +1. Go back to Prowler Cloud and enter the required credentials, then click `Next` + + ![Enter the Credentials](./img/enter-credentials-prowler-cloud.png) + +2. Click `Launch Scan` to begin scanning your GCP environment + + ![Launch Scan GCP](./img/launch-scan.png) diff --git a/docs/tutorials/gcp/img/access-console.png b/docs/tutorials/gcp/img/access-console.png new file mode 100644 index 0000000000..9a7814e7b1 Binary files /dev/null and b/docs/tutorials/gcp/img/access-console.png differ diff --git a/docs/tutorials/gcp/img/add-project-id.png b/docs/tutorials/gcp/img/add-project-id.png new file mode 100644 index 0000000000..41b2971a06 Binary files /dev/null and b/docs/tutorials/gcp/img/add-project-id.png differ diff --git a/docs/tutorials/gcp/img/authorize-cloud-shell.png b/docs/tutorials/gcp/img/authorize-cloud-shell.png new file mode 100644 index 0000000000..88fc6bcbf9 Binary files /dev/null and b/docs/tutorials/gcp/img/authorize-cloud-shell.png differ diff --git a/docs/tutorials/gcp/img/copy-auth-code.png b/docs/tutorials/gcp/img/copy-auth-code.png new file mode 100644 index 0000000000..a8d0496603 Binary files /dev/null and b/docs/tutorials/gcp/img/copy-auth-code.png differ diff --git a/docs/tutorials/gcp/img/enter-auth-code.png b/docs/tutorials/gcp/img/enter-auth-code.png new file mode 100644 index 0000000000..03f80e29c4 Binary files /dev/null and b/docs/tutorials/gcp/img/enter-auth-code.png differ diff --git a/docs/tutorials/gcp/img/enter-credentials-prowler-cloud.png b/docs/tutorials/gcp/img/enter-credentials-prowler-cloud.png new file mode 100644 index 0000000000..286af1c643 Binary files /dev/null and b/docs/tutorials/gcp/img/enter-credentials-prowler-cloud.png differ diff --git a/docs/tutorials/gcp/img/get-needed-values-auth.png b/docs/tutorials/gcp/img/get-needed-values-auth.png new file mode 100644 index 0000000000..95953e1098 Binary files /dev/null and b/docs/tutorials/gcp/img/get-needed-values-auth.png differ diff --git a/docs/tutorials/gcp/img/get-temp-file-credentials.png b/docs/tutorials/gcp/img/get-temp-file-credentials.png new file mode 100644 index 0000000000..ce7160ee87 Binary files /dev/null and b/docs/tutorials/gcp/img/get-temp-file-credentials.png differ diff --git a/docs/tutorials/gcp/img/launch-scan.png b/docs/tutorials/gcp/img/launch-scan.png new file mode 100644 index 0000000000..49511e5300 Binary files /dev/null and b/docs/tutorials/gcp/img/launch-scan.png differ diff --git a/docs/tutorials/gcp/img/open-link-console.png b/docs/tutorials/gcp/img/open-link-console.png new file mode 100644 index 0000000000..05a1b61ce8 Binary files /dev/null and b/docs/tutorials/gcp/img/open-link-console.png differ diff --git a/docs/tutorials/gcp/img/project-id-console.png b/docs/tutorials/gcp/img/project-id-console.png new file mode 100644 index 0000000000..7701509f32 Binary files /dev/null and b/docs/tutorials/gcp/img/project-id-console.png differ diff --git a/docs/tutorials/gcp/img/run-gcloud-auth.png b/docs/tutorials/gcp/img/run-gcloud-auth.png new file mode 100644 index 0000000000..853fe33892 Binary files /dev/null and b/docs/tutorials/gcp/img/run-gcloud-auth.png differ diff --git a/docs/tutorials/gcp/img/select-gcp.png b/docs/tutorials/gcp/img/select-gcp.png new file mode 100644 index 0000000000..0aed14394c Binary files /dev/null and b/docs/tutorials/gcp/img/select-gcp.png differ diff --git a/docs/tutorials/gcp/img/take-account-email.png b/docs/tutorials/gcp/img/take-account-email.png new file mode 100644 index 0000000000..4076bb7fc0 Binary files /dev/null and b/docs/tutorials/gcp/img/take-account-email.png differ diff --git a/docs/tutorials/img/add-cloud-provider.png b/docs/tutorials/img/add-cloud-provider.png new file mode 100644 index 0000000000..dd42e73047 Binary files /dev/null and b/docs/tutorials/img/add-cloud-provider.png differ diff --git a/docs/tutorials/img/cloud-providers-page.png b/docs/tutorials/img/cloud-providers-page.png new file mode 100644 index 0000000000..0581e0132f Binary files /dev/null and b/docs/tutorials/img/cloud-providers-page.png differ diff --git a/mkdocs.yml b/mkdocs.yml index b9c6a034ee..7912c9b4b0 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -34,10 +34,10 @@ theme: icon: material/weather-sunny name: Switch to light mode -plugins: - - search - - git-revision-date-localized: - enable_creation_date: true +# plugins: +# - search +# - git-revision-date-localized: +# enable_creation_date: true edit_uri: "https://github.com/prowler-cloud/prowler/tree/master/docs" # Prowler OSS Repository @@ -72,6 +72,7 @@ nav: - Developer Guide: developer-guide/introduction.md - Prowler Check Kreator: tutorials/prowler-check-kreator.md - AWS: + - Getting Started: tutorials/aws/getting-started-aws.md - Authentication: tutorials/aws/authentication.md - Assume Role: tutorials/aws/role-assumption.md - AWS Security Hub: tutorials/aws/securityhub.md @@ -86,11 +87,13 @@ nav: - Boto3 Configuration: tutorials/aws/boto3-configuration.md - Threat Detection: tutorials/aws/threat-detection.md - Azure: + - Getting Started: tutorials/azure/getting-started-azure.md - Authentication: tutorials/azure/authentication.md - Non default clouds: tutorials/azure/use-non-default-cloud.md - Subscriptions: tutorials/azure/subscriptions.md - Create Prowler Service Principal: tutorials/azure/create-prowler-service-principal.md - Google Cloud: + - Getting Started: tutorials/gcp/getting-started-gcp.md - Authentication: tutorials/gcp/authentication.md - Projects: tutorials/gcp/projects.md - Organization: tutorials/gcp/organization.md