역할 관리자 접근 관리
역할 관리자 접근 관리
역할 관리자에 대한 접근을 두 수준에서 통제합니다. IAM 권한은 계정에서 누가 역할 관리자를 활성화할 수 있고 누가 그것이 제공하는 역할을 사용할 수 있는지 결정합니다. 조직에서는 서비스 제어 정책(SCP)이 멤버 계정이 할 수 있는 일을 결정합니다.
출처: 문서
본문
역할 관리자에 대한 권한
역할 관리자를 활성화하거나 비활성화하려면 iam:PutAccountProperties 권한이 필요합니다. AWS 관리형 정책 IAMFullAccess에는 이것이 포함되어 있습니다.
역할 관리자를 사용하려면 사용자에게 역할 관리자가 사용자를 대신해 수행하는 작업에 대한 IAM 권한이 필요합니다. 역할 관리자는 AcquireRole API를 통해 역할을 제공하며, 이 API는 각 기본 IAM 작업을 사용자의 권한에 대해 평가합니다.
- 템플릿과 일치하는 역할이 계정에 이미 있으면
AcquireRole이 그 역할을 반환합니다. 이 경우iam:GetRole권한이 필요합니다. - 일치하는 역할이 없으면
AcquireRole이 템플릿에서 만들어냅니다. 이 경우iam:CreateRole권한과 템플릿이 정의하는 작업에 대한 권한이 필요합니다: 템플릿이 인라인 정책을 추가하면iam:PutRolePolicy, 템플릿이 관리형 정책을 연결하면iam:AttachRolePolicy.
전체 IAM 접근이 있는 사용자는 역할 관리자에 필요한 모든 권한을 갖습니다. 특정 템플릿이 요구하는 정확한 작업을 보려면 GetRoleTemplateVersion으로 템플릿을 검색하고 해당 정책을 검토하세요.
역할 관리자가 역할을 만들면 AWS CloudTrail이 생성을 단일 AcquireRole 이벤트로 기록합니다. 이 이벤트는 누가 작업을 호출했는지, 사용된 역할 템플릿과 파라미터 값, 생성된 역할을 보여줍니다.
다음 예제는 역할 관리자가 Admin 역할을 수임한 사용자를 대신해 PowerUserRoleTemplate 역할 템플릿을 사용해 PowerUserRole 역할을 만들기 위해 AcquireRole 작업을 호출했음을 보여줍니다.
{
"eventVersion": "1.11",
"userIdentity": {
"type": "AssumedRole",
"principalId": "AROA123EXAMPLE:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"arn": "arn:aws:sts::123456789012:assumed-role/Admin/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"accountId": "123456789012",
"accessKeyId": "ASIAWZYMLEXAMPLE",
"sessionContext": {
"sessionIssuer": {
"type": "Role",
"principalId": "AROA123EXAMPLE",
"arn": "arn:aws:iam::123456789012:role/Admin",
"accountId": "123456789012",
"userName": "Admin"
},
"attributes": {
"creationDate": "2026-08-11T18:18:50Z",
"mfaAuthenticated": "false"
}
},
"onBehalfOf": {
"userId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"identityStoreArn": "arn:aws:identitystore::111122223333:identitystore/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
},
"eventTime": "2026-08-11T18:23:00Z",
"eventSource": "iam.amazonaws.com",
"eventName": "AcquireRole",
"awsRegion": "us-east-1",
"sourceIPAddress": "192.0.2.0",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36",
"requestParameters": {
"templateArn": "arn:aws:iam::aws:role-template/iam.amazonaws.com/PowerUserRoleTemplate:1",
"templateMinorVersion": 0,
"replacementValues": {
"AWSServiceName": {
"values": [
"iam.amazonaws.com"
]
}
}
},
"responseElements": {
"role": {
"path": "/",
"roleName": "PowerUserRole",
"roleId": "AROA987EXAMPLE",
"arn": "arn:aws:iam::123456789012:role/PowerUserRole",
"createDate": "2026-08-11T18:23:00Z",
"assumeRolePolicyDocument": "%7B%22Version%22:%222012-10-17%22,%22Statement%22:%5B%7B%22Effect%22:%22Allow%22,%22Principal%22:%7B%22Service%22:%22iam.amazonaws.com%22%7D,%22Action%22:%22sts:AssumeRole%22%7D%5D%7D"
}
},
"requestID": "fde3dac0-73ac-491c-876b-EXAMPLE89c57",
"eventID": "c93332cf-1429-4aee-bcaa-EXAMPLE3790d",
"readOnly": false,
"eventType": "AwsApiCall",
"managementEvent": true,
"recipientAccountId": "123456789012",
"eventCategory": "Management",
"tlsDetails": {
"tlsVersion": "TLSv1.3",
"cipherSuite": "TLS_AES_128_GCM_SHA256",
"clientProvidedHostHeader": "iam.amazonaws.com"
},
"sessionCredentialFromConsole": "true"
}
조직에서 역할 관리자 통제
AWS Organizations 서비스 제어 정책(SCP)으로 조직 전체에서 역할 관리자를 통제할 수 있습니다. 다음 예제는 역할 관리자 활성화 차단, 역할 생성 차단, 또는 템플릿 기반 역할 생성만 차단하는 방법을 보여줍니다.
이 예제는 거부 목록 전략을 사용합니다. 즉, 조직 개체에 연결된 FullAWSAccess 또는 다른 허용 정책도 필요합니다. 주체에 자격 증명 기반 정책으로 권한을 부여해야 합니다.
멤버 계정이 콘솔이나 API를 통해 역할 관리자를 활성화하지 못하게 하려면 iam:PutAccountProperties 권한을 거부하세요. Organizations를 통해 새 계정을 직접 만들 때 이 정책을 권장합니다.
{
"Sid": "DenyRoleManagerEnablement",
"Effect": "Deny",
"Action": "iam:PutAccountProperties",
"Resource": "*",
"Condition": {
"ForAnyValue:StringEquals": {
"iam:AccountPropertyNamespaces": "RoleManager"
}
}
}
역할 관리자 사용 차단
역할 관리자 사용을 차단하려면 템플릿에서 역할을 만드는 IAM 작업에 있는 iam:RoleTemplateARN 컨텍스트 키를 사용합니다. 다음 정책은 iam:RoleTemplateARN 컨텍스트 키에 null이 아닌 값이 있는 모든 IAM 작업을 거부합니다. 이 정책은 모든 역할 생성을 막지 않으며, 역할 관리자와 SDK를 통한 템플릿 기반 역할 생성만 차단합니다.
{
"Sid": "DenyTemplatedRoleCreation",
"Effect": "Deny",
"Action": "iam:*",
"Resource": "*",
"Condition": {
"Null": {
"iam:RoleTemplateARN": false
}
}
}
역할 관리자를 통해서만 역할 생성 허용
역할 관리를 통해서만 역할 생성이 이루어지도록 다음 정책으로 역할 관리자 외의 역할 생성을 차단합니다. 이 정책은 SDK를 통한 템플릿 기반 역할 생성은 여전히 허용합니다.
{
"Sid": "DenyNonTemplatedRoleCreation",
"Effect": "Deny",
"Action": [
"iam:CreateRole",
"iam:AttachRolePolicy",
"iam:PutRolePolicy",
"iam:PutRolePermissionsBoundary",
"iam:TagRole"
],
"Resource": "*",
"Condition": {
"Null": {
"iam:RoleTemplateARN": true
}
}
}