Skip to content

Commit 01ad12f

Browse files
committed
Replacing config recorder custom role with service-linked role.
1 parent 07ee016 commit 01ad12f

File tree

2 files changed

+4
-64
lines changed

2 files changed

+4
-64
lines changed

aws_sra_examples/solutions/config/config_management_account/lambda/src/app.py

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
from crhelper import CfnResource
2121

2222
if TYPE_CHECKING:
23-
from mypy_boto3_iam.client import IAMClient
2423
from aws_lambda_typing.context import Context
2524
from aws_lambda_typing.events import CloudFormationCustomResourceEvent
2625
from mypy_boto3_config.client import ConfigServiceClient
@@ -190,29 +189,6 @@ def process_event(event: CloudFormationCustomResourceEvent, context: Context) ->
190189
return f"{params['AUDIT_ACCOUNT_ID']}-{params['AGGREGATOR_NAME']}"
191190

192191

193-
def create_service_linked_role(
194-
service_linked_role_name: str,
195-
service_name: str,
196-
description: str = "",
197-
iam_client: IAMClient = None,
198-
) -> None:
199-
"""Create the service linked role, if it does not exist.
200-
201-
Args:
202-
service_linked_role_name: Service Linked Role Name
203-
service_name: AWS Service Name
204-
description: Description
205-
iam_client: IAMClient
206-
"""
207-
if not iam_client:
208-
iam_client = boto3.client("iam")
209-
try:
210-
response = iam_client.get_role(RoleName=service_linked_role_name)
211-
api_call_details = {"API_Call": "iam:GetRole", "API_Response": response}
212-
LOGGER.info(api_call_details)
213-
except iam_client.exceptions.NoSuchEntityException:
214-
iam_client.create_service_linked_role(AWSServiceName=service_name, Description=description)
215-
216192
def lambda_handler(event: CloudFormationCustomResourceEvent, context: Context) -> None:
217193
"""Lambda Handler.
218194
@@ -225,11 +201,6 @@ def lambda_handler(event: CloudFormationCustomResourceEvent, context: Context) -
225201
226202
"""
227203
try:
228-
create_service_linked_role(
229-
"AWSServiceRoleForConfig",
230-
"config.amazonaws.com",
231-
"A service-linked role required for AWS Config"
232-
)
233204
helper(event, context)
234205
except Exception:
235206
LOGGER.exception("Unexpected!")

aws_sra_examples/solutions/config/config_management_account/templates/sra-config-management-account-role.yaml

Lines changed: 4 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,13 @@ Metadata:
1717
Parameters:
1818
- pSRASolutionTagKey
1919
- pSRASolutionName
20-
- pManagedResourcePrefix
2120
ParameterLabels:
22-
pManagedResourcePrefix:
23-
default: Managed Resource Prefix
2421
pSRASolutionName:
2522
default: SRA Solution Name
2623
pSRASolutionTagKey:
2724
default: SRA Solution Tag Key
2825

2926
Parameters:
30-
pManagedResourcePrefix:
31-
AllowedValues: [aws-controltower]
32-
Default: aws-controltower
33-
Description: Prefix for the managed resources
34-
Type: String
3527
pSRASolutionName:
3628
AllowedValues: [sra-config-management-account]
3729
Default: sra-config-management-account
@@ -44,31 +36,8 @@ Parameters:
4436
Type: String
4537

4638
Resources:
47-
rConfigRecorderRole:
48-
Metadata:
49-
cfn_nag:
50-
rules_to_suppress:
51-
- id: W28
52-
reason: Explicit name provided
53-
Type: AWS::IAM::Role
39+
rConfigServiceLinkedRole:
40+
Type: AWS::IAM::ServiceLinkedRole
5441
Properties:
55-
RoleName: !Sub ${pManagedResourcePrefix}-ConfigRecorderRole
56-
Description: Role for AWS Config Recorder
57-
AssumeRolePolicyDocument:
58-
Version: 2012-10-17
59-
Statement:
60-
- Effect: Allow
61-
Action: sts:AssumeRole
62-
Principal:
63-
Service:
64-
- config.amazonaws.com
65-
ManagedPolicyArns:
66-
- !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AWS_ConfigRole
67-
Tags:
68-
- Key: !Ref pSRASolutionTagKey
69-
Value: !Ref pSRASolutionName
70-
71-
Outputs:
72-
oConfigRecorderRoleArn:
73-
Description: Config Recorder Role ARN
74-
Value: !GetAtt rConfigRecorderRole.Arn
42+
AWSServiceName: config.amazonaws.com
43+
Description: A service-linked role for the ConfigRecorder.

0 commit comments

Comments
 (0)