반응형

 

AWS Assume Role 원리

 

  역할 전환(Assume Role) 조건

 

역할 전환(AssumeRole)은 두 가지 조건이 동시에 충족해야 합니다.

1. 사용자의 정책(User Policy) : 내가 특정 역할로 전환할 수 있는 권한이 있어야 함

2. 역할 신뢰 정책(Trust Policy) : 그 역할이 나를 신뢰하고 있어야 함

 

 

# 사용자 정책 (User Policy) - 739275444311 계정에 속한 cg-bilbo 사용자
{
    "UserName": "cg-bilbo",
    "PolicyName": "cg-bilbo-standard-user-assumer",
    "PolicyDocument": {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Action": "sts:AssumeRole",
                "Effect": "Allow",
                "Resource": "arn:aws:iam::940877411605:role/cg-lambda-invoker*",
                "Sid": ""
            }
        ]
    }
}


# 역할 신뢰 정책 (Trust Policy) - 940877411605 계정에 속한 cg-lambda-invoker 역할
{
    "Role": {
        "Path": "/",
        "RoleName": "cg-lambda-invoker",
        "Arn": "arn:aws:iam::940877411605:role/cg-lambda-invoker",
        "CreateDate": "2025-04-11T00:42:13Z",
        "AssumeRolePolicyDocument": {
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Sid": "",
                    "Effect": "Allow",
                    "Principal": {
                        "AWS": "arn:aws:iam::739275444311:user/cg-bilbo"
                    },
                    "Action": "sts:AssumeRole"
                }
            ]
        }
    }
}

 

 

 

 

 

  예외 사항

역할 전환에 딱 한가지 예외가 있습니다.

아래와 같이 역할과 사용자가 같은 Account에 속해 있는 경우 Trust Policy가 명시적으로 사용자를 신뢰하면

사용자는 sts:AssumeRole 권한이 없어도 역할 전환을 할 수 있습니다.

 

[역할&사용자가 - 같은 계정( 739275444311 )에 속한 경우]

역할 arn : arn:aws:iam::739275444311:role/cg-lambda-invoker

사용자 arn : arn:aws:iam::739275444311:user/cg-bilbo

 

  예시 - 아래의 조건의 경우에 사용자 정책(User Policy)에 Assume Role 권한이 없어도 역할 전환은 성립됨 (O)

### cg-lambda-invoker 역할은 cg-bilbo 사용자를 명시적(Principal)으로 신뢰하고 있음
{
	"RoleName": "cg-lambda-invoker"
		"Version": "2012-10-17",
		"Statement": [
			{
				"Sid": "",
				"Effect": "Allow",
				"Principal": {
					"AWS": "arn:aws:iam::739275444311:user/cg-bilbo"
				},
				"Action": "sts:AssumeRole"
			}
		]
	}
}

### cg-bilbo 사용자에게 적용된 User Policy에는 sts:AssumeRole에 대한 권한이 없음

{
    "UserName": "cg-bilbo",
    "PolicyName": "cg-bilbo-standard-user-assumer",
    "PolicyDocument": {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Action": [
                    "iam:Get*",
                    "iam:List*",
                    "iam:SimulateCustomPolicy",
                    "iam:SimulatePrincipalPolicy"
                ],
                "Effect": "Allow",
                "Resource": "*",
                "Sid": ""
            }
        ]
    }
}

 

 

 

 

 

내용이 유용하셨다면 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!

 

caul334@gmail.com

반응형

+ Recent posts