1
1
import unittest
2
+ import json
2
3
from policy_sentry .querying .conditions import (
3
4
get_condition_keys_for_service ,
4
5
get_condition_key_details ,
@@ -12,14 +13,21 @@ class QueryConditionsTestCase(unittest.TestCase):
12
13
def test_get_condition_keys_for_service (self ):
13
14
"""querying.conditions.get_condition_keys_for_service test"""
14
15
expected_results = [
15
- 'aws:ResourceTag/${TagKey}' ,
16
- 'ram:AllowsExternalPrincipals' ,
17
- 'ram:ResourceShareName' ,
18
- 'ram:PermissionArn'
16
+ "aws:RequestTag/${TagKey}" ,
17
+ "aws:ResourceTag/${TagKey}" ,
18
+ "aws:TagKeys" ,
19
+ "ram:AllowsExternalPrincipals" ,
20
+ "ram:PermissionArn" ,
21
+ "ram:Principal" ,
22
+ "ram:RequestedAllowsExternalPrincipals" ,
23
+ "ram:RequestedResourceType" ,
24
+ "ram:ResourceArn" ,
25
+ "ram:ResourceShareName" ,
26
+ "ram:ShareOwnerAccountId"
19
27
]
20
- result = get_condition_keys_for_service ("ram" )
21
- self . assertEqual ( result , expected_results )
22
-
28
+ results = get_condition_keys_for_service ("ram" )
29
+ # print(json.dumps(results, indent=4) )
30
+ self . assertEqual ( results , expected_results )
23
31
24
32
def test_get_condition_keys_available_to_raw_arn (self ):
25
33
expected_results = [
@@ -71,3 +79,52 @@ def test_get_condition_value_type(self):
71
79
self .maxDiff = None
72
80
# print(result)
73
81
self .assertEqual (desired_result , result )
82
+
83
+ def test_gh_225_s3_conditions (self ):
84
+ """querying.actions.get_actions_matching_condition_key"""
85
+ results = get_condition_keys_for_service ("s3" )
86
+ # print(json.dumps(results, indent=4))
87
+ expected_results = [
88
+ "aws:RequestTag/${TagKey}" ,
89
+ "aws:ResourceTag/${TagKey}" ,
90
+ "aws:TagKeys" ,
91
+ "s3:AccessPointNetworkOrigin" ,
92
+ "s3:DataAccessPointAccount" ,
93
+ "s3:DataAccessPointArn" ,
94
+ "s3:ExistingJobOperation" ,
95
+ "s3:ExistingJobPriority" ,
96
+ "s3:ExistingObjectTag/<key>" ,
97
+ "s3:JobSuspendedCause" ,
98
+ "s3:LocationConstraint" ,
99
+ "s3:RequestJobOperation" ,
100
+ "s3:RequestJobPriority" ,
101
+ "s3:RequestObjectTag/<key>" ,
102
+ "s3:RequestObjectTagKeys" ,
103
+ "s3:VersionId" ,
104
+ "s3:authType" ,
105
+ "s3:delimiter" ,
106
+ "s3:locationconstraint" ,
107
+ "s3:max-keys" ,
108
+ "s3:object-lock-legal-hold" ,
109
+ "s3:object-lock-mode" ,
110
+ "s3:object-lock-remaining-retention-days" ,
111
+ "s3:object-lock-retain-until-date" ,
112
+ "s3:prefix" ,
113
+ "s3:signatureAge" ,
114
+ "s3:signatureversion" ,
115
+ "s3:versionid" ,
116
+ "s3:x-amz-acl" ,
117
+ "s3:x-amz-content-sha256" ,
118
+ "s3:x-amz-copy-source" ,
119
+ "s3:x-amz-grant-full-control" ,
120
+ "s3:x-amz-grant-read" ,
121
+ "s3:x-amz-grant-read-acp" ,
122
+ "s3:x-amz-grant-write" ,
123
+ "s3:x-amz-grant-write-acp" ,
124
+ "s3:x-amz-metadata-directive" ,
125
+ "s3:x-amz-server-side-encryption" ,
126
+ "s3:x-amz-server-side-encryption-aws-kms-key-id" ,
127
+ "s3:x-amz-storage-class" ,
128
+ "s3:x-amz-website-redirect-location"
129
+ ]
130
+ self .assertListEqual (results , expected_results )
0 commit comments