Cloud Infra Architecture (AWS)/AWS SAP-C02

[Organization] Root <-> Member - CloudFormation Tempelete

seongduck 2023. 12. 4. 15:39

1) CloudFormation Templete 생성 (Root)

- 조직 Member들에게 모두 조종당할 IAM을 (전작에 만들어 놨던) 배포하기 위해 CloudFormation을 생성한다.
- 즉, IAM 역할을 생성하고 이 역할에 EC2 인스턴스에 대한 전체 액세스를 부여하는 정책을 추가한다.

AWSTemplateFormatVersion: '2010-09-09'
Description: CloudFormation template to create an IAM Role with EC2 full access.

Resources:
  EC2FullAccessRole:
    Type: AWS::IAM::Role
    Properties:
      RoleName: ec2ff_for_root(곧 member에서 생성될 IAM Role 이름)
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              AWS: arn:aws:iam::11111111(rootid):role/ou_user_access_role(root IAM Role 이름)
            Action: sts:AssumeRole
      Policies:
        - PolicyName: EC2FullAccessPolicy
          PolicyDocument:
            Version: '2012-10-17'
            Statement:
              - Effect: Allow
                Action: 'ec2:*'
                Resource: '*'

Outputs:
  RoleARN:
    Description: "The ARN of the created IAM Role"
    Value: !GetAtt EC2FullAccessRole.Arn
  • EC2FullAccessRole 타입으로 정의된 IAM을 생성한다.
    • 이 역할은 'ec2ff_for_root'라는 이름을 가지며 'sts:AssumeRole'작업을 사용하여 'ou_user_access_role'이라는 다른 IAM 역할에 대한 신뢰 관계를 설정한다.
    • 'EC2FullAccessPolicy'라는 이름의 정책을 추가하고 이 정책은 모든 ec2:*에 대한 전체 액세스를 허용한다.

 
다음 코드(create-ec2ff-role.txt)에서 create-ec2ff-role.yml 파일로 변경한다.
이 템플릿을 사용하면 CloudFormation을 통해 정의된 member의 IAM role, IAM policy, 신뢰관계가 자동으로 생성이 되어 Root가 모든 서비스에 대한 권한을 가질 수 있게 된다.