|
|
|
@ -60,17 +60,6 @@ class CoreStack(core.Stack):
|
|
|
|
type='TAG_FILTERS_1_0')
|
|
|
|
type='TAG_FILTERS_1_0')
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# Create an S3 bucket for Amazon S3 server access logging
|
|
|
|
|
|
|
|
# See https://docs.aws.amazon.com/AmazonS3/latest/dev/security-best-practices.html
|
|
|
|
|
|
|
|
self._server_access_logs_bucket = s3.Bucket(
|
|
|
|
|
|
|
|
self,
|
|
|
|
|
|
|
|
f'{self._project_name}-{self._feature_name}-Access-Log-Bucket',
|
|
|
|
|
|
|
|
block_public_access=s3.BlockPublicAccess.BLOCK_ALL,
|
|
|
|
|
|
|
|
encryption=s3.BucketEncryption.S3_MANAGED,
|
|
|
|
|
|
|
|
access_control=s3.BucketAccessControl.LOG_DELIVERY_WRITE
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
self._server_access_logs_bucket.grant_read(self._admin_group)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Define exports
|
|
|
|
# Define exports
|
|
|
|
# Export resource group
|
|
|
|
# Export resource group
|
|
|
|
self._resource_group_output = core.CfnOutput(
|
|
|
|
self._resource_group_output = core.CfnOutput(
|
|
|
|
@ -94,10 +83,22 @@ class CoreStack(core.Stack):
|
|
|
|
export_name=f"{self._project_name}:AdminGroup",
|
|
|
|
export_name=f"{self._project_name}:AdminGroup",
|
|
|
|
value=self._admin_group.group_arn)
|
|
|
|
value=self._admin_group.group_arn)
|
|
|
|
|
|
|
|
|
|
|
|
# Export access log bucket name
|
|
|
|
# Create an S3 bucket for Amazon S3 server access logging
|
|
|
|
self._server_access_logs_bucket_output = core.CfnOutput(
|
|
|
|
# See https://docs.aws.amazon.com/AmazonS3/latest/dev/security-best-practices.html
|
|
|
|
self,
|
|
|
|
if self.node.try_get_context('disable_access_log') != 'true':
|
|
|
|
id=f'ServerAccessLogsBucketOutput',
|
|
|
|
self._server_access_logs_bucket = s3.Bucket(
|
|
|
|
description='Name of the S3 bucket for storing server access logs generated by the sample CDK application(s)',
|
|
|
|
self,
|
|
|
|
export_name=f"{self._project_name}:ServerAccessLogsBucket",
|
|
|
|
f'{self._project_name}-{self._feature_name}-Access-Log-Bucket',
|
|
|
|
value=self._server_access_logs_bucket.bucket_name)
|
|
|
|
block_public_access=s3.BlockPublicAccess.BLOCK_ALL,
|
|
|
|
|
|
|
|
encryption=s3.BucketEncryption.S3_MANAGED,
|
|
|
|
|
|
|
|
access_control=s3.BucketAccessControl.LOG_DELIVERY_WRITE
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
self._server_access_logs_bucket.grant_read(self._admin_group)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Export access log bucket name
|
|
|
|
|
|
|
|
self._server_access_logs_bucket_output = core.CfnOutput(
|
|
|
|
|
|
|
|
self,
|
|
|
|
|
|
|
|
id=f'ServerAccessLogsBucketOutput',
|
|
|
|
|
|
|
|
description='Name of the S3 bucket for storing server access logs generated by the sample CDK application(s)',
|
|
|
|
|
|
|
|
export_name=f"{self._project_name}:ServerAccessLogsBucket",
|
|
|
|
|
|
|
|
value=self._server_access_logs_bucket.bucket_name)
|
|
|
|
|