AWS IAM Identity Center
AWS IAM Identity Center (AWS SSO) 연동
이 문서는 Identity Center(AWS SSO)를 사용한 working Single Sign-On 구성을 안내합니다. SAML(Dex) 방식으로 연동하며, argocd-cm과 argocd-rbac-cm 구성을 다룹니다.
출처: 문서
본문
Identity Center (AWS SSO)
참고: 이 방법을 사용하고 있나요? 기여해 주세요! 이 IdP를 사용하고 있다면 이 문서에 기여하는 것을 고려해 주세요.
Identity Center(AWS SSO)를 사용한 working Single Sign-On 구성은 다음 방법으로 달성되었습니다:
- SAML (with Dex)
SAML (with Dex)
- Identity Center에서 새 SAML 애플리케이션을 만들고 인증서를 다운로드하세요.
- Identity Center에서 애플리케이션을 만든 후
Assign Users를 클릭하고, 이 애플리케이션에 접근 권한을 부여할 사용자 또는 사용자 그룹을 선택하세요. argocd-cmConfigMap의data.url필드에 Argo CD URL을 복사하세요.
data:
url: https://argocd.example.com
- 속성 매핑(Attribute mappings)을 구성하세요.
그룹 속성 매핑은 공식적으로 지원되지 않습니다!: 그룹 속성 매핑은 AWS 문서에서 공식적으로 지원되지 않지만, 현재 이 우회 방법은 작동합니다.
argocd-cm구성에 사용할 CA 인증서를 다운로드하세요.caData필드를 사용한다면-----BEGIN CERTIFICATE-----와-----END CERTIFICATE-----스탠자를 포함한 전체 인증서를 base64로 인코딩해야 합니다(예:base64 my_cert.pem).ca필드를 사용하고 CA 인증서를 별도의 시크릿으로 저장한다면,argocd-dex-server디플로이먼트의dex컨테이너에 시크릿을 마운트해야 합니다.argocd-cm을 편집하고data.dex.config섹션을 구성하세요:
dex.config: |
logger:
level: debug
format: json
connectors:
- type: saml
id: aws
name: "AWS IAM Identity Center"
config:
# You need value of Identity Center APP SAML (IAM Identity Center sign-in URL)
ssoURL: https://portal.sso.yourregion.amazonaws.com/saml/assertion/id
# You need `caData` _OR_ `ca`, but not both.
caData: <CA cert (IAM Identity Center Certificate of Identity Center APP SAML) passed through base64 encoding>
# Path to mount the secret to the dex container
entityIssuer: https://external.path.to.argocd.io/api/dex/callback
redirectURI: https://external.path.to.argocd.io/api/dex/callback
usernameAttr: email
emailAttr: email
groupsAttr: groups
Identity Center 그룹을 Argo CD 역할에 연결
Argo CD는 Group Attribute Statements 정규식과 일치하는 Identity Center 그룹의 사용자 멤버십을 인식합니다.
위 예시에서 argocd-* 정규식을 사용하여 Argo CD가 argocd-admins라는 그룹을 인식하게 합니다.
argocd-rbac-cm ConfigMap을 수정해 ArgoCD-administrators Identity Center 그룹을 내장 Argo CD admin 역할에 연결하세요:
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-rbac-cm
data:
policy.csv: |
g, <Identity Center Group ID>, role:admin
scopes: '[groups, email]'