mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-07-24 04:51:51 +00:00
fix(sdk): preserve regional IMDSv2 account findings (#11959)
This commit is contained in:
+51
-7
@@ -1,15 +1,64 @@
|
||||
from types import SimpleNamespace
|
||||
from unittest import mock
|
||||
|
||||
from moto import mock_aws
|
||||
|
||||
from tests.providers.aws.utils import (
|
||||
AWS_ACCOUNT_NUMBER,
|
||||
AWS_COMMERCIAL_PARTITION,
|
||||
AWS_REGION_EU_WEST_1,
|
||||
AWS_REGION_US_EAST_1,
|
||||
set_mocked_aws_provider,
|
||||
)
|
||||
|
||||
|
||||
class Test_ec2_instance_account_imdsv2_enabled:
|
||||
@mock_aws
|
||||
def test_ec2_imdsv2_uses_region_in_resource_arn(self):
|
||||
from prowler.providers.aws.services.ec2.ec2_service import (
|
||||
InstanceMetadataDefaults,
|
||||
)
|
||||
|
||||
ec2_client = SimpleNamespace(
|
||||
instance_metadata_defaults=[
|
||||
InstanceMetadataDefaults(
|
||||
http_tokens=None,
|
||||
instances=True,
|
||||
region=AWS_REGION_US_EAST_1,
|
||||
),
|
||||
InstanceMetadataDefaults(
|
||||
http_tokens=None,
|
||||
instances=True,
|
||||
region=AWS_REGION_EU_WEST_1,
|
||||
),
|
||||
],
|
||||
audited_account=AWS_ACCOUNT_NUMBER,
|
||||
audited_partition=AWS_COMMERCIAL_PARTITION,
|
||||
provider=SimpleNamespace(scan_unused_services=False),
|
||||
)
|
||||
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_aws_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.aws.services.ec2.ec2_instance_account_imdsv2_enabled.ec2_instance_account_imdsv2_enabled.ec2_client",
|
||||
new=ec2_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.aws.services.ec2.ec2_instance_account_imdsv2_enabled.ec2_instance_account_imdsv2_enabled import (
|
||||
ec2_instance_account_imdsv2_enabled,
|
||||
)
|
||||
|
||||
result = ec2_instance_account_imdsv2_enabled().execute()
|
||||
|
||||
assert len(result) == 2
|
||||
assert {report.resource_arn for report in result} == {
|
||||
f"arn:aws:ec2:{AWS_REGION_US_EAST_1}:{AWS_ACCOUNT_NUMBER}:account",
|
||||
f"arn:aws:ec2:{AWS_REGION_EU_WEST_1}:{AWS_ACCOUNT_NUMBER}:account",
|
||||
}
|
||||
|
||||
@mock_aws
|
||||
def test_ec2_imdsv2_required(self):
|
||||
from prowler.providers.aws.services.ec2.ec2_service import (
|
||||
@@ -23,10 +72,8 @@ class Test_ec2_instance_account_imdsv2_enabled:
|
||||
)
|
||||
]
|
||||
ec2_client.audited_account = AWS_ACCOUNT_NUMBER
|
||||
ec2_client.audited_partition = AWS_COMMERCIAL_PARTITION
|
||||
ec2_client.region = AWS_REGION_US_EAST_1
|
||||
ec2_client.account_arn_template = (
|
||||
f"arn:aws:ec2:{AWS_REGION_US_EAST_1}:{AWS_ACCOUNT_NUMBER}:account"
|
||||
)
|
||||
|
||||
with (
|
||||
mock.patch(
|
||||
@@ -71,12 +118,9 @@ class Test_ec2_instance_account_imdsv2_enabled:
|
||||
)
|
||||
]
|
||||
ec2_client.audited_account = AWS_ACCOUNT_NUMBER
|
||||
ec2_client.audited_partition = AWS_COMMERCIAL_PARTITION
|
||||
ec2_client.region = AWS_REGION_US_EAST_1
|
||||
|
||||
ec2_client.account_arn_template = (
|
||||
f"arn:aws:ec2:{AWS_REGION_US_EAST_1}:{AWS_ACCOUNT_NUMBER}:account"
|
||||
)
|
||||
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
|
||||
Reference in New Issue
Block a user