Skip to content

Commit 4ea9d22

Browse files
committed
Addressing feedback and removing PutSubscriptionFilter from the governance scp
1 parent 0d34f33 commit 4ea9d22

5 files changed

Lines changed: 11 additions & 11 deletions

File tree

service_control_policies/README.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,9 @@ This statement is included in the [data_perimeter_governance_scp](data_perimeter
129129

130130
[Some AWS resources](https://docs.aws.amazon.com/ram/latest/userguide/shareable.html#shareable-r53.) allow cross-account sharing via AWS RAM instead of resource-based policies. By default, AWS RAM shares allow sharing outside of an Organizations organization. You can explicitly [restrict sharing of resources outside of AWS Organizations](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-create.html) and then limit AWS RAM actions based on this configuration.
131131

132-
### "Sid":"PreventExternalResourceShare" and "Sid": "PreventExternalResourceShareKMS"
132+
### "Sid":"PreventExternalResourceShare"
133133

134-
These statements are included in the [data_perimeter_governance_scp](data_perimeter_governance_scp.json) and restrict resource sharing by capabilities that are embedded into services.
134+
This statement is included in the [data_perimeter_governance_scp](data_perimeter_governance_scp.json) and restricts resource sharing by capabilities that are embedded into services.
135135

136136
Some AWS services use neither resource-based policies nor AWS RAM.
137137

@@ -149,7 +149,6 @@ Example data access patterns:
149149
* [AWS Directory Service directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_directory_sharing.html): You can share a directory with other accounts with the `ShareDirectory` API.
150150
* [AWS Direct Connect gateway](https://docs.aws.amazon.com/directconnect/latest/UserGuide/multi-account-associate-vgw.html): You can associate a Direct Connect gateway with a virtual private gateway that is owned by another AWS account with the `CreateDirectConnectGatewayAssociationProposal` API.
151151
* [Amazon Detective graph](https://docs.aws.amazon.com/detective/latest/userguide/accounts.html): A Detective administrator account can invite other accounts to join a behavior graph with the `CreateMembers` API.
152-
* [Amazon CloudWatch Logs subscription filters](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SubscriptionFilters.html): You can send CloudWatch Logs to cross-account destinations with the `PutSubscriptionFilter` API.
153152
* [AWS Glue Data Catalog](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-catalog-perms-TBAC.html) databases: You can grant data catalog permissions to another account by using the AWS Lake Formation tag-based access control method with the `GrantPermissions` and `BatchGrantPermissions` APIs.
154153
* [Amazon AppStream 2.0 image](https://docs.aws.amazon.com/appstream2/latest/developerguide/administer-images.html#share-image-with-another-account): You can share an Amazon AppStream 2.0 image that you own with other accounts with the `UpdateImagePermissions` API.
155154
* [Amazon Macie member accounts](https://docs.aws.amazon.com/macie/latest/user/accounts-mgmt-invitations-administer.html): You can add member accounts to your Macie administrator account with the `CreateInvitations` API.
@@ -166,7 +165,11 @@ Example data access patterns:
166165
* [AWS Cloud9 shared environment](https://docs.aws.amazon.com/cloud9/latest/user-guide/share-environment.html): You can share AWS Cloud9 development environment with users from other accounts with the `CreateEnvironmentMembership` API.
167166
* [Amazon Connect dataset](https://docs.aws.amazon.com/connect/latest/APIReference/API_BatchAssociateAnalyticsDataSet.html#connect-BatchAssociateAnalyticsDataSet-request-DataSetIds): You can associate a list of Amazon Connect instance analytics datasets to a target account using `BatchAssociateAnalyticsDataSet` API.
168167
* [Amazon Redshift Serverless snapshot](https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_PutResourcePolicy.html): You can share snapshots across AWS accounts using `PutResourcePolicy` API.
169-
* [AWS KMS grants](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html): The `CreateGrant` API allows you to add a grant for another account to use your KMS key.
168+
169+
### "Sid": “RestrictKMSGrantsCreationToAWSServices”
170+
This statement is included in the [data_perimeter_governance_scp](data_perimeter_governance_scp.json) and restricts creation of [AWS KMS grants](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) to administrators and AWS services only.
171+
172+
The `CreateGrant` API allows you to add a grant for another account to use your KMS key. Use this statement to help ensure that only trusted identities can view information about your keys.
170173

171174
### "Sid":"ProtectActionsNotSupportedByPrimaryDPControls"
172175

service_control_policies/data_perimeter_governance_scp.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
"ds:ShareDirectory",
3838
"directconnect:CreateDirectConnectGatewayAssociationProposal",
3939
"detective:CreateMembers",
40-
"logs:PutSubscriptionFilter",
4140
"lakeformation:GrantPermissions",
4241
"lakeformation:BatchGrantPermissions",
4342
"appstream:UpdateImagePermissions",
@@ -66,7 +65,7 @@
6665
}
6766
},
6867
{
69-
"Sid": "PreventExternalResourceShareKMS",
68+
"Sid": "RestrictKMSGrantsCreationToAWSServices",
7069
"Effect": "Deny",
7170
"Action": "kms:CreateGrant",
7271
"Resource": "*",

service_control_policies/service_specific_controls/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ This statement is included in the [restrict_untrusted_endpoints_scp](restrict_un
100100

101101
### "Sid": "PreventCreationOfServicePresignedURL"
102102

103-
This statement is included in the [restrict_presignedURL_scp](restrict_presignedURL_scp.json) and prevents users from creating Amazon S3 presigned URLs that are presigned by a service principal.
103+
This statement is included in the [restrict_presignedURL_scp](restrict_presignedURL_scp.json) and prevents users from making API requests that return Amazon S3 presigned URLs that are presigned by a service principal.
104104

105105
### "Sid": "PreventResourcePolicyConfigurations"
106106

service_specific_guidance/config-specific-guidance.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Perimeter type applicability: identity perimeter applied on resource; resource p
2828

2929
PutConfigurationAggregator allows you to add another account to your aggregator.
3030

31-
See ["Sid":"PreventExternalResourceShare"](https://github.com/aws-samples/data-perimeter-policy-examples/tree/main/service_control_policies#sidpreventexternalresourceshare-sidpreventexternalresourcesharekms) for a list of resources that can be granted cross-account access.
31+
See ["Sid":"PreventExternalResourceShare"](https://github.com/aws-samples/data-perimeter-policy-examples/tree/main/service_control_policies#sidpreventexternalresourceshare) for a list of resources that can be granted cross-account access.
3232

3333
If you want to restrict access so that only trusted identities can take actions against your resources, consider implementing these additional controls:
3434

@@ -94,7 +94,7 @@ Perimeter type applicability: identity perimeter applied on resource; resource p
9494

9595
PutAggregationAuthorization allows you to authorize another account to collect data from your account
9696

97-
See ["Sid":"PreventExternalResourceShare"](https://github.com/aws-samples/data-perimeter-policy-examples/tree/main/service_control_policies#sidpreventexternalresourceshare-sidpreventexternalresourcesharekms) for a list of resources that can be granted cross-account access.
97+
See ["Sid":"PreventExternalResourceShare"](https://github.com/aws-samples/data-perimeter-policy-examples/tree/main/service_control_policies#sidpreventexternalresourceshare) for a list of resources that can be granted cross-account access.
9898

9999
If you want to restrict access so that only trusted identities can take actions against your resources, consider implementing these additional controls:
100100

service_specific_guidance/kms-specific-guidance.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ Perimeter type applicability: identity perimeter applied on resource; resource p
2828

2929
CreateGrant allows you to create a grant for another account.
3030

31-
See ["Sid":"PreventExternalResourceShareKMS"](https://github.com/aws-samples/data-perimeter-policy-examples/tree/main/service_control_policies#sidpreventexternalresourceshare-sidpreventexternalresourcesharekms) for a list of resources that can be granted cross-account access.
32-
3331
If you want to restrict access so that only trusted identities can view information about your resources, consider implementing these additional controls:
3432

3533
* **Preventative control example 1:** Consider implementing `aws:PrincipalOrgID` in an RCP to restrict service API calls so that your resources can only be accessed by trusted identities. See [identity_perimeter_rcp.json](https://github.com/aws-samples/data-perimeter-policy-examples/blob/main/resource_control_policies/identity_perimeter_rcp.json) for an example policy.

0 commit comments

Comments
 (0)