17장. Multicloud Object Gateway의 보안 토큰 서비스를 사용하여 다른 사용자의 역할 가정
MCG(Multicloud Object Gateway)는 Amazon Web Services에서 제공하는 것과 유사한 STS(Security Token Service)를 지원합니다.
다른 사용자가 특정 사용자의 역할을 가정할 수 있도록 하려면 사용자에게 역할 구성을 할당해야 합니다. MCG CLI 툴을 사용하여 역할 구성을 관리할 수 있습니다.
다음 예제에서는 두 개의 MCG 사용자(assumer@mcg.test
및 assumer2@mcg.test
)가 특정 사용자의 역할을 가정할 수 있는 역할 구성을 보여줍니다.
'{"role_name": "AllowTwoAssumers", "assume_role_policy": {"version": "2012-10-17", "statement": [ {"action": ["sts:AssumeRole"], "effect": "allow", "principal": ["assumer@mcg.test", "assumer2@mcg.test"]}]}}'
MCG CLI 툴을 사용하여 역할 구성을 할당합니다.
mcg sts assign-role --email <assumed user's username> --role_config '{"role_name": "AllowTwoAssumers", "assume_role_policy": {"version": "2012-10-17", "statement": [ {"action": ["sts:AssumeRole"], "effect": "allow", "principal": ["assumer@mcg.test", "assumer2@mcg.test"]}]}}'
후속 단계에 필요한 역할을 가정하기 전에 다음 정보를 수집합니다.
- assumer의 액세스 키 ID 및 시크릿 액세스 키(역할을 가정하는 사용자)
명령을 사용하여 검색할 수 있는 MCG STS 끝점입니다.
$ oc -n openshift-storage get route
- 가정된 사용자의 액세스 키 ID입니다.
-
역할 구성에 있는
role_name
값의 값입니다. - 역할 세션에 대해 선택한 이름
- 구성 역할이 준비되면 적절한 사용자에게 할당합니다(이전 단계에서 설명하는 데이터로 입력) -
AWS_ACCESS_KEY_ID=<aws-access-key-id> AWS_SECRET_ACCESS_KEY=<aws-secret-access-key1> aws --endpoint-url <mcg-sts-endpoint> sts assume-role --role-arn arn:aws:sts::<assumed-user-access-key-id>:role/<role-name> --role-session-name <role-session-name>
클러스터 구성에 따라 --no-verify-ssl
을 추가해야 할 수 있습니다.
결과 출력에는 다른 사용자의 역할을 가정하는 동안 작업을 실행하는 데 사용할 수 있는 액세스 키 ID, 시크릿 액세스 키 및 세션 토큰이 포함됩니다.
다음 예에 표시된 대로 assume 역할 단계 후에 생성된 인증 정보를 사용할 수 있습니다.
AWS_ACCESS_KEY_ID=<aws-access-key-id> AWS_SECRET_ACCESS_KEY=<aws-secret-access-key1> AWS_SESSION_TOKEN=<session token> aws --endpoint-url <mcg-s3-endpoint> s3 ls