Microsoft Entra ID 연결

Microsoft Entra ID를 자격 증명 공급자로 연결해 사용자와 그룹 배정을 Kiro에 자동으로 동기화하는 방법을 안내합니다.

Microsoft Entra ID를 Kiro에 연결하는 데는 약 30~45분이 걸립니다. Entra 애플리케이션을 만들고, AWS 콘솔에서 Kiro 프로필을 구성한 뒤, SCIM 프로비저닝을 설정하면 사용자와 그룹 배정이 자동으로 동기화됩니다.

시작하기 전에 다음을 준비해 두세요.

AWS 접근 권한은 Kiro 프로필을 관리하는 관리자에게만 필요합니다. 최종 사용자는 AWS 계정이 없어도 됩니다.

이 통합은 두 시스템을 연결합니다.

SCIM 프로비저닝이 두 시스템을 연결합니다. Kiro에서 발급한 SCIM 엔드포인트와 토큰을 Entra에 입력하고, Entra의 Application (client) ID와 Directory (tenant) ID를 Kiro에 입력합니다.

1단계: Kiro용 애플리케이션 만들기

Microsoft Entra 관리 센터에 로그인한 뒤 Enterprise applications -> New application에서 새 애플리케이션을 만듭니다. Microsoft Entra App Gallery에서 "Create your own application"을 선택합니다.

예를 들어 Kiro-Entra처럼 알아보기 쉬운 이름을 지정합니다. 그런 다음 "What are you looking to do with your application?" 항목에서 "Integrate any other application you don't find in the gallery (Non-gallery)" 옵션을 선택하고 "Create"를 눌러 애플리케이션을 만듭니다.

2단계: Kiro 애플리케이션 구성

사용자 자격 증명이 Kiro 접근에 필요한 올바른 인가 정보를 제시할 수 있도록 애플리케이션을 구성합니다.

API 엔드포인트 노출

Kiro는 애플리케이션의 API 엔드포인트를 통해 사용자 자격 증명을 동기화합니다. "Kiro-Entra" 애플리케이션(App registrations -> All applications -> Kiro-Entra)에서 "Expose an API"를 선택하고, "Application ID URI" 필드 옆의 "Add"를 눌러 기본값을 저장합니다. 이어서 자격 증명이 Kiro에 제시해야 하는 권한을 정의하는 스코프 두 개를 추가합니다.

팁: 두 스코프 모두 Kiro의 모든 기능에 필요합니다. codewhisperer:completions는 인라인 코드 제안을, codewhisperer:conversations는 채팅을 활성화합니다.

먼저 사용자에게 인라인 코드 자동 완성 접근 권한을 주는 첫 번째 스코프를 추가합니다.

다음으로 사용자에게 채팅 접근 권한을 주는 두 번째 스코프를 추가합니다.

스코프 추가를 마치면 "Expose an API" 페이지에 두 스코프가 모두 표시됩니다.

리디렉션 URI 추가

리디렉션 URI는 인증이 끝난 뒤 Entra가 사용자를 보내고 토큰을 전달하는 위치입니다. Kiro 애플리케이션에서 "Authentication (Preview)"를 선택한 다음 "Add Redirect URI"를 누르고 "Mobile and desktop application" 플랫폼을 선택합니다.

리디렉션 URI 두 개 — "kiro://kiro.oauth/callback""http://localhost/oauth/callback" — 를 추가하고, 각각 입력 후 Configure를 선택합니다.

Access Token 버전 설정

마지막으로 Kiro가 요청할 액세스 토큰 형식을 설정합니다. Entra ID는 기본적으로 v1 형식의 액세스 토큰을 발급하지만, Kiro는 v2 형식 토큰이 필요합니다. App Registration에서 왼쪽 탐색 메뉴의 Manifest를 선택합니다. api 섹션 아래의 requestedAccessTokenVersion 필드를 찾아 값을 2로 설정하고 Save를 선택합니다.

팁: 3단계에서 필요한 값들 — 진행하기 전에 애플리케이션 Overview 페이지에서 Application (client) IDDirectory (tenant) ID를 기록해 두세요. Kiro 프로필을 만들 때 사용합니다.

이 값들은 4단계에서 생성할 SCIM 엔드포인트, 액세스 토큰과 함께 Entra와 Kiro를 연결하는 핵심 자격 증명입니다.

출처사용처
Application (client) IDEntra → App registrations → OverviewKiro 프로필 생성
Directory (tenant) IDEntra → App registrations → OverviewKiro 프로필 생성
SCIM EndpointKiro → Settings → Identity ManagementEntra 프로비저닝 구성
Access TokenKiro → Settings → Identity Management → Access TokensEntra 프로비저닝 구성

이제 Kiro 프로필을 설정할 준비가 되었습니다.

3단계: Kiro 프로필 설정

팁: Kiro 프로필을 만들려면 특정 AWS IAM 권한이 필요합니다. 프로필 생성과 구독 관리에 필요한 권한은 IAM 권한을 참고하세요.

Kiro 프로필을 설정하고 Microsoft Entra ID IdP에 연결하는 과정은 두 단계로 이루어집니다.

Kiro 프로필 생성

AWS Management Console에서 Kiro를 검색해 Kiro 서비스를 엽니다. Onboard your team to Kiro를 선택합니다. Select your identity management source 대화 상자에서 기존 외부 자격 증명 공급자를 연결하기 위해 External Identity Provider를 선택한 뒤 Next를 누릅니다.

Welcome to Kiro! 대화 상자에서 드롭다운으로 자격 증명 공급자를 선택합니다. 현재 지원되는 공급자는 Microsoft Entra ID와 Okta입니다. Microsoft Entra ID를 선택하면 대화 상자에 Application IDTenant ID 필드가 나타나며, 여기에 Entra 애플리케이션의 값을 입력합니다.

해당 값을 찾으려면 Microsoft Entra에서 App registrations -> All applications -> Kiro-Entra로 이동합니다. "Overview" 탭이 열립니다.

먼저 Application (client) ID 필드 값을 복사해 만들고 있는 Kiro 프로필의 Application ID 필드에 붙여넣습니다. Directory (tenant) ID는 Kiro 프로필의 Tenant ID 필드에 복사한 뒤 Enable을 선택해 프로필을 생성합니다.

외부 자격 증명 공급자의 데이터를 암호화하기 위해 고객 관리형 KMS 키를 구성했다면, Kiro가 SCIM으로 프로비저닝된 사용자와 그룹에 접근할 수 있도록 키 정책에 다음 문(statement)을 추가해야 합니다.

{
    "Sid": "AllowKiroToUseKey",
    "Effect": "Allow",
    "Principal": {
        "Service": "q.amazonaws.com"
    },
    "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:DescribeKey"
    ],
    "Resource": "*"
},
{
    "Sid": "AllowIdentityStoreToUseKey",
    "Effect": "Allow",
    "Principal": {
        "Service": "identitystore.amazonaws.com"
    },
    "Action": [
        "kms:Decrypt",
        "kms:Encrypt",
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:ReEncryptTo",
        "kms:DescribeKey",
        "kms:ReEncryptFrom"
    ],
    "Resource": "*"
}

도메인 추가 및 검증

주의: Microsoft Entra ID를 Kiro에 연결하려면 DNS 공급자에 TXT 레코드를 추가해 회사 도메인 소유권을 검증해야 합니다. 이렇게 하면 승인되지 않은 제3자가 여러분의 도메인을 자신의 Kiro 프로필에 연결하거나 사용자 로그인을 가로채는 일을 방지할 수 있습니다.

"Settings" 버튼을 선택하고 Identity management -> Domains 섹션에서 "Add domain"을 눌러 회사 도메인을 추가합니다.

"Add"를 선택하면 도메인이 추가되고 검증 토큰이 표시됩니다. 검증 토큰을 복사하세요. 추가한 도메인은 Domains 목록에 "Pending" 상태로 나타납니다.

Amazon Route53 같은 DNS 공급자에서 도메인을 추가한 뒤 24시간 이내에 그 검증 토큰으로 TXT 레코드를 생성합니다. 레코드 이름에는 kiro-app-1 같은 접두사를 사용합니다(예: kiro-app-1.yourdomain.com).

구성이 유효하면 몇 분 뒤 상태가 "Verified"로 바뀝니다.

주의: 도메인 검증에는 공개적으로 확인 가능한 도메인이 필요합니다. 도메인 검증은 TXT 레코드에 대해 공개 DNS 조회를 수행하므로, 검증하는 도메인은 공개적으로 확인 가능해야 합니다. 사설 또는 내부 TLD(예: .local, .internal, 커스텀 사설 TLD)는 지원되지 않습니다. 이러한 도메인은 공개 DNS 조회에서 NXDOMAIN을 반환하며, 도메인이 무기한 "Pending" 상태로 남습니다.

사설 또는 내부 도메인에 대한 우회 방법

조직이 인프라에 사설 또는 내부 도메인을 사용한다면 다음 방법 중 하나를 사용하세요.

팁: 개인정보 관련 참고 사항 — Kiro는 검증 상태와 무관하게 하나의 도메인을 둘 이상의 프로필에 연결할 수 없습니다. 즉, 제3자가 자신의 프로필에 여러분의 도메인을 추가하려다 거부되는 것을 보고, 그 도메인이 이미 다른 Kiro 프로필에 연결되어 있다고 추론할 수 있습니다. 이것으로 접근 권한을 얻지는 못하지만, 해당 도메인이 Kiro에 온보딩되어 있다는 사실은 드러납니다.
팁: 도메인 구성 참고 사항 — Kiro 프로필은 최대 10개의 도메인을 지원합니다. 여기서 구성하는 도메인은 오직 Kiro 프로필을 식별하기 위한 것입니다. 사용자가 Kiro 로그인 페이지에서 이메일을 입력하면, 백엔드는 그 이메일의 도메인 부분을 보고 연결된 Kiro 프로필과 해당 Microsoft Entra ID 애플리케이션을 조회합니다. 이메일 주소 자체가 Entra 디렉터리에 존재할 필요는 없으며, 사용자가 최종적으로 Entra에서 인증하는 자격 증명과 일치할 필요도 없습니다. 이 이메일은 프로필 조회에만 사용됩니다.

4단계: Kiro 애플리케이션 프로비저닝

이 단계에서는 Kiro 애플리케이션을 프로비저닝하고, Kiro가 Entra ID 자격 증명 저장소에서 자격 증명을 동기화할 수 있는지 확인합니다.

프로비저닝 설정

Kiro 콘솔에서Settings → Identity Management로 이동합니다. Access Tokens 섹션에서 Generate Token을 선택해 토큰 값을 복사한 뒤, 같은 페이지에서 SCIM Endpoint URL을 복사합니다.

주의: SCIM 토큰 보안 — 액세스 토큰은 한 번만 표시됩니다. 이후에는 복구할 수 없으므로 즉시 복사하세요(언제든 새로 생성할 수는 있습니다). Kiro 프로필은 최대 2개의 액세스 토큰을 지원하며, 한도에 도달하면 하나를 취소한 뒤 새로 생성해야 합니다. 토큰은 장기 유효 자격 증명이므로 비밀번호처럼 취급하세요. 토큰은 자동으로 순환되지 않으므로 조직 정책에 따라 순환하세요. 유출되었다면 즉시 Settings → Identity Management → Access Tokens에서 취소하고 다시 생성하세요.

Entra 관리 센터에서Enterprise Apps → Kiro-Entra → Provisioning으로 이동합니다. 사이드바에서 Provisioning 링크를 선택한 뒤 Provisioning ModeAutomatic으로 설정합니다.

Test Connection을 선택해 검증합니다. 성공하면 Save를 선택합니다. Provisioning Status 토글이 있다면 On으로 설정합니다.

저장한 뒤에는 Entra ID 애플리케이션 페이지를 새로 고침하세요. 새로 고치기 전에는 속성 매핑 링크가 나타나지 않습니다.

속성 매핑 추가

사이드바 링크가 활성화되면 "Attribute mapping (Preview)" 섹션을 엽니다. Provision Groups와 Provision Users가 모두 활성화되어 있어야 합니다.

"Provision Microsoft Entra ID Users" 링크를 선택해 "Attribute Mapping" 페이지를 엽니다. "externalId" 속성의 "Edit" 버튼을 선택해 "Edit Attribute" 페이지를 열고, Source attribute 값을 "objectId"로 설정한 뒤 구성을 저장합니다. "objectId"는 사용자나 그룹을 고유하게 식별하며 변경되지 않으므로, Kiro가 사용자/그룹을 식별하고 동기화하기 쉽습니다.

지원되지 않는 속성 제거

Entra는 Kiro의 SCIM 엔드포인트가 지원하지 않는 여러 속성을 자동으로 채웁니다. 그대로 두면 프로비저닝이 실패합니다. 속성 매핑 표에서 다음 항목을 삭제하세요.

Enterprise User Extension 속성(삭제):

전화번호 속성(삭제):

각 속성 행을 선택하고 Delete를 선택합니다. 완료되면 매핑을 저장합니다.

팁: 필요한 최소 속성 — 프로비저닝 오류가 계속되면 Entra → Enterprise Apps → Kiro-Entra → Provisioning → Provisioning logs에서 속성 수준의 실패를 확인하세요. 최후의 방법으로, Kiro가 요구하는 매핑은 userName, externalId, active 세 가지뿐이며, 나머지 속성 매핑은 모두 삭제해 문제를 좁힐 수 있습니다.

5단계: 사용자 및 그룹 추가

주의: 직접 사용자 배정을 피하세요. Kiro에 사용자를 추가할 때는 애플리케이션에 배정된 그룹에 사용자를 넣는 방식을 사용하고, 개별 사용자를 Entra 애플리케이션에 직접 배정하지 마세요. 구독을 구성한 뒤에는 Kiro 콘솔의 Subscriptions 탭을 확인해 의도하지 않은 사용자가 좌석을 받지 않았는지 검토하세요.

Entra 애플리케이션에서 Kiro로 동기화할 사용자와 그룹을 선택합니다. 선택된 사용자와 그룹은 Kiro 프로필에서 Kiro 구독과 연결할 수 있게 됩니다.

Entra 관리 센터에서 Kiro 애플리케이션 → Users and groups로 이동해 + Add user/group을 선택합니다. Kiro 접근이 필요한 그룹(또는 개별 사용자)을 배정합니다.

자동으로 프로비저닝된 사용자와 그룹을 보려면 Entra ID 애플리케이션의 "Users and groups" 섹션으로 이동합니다. 사용자와 그룹이 저절로 나타나기까지는 시간이 걸릴 수 있습니다. 프로비저닝 진행 상황을 추적하려면 Entra 문서를 참고하세요.

수동으로 프로비저닝하려면 "Provisioning" 페이지로 이동해 "Quick Actions" 섹션 아래의 "Provision On Demand"를 선택합니다.

그룹을 프로비저닝하는 경우 그룹의 모든 사용자를 선택했는지 확인하세요. 그룹과 그 안의 사용자를 성공적으로 구성하면 성공 화면이 표시됩니다.

동기화하려는 모든 사용자와 그룹에 대해 위 단계를 반복합니다.

팁: 프로비저닝이 첫 시도에서 실패하기도 하지만, 재시도하면 대개 성공합니다.

이것으로 Microsoft Entra ID의 모든 구성 단계를 마쳤습니다.

팁: 사용자는 언제 나타나나요? — 배정 후 사용자가 Kiro 콘솔에 나타나기까지 최대 6시간 40분이 걸릴 수 있습니다. Entra가 약 40분 이내에 사용자 데이터를 푸시하고, 이후 6시간마다 실행되는 Kiro 프로비저닝 주기가 구독을 생성합니다.

Kiro 콘솔에 사용자가 나타나면 구독 가이드를 따라 활성화하세요.

보안 고려 사항

세션 관리

리디렉션 URI 보안

프로필 삭제 경고

프로비저닝 후 Kiro 프로필을 삭제하고 동일한 Entra 애플리케이션으로 새 프로필을 만들면 그룹 멤버십이 동기화되지 않습니다. 애플리케이션을 처음부터 다시 프로비저닝해야 합니다.

승인되지 않은 접근 방지

사용자 제거 및 디프로비저닝 동작

그룹 멤버십 동기화 동작

문제 해결

누락된 단계어떻게 나타나는가해결 방법비고
Manifest에서 액세스 토큰 버전을 2로 설정하지 않음로그인 후 API 호출이 인가 오류로 실패App registrations에서 Manifest를 편집해 api.requestedAccessTokenVersion을 2로 설정Entra는 기본적으로 v1 액세스 토큰을 사용하지만 Kiro는 v2가 필요
Expose an API에서 스코프를 설정하지 않음로그인 화면에 오류가 표시됨Expose an API에서 codewhisperer:completionscodewhisperer:conversations 스코프를 추가두 스코프 모두 필요
프로비저닝에서 속성 매핑을 설정하지 않음로그인 후 사용자에게 구독이 없음(API 호출 실패)Attribute Mapping에서 externalId source 속성을 objectId로 설정. 모든 구독을 삭제하고 다시 프로비저닝objectId는 안정적인 고유 식별자
리디렉션 URI를 설정하지 않음로그인 시도 시 오류 화면이 표시됨Authentication 설정에서 필요한 localhost 리디렉션 URI를 추가전체 포트 목록은 설정 가이드 참고
Provision on Demand를 실행하지 않음사용자/그룹이 Kiro 콘솔에 나타나지 않음Provisioning으로 이동해 "Provision on Demand"를 선택자동 동기화는 최대 40분 소요
프로비저닝 후 프로필을 삭제하고 동일한 앱으로 새 프로필을 생성그룹 멤버십이 동기화되지 않음새 SCIM 토큰으로 애플리케이션을 처음부터 다시 프로비저닝위 "프로필 삭제 경고" 참고
도메인 검증에 사설 또는 내부 TLD를 사용도메인이 "Pending" 상태로 남고 검증되지 않음공개 확인 가능한 도메인 또는 서브도메인을 대신 검증하거나, 사용자가 로그인에 사용하는 공개 이메일 도메인을 등록검증은 공개 DNS 조회를 수행하며 사설 TLD는 NXDOMAIN을 반환

관련 자료