Cloud Infra Architecture (AWS)/AWS SAP-C02

[Organization] Root <-> Member

seongduck 2023. 12. 4. 15:39

1) Root IAM Policy 작성 (Member 리소스 권한)

- Member의 권한을 가져오기 위해 Root에서 IAM 정책이 필요하다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:Start*",
                "ec2:Stop*",
                "ec2:DescribeInstanceStatus"
            ],
            "Resource": "*"
        }
    ]
}
  • 첫 번째 문장
    • arn:aws:log이 작업이 모든 CloudWatch Logs 리소스에 대해 허용을 한다.
    • loggroup 생성, logStream 생성, putlogevents
  • 두 번째 문장
    • 모든 ec2 리소스에 대해 허용한다.
    • 인스턴스 시작 및 정지, 상태 설명을 허용한다.

 

생성완료.
 

2) Root IAM Policy 생성 (cloudwatch 로그 수집 용)

- Lambda를 실행 시 cloudwatch로 로그 수집을 위한 IAM Policy를 생성해야 한다. 위와 마찬가지로 하나 더 만들어 준다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "logs:CreateLogGroup",
            "Resource": "arn:aws:logs:ap-northeast-2:111111111(rootid):*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:ap-northeast-2:11111111(rootid):log-group:/aws/lambda/access_another_user_ec2_test:*"
            ]
        }
    ]
}
  • 첫 번째 문장
    • 지정된 작업이 allow 되어야 한다.
    • cloudwatch logs에서 로그 그룹을 생성하는 작업을 허용한다.
    • 이 작업이 ap-northeast리전에서 11111111계정의 모든 로그 그룹에 대해 허용된다.
  • 두 번째 문장
    • 지정된 작업이 allow 되어야 한다.
    • log stream 생성 및 로그 이벤트를 기록하는 작업을 허용한다.
    • ap-northeast 리전에서 1111111계정의 aws/lambda/access_another_user_ec2_test 그룹 내의 모든 로그 스트림에 대해 허용한다.

 

3) Root IAM Policy 생성 (Member의 IAM 컨트롤)

{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource": [
            "arn:aws:iam::*:role/ec2ff_for_root"
        ]
    }
}
  • sts:AssumeRole 작업이 허용된 작업으로, 이 부분을 통해 역할을 얻을 수 있다.
  • 이 작업이 허용되는 대상은 특정 IAM 역할이다. ec2ff_for_root라는 이름의 역할에 대한 권한을 부여하고 있다. 이 역할은 모든 AWS 계정("*")에서 사용이 가능하다.
  • Root가 sts:AssumeRole 작업을 사용하여 'ec2ff_for_root'라는 특정 IAM 역할에 대한 권한을 가질 수 있도록 허용하는 것

 
 

4) IAM Role 생성

- 위의 만들어 놓은 IAM Policy 3개와 AWSOrganizationsFullAccess 정책을 추가하여 하나의 IAM Role를 생성한다. 

 
이 IAM Role를 가지고 Root는 특정 Member를 컨트롤 할 수 있게 됐다.