mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-07-24 21:11:53 +00:00
103 lines
3.6 KiB
Python
103 lines
3.6 KiB
Python
from prowler.providers.aws.services.efs.lib.lib import is_public_access_allowed
|
|
|
|
|
|
class Test_EFS_lib:
|
|
def test__is_public_access_allowed__(self):
|
|
statement = {
|
|
"Effect": "Allow",
|
|
"Principal": "*",
|
|
"Action": "elasticfilesystem:ClientMount",
|
|
"Resource": "*",
|
|
}
|
|
assert is_public_access_allowed(statement)
|
|
|
|
def test__is_public_access_allowed__with_principal_dict(self):
|
|
statement = {
|
|
"Effect": "Allow",
|
|
"Principal": {"AWS": "*"},
|
|
"Action": "elasticfilesystem:ClientMount",
|
|
"Resource": "*",
|
|
}
|
|
assert is_public_access_allowed(statement)
|
|
|
|
def test__is_public_access_allowed__with_secure_conditions(self):
|
|
statement = {
|
|
"Effect": "Allow",
|
|
"Principal": "*",
|
|
"Action": "elasticfilesystem:ClientMount",
|
|
"Resource": "*",
|
|
"Condition": {"Bool": {"elasticfilesystem:AccessedViaMountTarget": "true"}},
|
|
}
|
|
assert not is_public_access_allowed(statement)
|
|
|
|
def test__is_public_access_allowed__with_secure_conditions_and_allowed_conditions(
|
|
self,
|
|
):
|
|
statement = {
|
|
"Effect": "Allow",
|
|
"Principal": "*",
|
|
"Action": "elasticfilesystem:ClientMount",
|
|
"Resource": "*",
|
|
"Condition": {
|
|
"Bool": {"elasticfilesystem:AccessedViaMountTarget": "true"},
|
|
"StringEquals": {"aws:SourceOwner": "123456789012"},
|
|
},
|
|
}
|
|
assert not is_public_access_allowed(statement)
|
|
|
|
def test__is_public_access_allowed__with_secure_conditions_and_allowed_conditions_nested(
|
|
self,
|
|
):
|
|
statement = {
|
|
"Effect": "Allow",
|
|
"Principal": "*",
|
|
"Action": "elasticfilesystem:ClientMount",
|
|
"Resource": "*",
|
|
"Condition": {
|
|
"Bool": {"elasticfilesystem:AccessedViaMountTarget": "true"},
|
|
"StringEquals": {"aws:SourceOwner": "123456789012"},
|
|
"StringEqualsIfExists": {"aws:SourceVpce": "vpce-1234567890abcdef0"},
|
|
},
|
|
}
|
|
assert not is_public_access_allowed(statement)
|
|
|
|
def test__is_public_access_allowed__with_secure_conditions_and_allowed_conditions_nested_dict(
|
|
self,
|
|
):
|
|
statement = {
|
|
"Effect": "Allow",
|
|
"Principal": "*",
|
|
"Action": "elasticfilesystem:ClientMount",
|
|
"Resource": "*",
|
|
"Condition": {
|
|
"Bool": {"elasticfilesystem:AccessedViaMountTarget": "true"},
|
|
"StringEquals": {"aws:SourceOwner": "123456789012"},
|
|
"StringEqualsIfExists": {
|
|
"aws:SourceVpce": {
|
|
"vpce-1234567890abcdef0": "vpce-1234567890abcdef0"
|
|
}
|
|
},
|
|
},
|
|
}
|
|
assert not is_public_access_allowed(statement)
|
|
|
|
def test__is_public_access_allowed__with_secure_conditions_and_allowed_conditions_nested_dict_key(
|
|
self,
|
|
):
|
|
statement = {
|
|
"Effect": "Allow",
|
|
"Principal": "*",
|
|
"Action": "elasticfilesystem:ClientMount",
|
|
"Resource": "*",
|
|
"Condition": {
|
|
"Bool": {"elasticfilesystem:AccessedViaMountTarget": "true"},
|
|
"StringEquals": {"aws:SourceOwner": "123456789012"},
|
|
"StringEqualsIfExists": {
|
|
"aws:SourceVpce": {
|
|
"vpce-1234567890abcdef0": "vpce-1234567890abcdef0"
|
|
}
|
|
},
|
|
},
|
|
}
|
|
assert not is_public_access_allowed(statement)
|