# 상황
- google idp를 통해 만들어진 keycloak user들이 aws cli를 사용하고 싶음
- google idp 및 aws client 설정, aws iam role 연동은 끝난 상태
# saml2aws 란?
saml 자격증명을 통해 aws 임시 자격 증명을 가져올 수 있는 도구
https://github.com/Versent/saml2aws
# saml2aws 사용법
# saml2aws 설치 (MAC)
$ brew install saml2aws
# keycloak user 자격증명
$ KEYCLOAK_AWS_URL=https://${keycloak 도메인}/realms/${aws realm}/protocol/saml/clients/amazon-aws
$ KEYCLOAK_USERNAME=honglab97@gmail.com
$ saml2aws configure
? Please choose a provider: KeyCloak
? URL $KEYCLOAK_AWS_URL
? Username $KEYCLOAK_USERNAME
? Password *********
? Confirm *********
account {
URL: $KEYCLOAK_AWS_URL
Username: $KEYCLOAK_USERNAME
Provider: KeyCloak
MFA: Auto
SkipVerify: false
AmazonWebservicesURN: urn:amazon:webservices
SessionDuration: 3600
Profile: saml
RoleARN:
Region:
}
Configuration saved for IDP account: default
KEYCLOAK_AWS_URL
에는 keycloak aws client 콘솔에서 확인할 수 있는
Target IDP initiated SSO URL 을 넣어주면 된다.
그리고 Password는 의미가 없다. 아무거나 넣어줘도 된다.
(google idp를 사용하는 상황에서만 의미가 없는건지 뭔지는 잘 모르겠다)
아무튼 이렇게 configure
를 마치고 login
을 해보면..
$ saml2aws login
Error authenticating to IdP.: unable to locate saml response field
configure할 때 만든 비밀번호를 치든 Google 비밀번호를 치든 실패가 난다.
이는 "키클락 유저 비밀번호" 가 없기 때문이다.
# 무슨 소리?
나는 keycloak에 google idp로부터 유저가 프로비저닝되면 끝이라고 생각했다.
google idp user에 이미 유저정보와 비밀번호가 있지 않은가?
-> 비밀번호가 같이 넘어오진 않는 것 같다.
즉 구글유저는 구글패스워드와 별개로 키클락 패스워드를 만들어야 saml2aws login
이 가능하다.
# keycloak user에게 비밀번호 세팅할 수 있게 해주기
먼저 자신의 비밀번호를 세팅할 권한을 줘야 한다.
-> account
client의 manage-account
Role을 부여해야 한다.
Realm setting > User registration > Default roles > assign roles
Filter by clients > manage-account 선택 및 assign
사람들한테 가이드할 땐,
https://${keycloak 도메인}/realms/${aws realm 이름}/account
도메인으로 접속해서 직접 비밀번호 세팅하라고 하면 된다.
해당 account 콘솔로 진입해서 google 로그인을 하게 되면,
패스워드를 세팅할 수 있다.
세팅 후, saml2aws login
시 세팅한 비밀번호로 로그인하면 할당된 롤들을 잘 확인할 수 있다.
끝!!
'공부 > Open Source' 카테고리의 다른 글
[DevOps] powerpipe 써보기 (1) | 2024.04.14 |
---|---|
[k8s/ingress-nginx/aws] Chart: Add a TargetGroupBinding (2) | 2024.04.04 |
[ArgoCD/helm] Github OAuth 붙이기 (0) | 2023.11.05 |
[Jenkins/helm] Github OAuth 붙이기 (0) | 2023.11.05 |
[Airflow/helm] Github OAuth 붙이기 (0) | 2023.11.05 |
댓글