mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-07-23 12:31:54 +00:00
fix(ecs): ensure unique finding id in ECS checks (#7059)
This commit is contained in:
committed by
César Arroba
parent
5d78b9e439
commit
a62ae8af51
@@ -115,6 +115,7 @@ class ECS(AWSService):
|
||||
service_arn = service_desc["serviceArn"]
|
||||
service_obj = Service(
|
||||
name=sub(":.*", "", service_arn.split("/")[-1]),
|
||||
id=f"{sub(':.*', '', service_arn.split('/')[-2])}/{sub(':.*', '', service_arn.split('/')[-1])}",
|
||||
arn=service_arn,
|
||||
region=cluster.region,
|
||||
assign_public_ip=(
|
||||
@@ -212,6 +213,7 @@ class TaskDefinition(BaseModel):
|
||||
|
||||
class Service(BaseModel):
|
||||
name: str
|
||||
id: str
|
||||
arn: str
|
||||
region: str
|
||||
launch_type: str = ""
|
||||
|
||||
+60
-40
@@ -128,12 +128,15 @@ class Test_ecs_service_fargate_latest_platform_version:
|
||||
|
||||
mocked_aws_provider = set_mocked_aws_provider([AWS_REGION_US_EAST_1])
|
||||
|
||||
with patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=mocked_aws_provider,
|
||||
), patch(
|
||||
"prowler.providers.aws.services.ecs.ecs_service_fargate_latest_platform_version.ecs_service_fargate_latest_platform_version.ecs_client",
|
||||
new=ECS(mocked_aws_provider),
|
||||
with (
|
||||
patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=mocked_aws_provider,
|
||||
),
|
||||
patch(
|
||||
"prowler.providers.aws.services.ecs.ecs_service_fargate_latest_platform_version.ecs_service_fargate_latest_platform_version.ecs_client",
|
||||
new=ECS(mocked_aws_provider),
|
||||
),
|
||||
):
|
||||
from prowler.providers.aws.services.ecs.ecs_service_fargate_latest_platform_version.ecs_service_fargate_latest_platform_version import (
|
||||
ecs_service_fargate_latest_platform_version,
|
||||
@@ -162,12 +165,15 @@ class Test_ecs_service_fargate_latest_platform_version:
|
||||
|
||||
mocked_aws_provider = set_mocked_aws_provider([AWS_REGION_US_EAST_1])
|
||||
|
||||
with patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=mocked_aws_provider,
|
||||
), patch(
|
||||
"prowler.providers.aws.services.ecs.ecs_service_fargate_latest_platform_version.ecs_service_fargate_latest_platform_version.ecs_client",
|
||||
new=ECS(mocked_aws_provider),
|
||||
with (
|
||||
patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=mocked_aws_provider,
|
||||
),
|
||||
patch(
|
||||
"prowler.providers.aws.services.ecs.ecs_service_fargate_latest_platform_version.ecs_service_fargate_latest_platform_version.ecs_client",
|
||||
new=ECS(mocked_aws_provider),
|
||||
),
|
||||
):
|
||||
from prowler.providers.aws.services.ecs.ecs_service_fargate_latest_platform_version.ecs_service_fargate_latest_platform_version import (
|
||||
ecs_service_fargate_latest_platform_version,
|
||||
@@ -199,12 +205,15 @@ class Test_ecs_service_fargate_latest_platform_version:
|
||||
|
||||
mocked_ecs_client = ECS(mocked_aws_provider)
|
||||
|
||||
with patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=mocked_aws_provider,
|
||||
), patch(
|
||||
"prowler.providers.aws.services.ecs.ecs_service_fargate_latest_platform_version.ecs_service_fargate_latest_platform_version.ecs_client",
|
||||
new=mocked_ecs_client,
|
||||
with (
|
||||
patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=mocked_aws_provider,
|
||||
),
|
||||
patch(
|
||||
"prowler.providers.aws.services.ecs.ecs_service_fargate_latest_platform_version.ecs_service_fargate_latest_platform_version.ecs_client",
|
||||
new=mocked_ecs_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.aws.services.ecs.ecs_service_fargate_latest_platform_version.ecs_service_fargate_latest_platform_version import (
|
||||
ecs_service_fargate_latest_platform_version,
|
||||
@@ -217,7 +226,7 @@ class Test_ecs_service_fargate_latest_platform_version:
|
||||
assert result[0].status_extended == (
|
||||
"ECS Service test-latest-linux-service is using latest FARGATE Linux version 1.4.0."
|
||||
)
|
||||
assert result[0].resource_id == "test-latest-linux-service"
|
||||
assert result[0].resource_id == "test-cluster/test-latest-linux-service"
|
||||
assert (
|
||||
result[0].resource_arn
|
||||
== f"arn:aws:ecs:{AWS_REGION_US_EAST_1}:{AWS_ACCOUNT_NUMBER}:service/test-cluster/test-latest-linux-service"
|
||||
@@ -249,12 +258,15 @@ class Test_ecs_service_fargate_latest_platform_version:
|
||||
|
||||
mocked_aws_provider = set_mocked_aws_provider([AWS_REGION_US_EAST_1])
|
||||
|
||||
with patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=mocked_aws_provider,
|
||||
), patch(
|
||||
"prowler.providers.aws.services.ecs.ecs_service_fargate_latest_platform_version.ecs_service_fargate_latest_platform_version.ecs_client",
|
||||
new=ECS(mocked_aws_provider),
|
||||
with (
|
||||
patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=mocked_aws_provider,
|
||||
),
|
||||
patch(
|
||||
"prowler.providers.aws.services.ecs.ecs_service_fargate_latest_platform_version.ecs_service_fargate_latest_platform_version.ecs_client",
|
||||
new=ECS(mocked_aws_provider),
|
||||
),
|
||||
):
|
||||
from prowler.providers.aws.services.ecs.ecs_service_fargate_latest_platform_version.ecs_service_fargate_latest_platform_version import (
|
||||
ecs_service_fargate_latest_platform_version,
|
||||
@@ -267,7 +279,7 @@ class Test_ecs_service_fargate_latest_platform_version:
|
||||
assert result[0].status_extended == (
|
||||
"ECS Service test-latest-windows-service is using latest FARGATE Windows version 1.0.0."
|
||||
)
|
||||
assert result[0].resource_id == "test-latest-windows-service"
|
||||
assert result[0].resource_id == "test-cluster/test-latest-windows-service"
|
||||
assert (
|
||||
result[0].resource_arn
|
||||
== f"arn:aws:ecs:{AWS_REGION_US_EAST_1}:{AWS_ACCOUNT_NUMBER}:service/test-cluster/test-latest-windows-service"
|
||||
@@ -295,12 +307,15 @@ class Test_ecs_service_fargate_latest_platform_version:
|
||||
|
||||
mocked_aws_provider = set_mocked_aws_provider([AWS_REGION_US_EAST_1])
|
||||
|
||||
with patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=mocked_aws_provider,
|
||||
), patch(
|
||||
"prowler.providers.aws.services.ecs.ecs_service_fargate_latest_platform_version.ecs_service_fargate_latest_platform_version.ecs_client",
|
||||
new=ECS(mocked_aws_provider),
|
||||
with (
|
||||
patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=mocked_aws_provider,
|
||||
),
|
||||
patch(
|
||||
"prowler.providers.aws.services.ecs.ecs_service_fargate_latest_platform_version.ecs_service_fargate_latest_platform_version.ecs_client",
|
||||
new=ECS(mocked_aws_provider),
|
||||
),
|
||||
):
|
||||
from prowler.providers.aws.services.ecs.ecs_service_fargate_latest_platform_version.ecs_service_fargate_latest_platform_version import (
|
||||
ecs_service_fargate_latest_platform_version,
|
||||
@@ -313,7 +328,7 @@ class Test_ecs_service_fargate_latest_platform_version:
|
||||
assert result[0].status_extended == (
|
||||
"ECS Service test-no-latest-linux-service is not using latest FARGATE Linux version 1.4.0, currently using 1.2.0."
|
||||
)
|
||||
assert result[0].resource_id == "test-no-latest-linux-service"
|
||||
assert result[0].resource_id == "test-cluster/test-no-latest-linux-service"
|
||||
assert (
|
||||
result[0].resource_arn
|
||||
== f"arn:aws:ecs:{AWS_REGION_US_EAST_1}:{AWS_ACCOUNT_NUMBER}:service/test-cluster/test-no-latest-linux-service"
|
||||
@@ -341,12 +356,15 @@ class Test_ecs_service_fargate_latest_platform_version:
|
||||
|
||||
mocked_aws_provider = set_mocked_aws_provider([AWS_REGION_US_EAST_1])
|
||||
|
||||
with patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=mocked_aws_provider,
|
||||
), patch(
|
||||
"prowler.providers.aws.services.ecs.ecs_service_fargate_latest_platform_version.ecs_service_fargate_latest_platform_version.ecs_client",
|
||||
new=ECS(mocked_aws_provider),
|
||||
with (
|
||||
patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=mocked_aws_provider,
|
||||
),
|
||||
patch(
|
||||
"prowler.providers.aws.services.ecs.ecs_service_fargate_latest_platform_version.ecs_service_fargate_latest_platform_version.ecs_client",
|
||||
new=ECS(mocked_aws_provider),
|
||||
),
|
||||
):
|
||||
from prowler.providers.aws.services.ecs.ecs_service_fargate_latest_platform_version.ecs_service_fargate_latest_platform_version import (
|
||||
ecs_service_fargate_latest_platform_version,
|
||||
@@ -359,7 +377,9 @@ class Test_ecs_service_fargate_latest_platform_version:
|
||||
assert result[0].status_extended == (
|
||||
"ECS Service test-no-latest-windows-service is not using latest FARGATE Windows version 1.0.0, currently using 0.9.0."
|
||||
)
|
||||
assert result[0].resource_id == "test-no-latest-windows-service"
|
||||
assert (
|
||||
result[0].resource_id == "test-cluster/test-no-latest-windows-service"
|
||||
)
|
||||
assert (
|
||||
result[0].resource_arn
|
||||
== f"arn:aws:ecs:{AWS_REGION_US_EAST_1}:{AWS_ACCOUNT_NUMBER}:service/test-cluster/test-no-latest-windows-service"
|
||||
|
||||
+2
-2
@@ -155,7 +155,7 @@ class Test_ecs_service_no_assign_public_ip:
|
||||
result[0].status_extended
|
||||
== "ECS Service service-with-no-public-ip does not have automatic public IP assignment."
|
||||
)
|
||||
assert result[0].resource_id == "service-with-no-public-ip"
|
||||
assert result[0].resource_id == "sample-cluster/service-with-no-public-ip"
|
||||
assert result[0].resource_arn == service_arn
|
||||
assert result[0].resource_tags == []
|
||||
assert result[0].region == AWS_REGION_US_EAST_1
|
||||
@@ -221,7 +221,7 @@ class Test_ecs_service_no_assign_public_ip:
|
||||
result[0].status_extended
|
||||
== "ECS Service service-with-public-ip has automatic public IP assignment."
|
||||
)
|
||||
assert result[0].resource_id == "service-with-public-ip"
|
||||
assert result[0].resource_id == "sample-cluster/service-with-public-ip"
|
||||
assert result[0].resource_arn == service_arn
|
||||
assert result[0].resource_tags == []
|
||||
assert result[0].region == AWS_REGION_US_EAST_1
|
||||
|
||||
Reference in New Issue
Block a user