

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# IAM Identity Center의 CloudTrail 사용 사례
<a name="sso-cloudtrail-use-cases"></a>

IAM Identity Center에서 내보내는 CloudTrail 이벤트는 다양한 사용 사례에 유용할 수 있습니다. 조직은 이러한 이벤트 로그를 사용하여 AWS 환경 내 사용자 액세스 및 활동을 모니터링하고 감사할 수 있습니다. 이는 규정 준수 사용 사례에 도움이 될 수 있습니다. 누가 언제 어떤 리소스에 액세스하는지에 대한 세부 정보가 로그에 캡처되기 때문입니다. CloudTrail 데이터를 인시던트 조사에 사용하여 팀이 사용자 작업을 분석하고 의심스러운 동작을 추적할 수도 있습니다. 또한 이벤트 기록은 시간 경과에 따른 사용자 권한 및 구성의 변경에 대한 가시성을 제공하여 문제 해결 노력을 지원할 수 있습니다.

다음 섹션에서는 감사, 인시던트 조사, 문제 해결과 같은 워크플로에 정보를 제공하는 기본적인 사용 사례에 대해 설명합니다.

## IAM Identity Center 사용자 시작 CloudTrail 이벤트에서 사용자 식별
<a name="user-session-iam-identity-center"></a>

IAM Identity Center는 IAM Identity Center에 로그인하거나 MFA 디바이스 관리를 포함하여 AWS 액세스 포털을 AWS CLI사용하는 등 CloudTrail 이벤트 뒤에 있는 IAM Identity Center 사용자를 식별할 수 있는 두 개의 CloudTrail 필드를 내보냅니다.
+ `userId` - IAM Identity Center 인스턴스의 자격 증명 스토어에 있는 고유하고 변경 불가능한 사용자 식별자.
+ `identityStoreArn` - 사용자가 포함된 자격 증명 스토어의 Amazon 리소스 이름(ARN).

`userID` 및 `identityStoreArn` 필드는 다음 예제 CloudTrail 이벤트 로그와 같이 [https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html) 요소 내에 중첩된 `onBehalfOf` 요소에 표시됩니다. 이 이벤트 로그는 `userIdentity` 유형이 "`IdentityCenterUser`"인 이벤트에 대해 이 두 필드를 표시합니다. `userIdentity` 유형이 ‘`Unknown`’인 인증된 IAM Identity Center 사용자의 이벤트에서도 이러한 필드를 찾을 수 있습니다. 워크플로는 두 유형 값을 모두 수락해야 합니다.

```
"userIdentity":{
  "type":"IdentityCenterUser",
  "accountId":"111122223333",
  "onBehalfOf": {
    "userId": "544894e8-80c1-707f-60e3-3ba6510dfac1",
    "identityStoreArn": "arn:aws:identitystore::111122223333:identitystore/d-1234567890"
    },
    "credentialId" : "90e292de-5eb8-446e-9602-90f7c45044f7"
  }
```

**작은 정보**  
IAM Identity Center CloudTrail 이벤트 뒤에 있는 사용자를 식별하는 데에 `userId` 및 `identityStoreArn`을 사용하는 것이 좋습니다. `userIdentity` 요소 아래의 `userName` 및 `principalId` 필드는 더 이상 사용할 수 없습니다. 감사 또는 인시던트 대응과 같은 워크플로가 `username`에 대한 액세스 권한에 의존하는 경우 다음과 같은 두 가지 옵션이 있습니다.  
[로그인 CloudTrail 이벤트의 사용자 이름](username-sign-in-cloudtrail-events.md)에 설명된 대로 IAM Identity Center 디렉터리에서 사용자 이름을 검색합니다.
Sign-in의 `additionalEventData` 요소에서 IAM Identity Center가 내보내는 `UserName`을 가져옵니다. 이 옵션은 IAM Identity Center 디렉터리에 액세스할 필요가 없습니다. 자세한 내용은 [로그인 CloudTrail 이벤트의 사용자 이름](username-sign-in-cloudtrail-events.md) 단원을 참조하십시오.

`username` 필드를 포함하여 사용자의 세부 정보를 검색하려면 사용자 ID와 자격 증명 스토어 ID를 파라미터로 하여 자격 증명 스토어를 쿼리합니다. [https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_DescribeUser.html](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_DescribeUser.html) API 요청 또는 CLI를 통해 이 작업을 수행할 수 있습니다. 다음은 예시 CLI 명령입니다. IAM Identity Center 인스턴스가 CLI 기본 리전에 있는 경우 `region` 파라미터를 생략할 수 있습니다.

```
aws identitystore describe-user \
--identity-store-id  d-1234567890 \
--user-id  544894e8-80c1-707f-60e3-3ba6510dfac1 \
--region your-region-id
```

이전 예제에서 CLI 명령을 위한 자격 증명 스토어 ID 값을 확인하려면 `identityStoreArn` 값에서 자격 증명 스토어 ID를 추출하면 됩니다. 예제 ARN `arn:aws:identitystore::111122223333:identitystore/d-1234567890`에서 자격 증명 스토어 ID는 `d-1234567890`입니다. 또는 IAM Identity Center 콘솔의 **설정** 섹션에서 **자격 증명 스토어** 탭으로 이동하여 자격 증명 스토어 ID를 찾을 수도 있습니다.

IAM Identity Center 디렉터리에서 사용자 조회를 자동화한 경우 사용자 조회 빈도를 추정하고 [자격 증명 스토어 API에서 IAM Identity Center 스로틀 제한](limits.md#ssodirectorylimits)을 고려하는 것이 좋습니다. 검색된 사용자 속성을 캐싱하면 스로틀 제한 이내로 유지하는 데 도움이 될 수 있습니다.

## 동일한 사용자 세션 내에서 사용자 이벤트 상호 연관
<a name="correlating-users-same-session"></a>

로그인 이벤트에서 내보낸 [`AuthWorkflowID`](understanding-sign-in-events.md) 필드를 사용하면 IAM Identity Center 사용자 세션을 시작하기 전에 로그인 시퀀스와 연결된 모든 CloudTrail 이벤트를 추적할 수 있습니다.

 AWS 액세스 포털 내의 사용자 작업의 경우 `credentialId` 값은 작업을 요청하는 데 사용되는 IAM Identity Center 사용자 세션의 ID로 설정됩니다. 이 값을 사용하여 AWS 액세스 포털의 동일한 인증된 IAM Identity Center 사용자 세션 내에서 시작된 CloudTrail 이벤트를 식별할 수 있습니다.

**참고**  
 AWS 액세스 포털 사용과 같은 후속 이벤트에 로그인 이벤트를 상호 연관시키는 데에는 `credentialId`를 사용할 수 없습니다. 로그인 이벤트에서 내보내는 `credentialId` 필드의 값은 내부용이므로 이에 의존하지 않는 것이 좋습니다. OIDC로 간접 호출된 [AWS 액세스 포털 이벤트](sso-info-in-cloudtrail.md#cloudtrail-events-access-portal-operations)에 대해 내보내지는 `credentialId` 필드의 값은 액세스 토큰의 ID와 같습니다.

## IAM Identity Center 사용자 시작 CloudTrail 이벤트에서 사용자 백그라운드 세션 세부 정보 식별
<a name="identifying-user-background-session-details"></a>

다음 CloudTrail 이벤트는 사용자의 대화형 세션을 나타내는 기존 액세스 토큰(`subjectToken`)이 새로 고침 토큰(`requestedTokenType`)으로 교환되는 OAuth 2.0 토큰 교환 프로세스를 캡처합니다. 새로 고침 토큰은 사용자가 로그아웃한 후에도 사용자가 시작한 장기 실행 작업을 사용자의 권한으로 계속 실행될 수 있게 해줍니다.

IAM Identity Center [사용자 백그라운드 세션](user-background-sessions.md)의 경우 CloudTrail 이벤트에는 요소에 `resource`라는 추가 `requestParameters` 요소가 포함됩니다. `resource` 파라미터에는 백그라운드에서 실행되는 작업의 Amazon 리소스 이름(ARN)이 포함됩니다. 이 요소는 CloudTrail 이벤트 레코드에만 존재하며 IAM Identity Center [CreateTokenWithIAM](https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateTokenWithIAM.html) API 또는 SDK 응답에는 포함되지 않습니다.

```
{
  "clientId": "EXAMPLE-CLIENT-ID",
  "grantType": "urn:ietf:params:oauth:grant-type:token-exchange",
  "code": "HIDDEN_DUE_TO_SECURITY_REASONS",
  "redirectUri": "https://example.com/callback",
  "assertion": "HIDDEN_DUE_TO_SECURITY_REASONS",
  "subjectToken": "HIDDEN_DUE_TO_SECURITY_REASONS",
  "subjectTokenType": "urn:ietf:params:oauth:token-type:access_token",
  "requestedTokenType": "urn:ietf:params:oauth:token-type:refresh_token",
  "resource": "arn:aws:sagemaker:us-west-2:123456789012:training-job/my-job"
}
```

## IAM Identity Center와 외부 디렉터리 간 사용자 상호 연관
<a name="correlating-users"></a>

IAM Identity Center는 디렉터리의 사용자를 외부 디렉터리의 동일한 사용자와 연관시키는 데 사용할 수 있는 두 가지 사용자 속성을 제공합니다(예: Microsoft Active Directory 및 Okta Universal Directory).
+ `externalId` - IAM Identity Center 사용자의 외부 식별자. 이 식별자를 외부 디렉터리의 변경 불가능한 사용자 식별자에 매핑할 것을 권장합니다. IAM Identity Center는 CloudTrail에서 이 값을 내보내지 않습니다.
+ `username` - 사용자가 일반적으로 로그인하는 고객 제공 값. 값은 변경될 수 있습니다(예: SCIM 업데이트를 통해). ID 소스가 인 경우 IAM Identity Center가 CloudTrail에서 내보내는 Directory Service사용자 이름은 인증하기 위해 입력한 사용자 이름과 일치합니다. 사용자 이름이 IAM Identity Center 디렉터리의 사용자 이름과 정확히 일치할 필요는 없습니다.

   CloudTrail 이벤트에 액세스할 수 있지만 IAM Identity Center 디렉터리에 액세스할 수 없는 경우 로그인 시 `additionalEventData` 요소에서 내보낸 사용자 이름을 사용할 수 있습니다. `additionalEventData`의 사용자 이름에 대한 자세한 내용은 [로그인 CloudTrail 이벤트의 사용자 이름](username-sign-in-cloudtrail-events.md) 섹션을 참조하세요.

ID 소스가 Directory Service인 경우 외부 디렉터리의 해당 사용자 속성에 대한 이 두 사용자 속서의 매핑은 IAM Identity Center에서 정의됩니다. 자세한 내용은 [IAM Identity Center와 외부 ID 제공업체 디렉터리 간의 속성 매핑](attributemappingsconcept.md) 섹션을 참조하세요. SCIM으로 사용자를 프로비저닝하는 외부 IdP는 자체 매핑이 있습니다. IAM Identity Center 디렉터리를 ID 소스로 사용하더라도 `externalId` 속성을 사용하여 보안 위탁자를 외부 디렉터리로 상호 참조할 수 있습니다.

다음 섹션에서는 사용자의 `username` 및 `externalId`가 주어졌을 때 IAM Identity Center 사용자를 조회하는 방법을 설명합니다.

## username 및 externalId로 IAM Identity Center 사용자 보기
<a name="view-username-extid"></a>

이전 예제에서와 같이 먼저 [https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_GetUserId.html](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_GetUserId.html) API 요청을 사용하여 해당 `userId`를 요청한 다음 [https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_DescribeUser.html](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_DescribeUser.html) API 요청을 발행하여 IAM Identity Center 디렉터리에서 알려진 사용자 이름에 대해 사용자 속성을 검색할 수 있습니다. 다음 예제는 자격 증명 스토어에서 특정 사용자 이름에 대해 `userId`를 검색하는 방법을 보여줍니다. IAM Identity Center 인스턴스가 CLI의 기본 리전에 있는 경우 `region` 파라미터를 생략할 수 있습니다.

```
aws identitystore get-user-id \
    --identity-store d-9876543210 \
    --alternate-identifier '{
      "UniqueAttribute": {
      "AttributePath": "username",
      "AttributeValue": "anyuser@example.com"
        }
          }' \
    --region your-region-id
```

마찬가지로, `externalId`를 알고 있을 때도 동일한 메커니즘을 사용할 수 있습니다. 이전 예제의 속성 경로를 `externalId` 값으로 업데이트하고 속성 값을 검색하고 있는 특정 `externalId`로 업데이트합니다.

## Microsoft Active Directory(AD)의 사용자 보안 식별자(SID) 및 externalId 보기
<a name="view-users-sid-ad"></a>

경우에 따라 IAM Identity Center는 AWS 액세스 포털 및 OIDC API가 내보내는 이벤트와 같은 CloudTrail 이벤트 `principalId` 필드에서 사용자의 SID를 내보냅니다. APIs **이러한 사례는 단계적으로 폐지되고 있습니다.** AD의 고유 사용자 식별자가 필요한 경우 워크플로에서 AD 속성 `objectguid`를 사용하는 것이 좋습니다. 이 값은 IAM Identity Center 디렉터리의 `externalId` 속성에서 찾을 수 있습니다. 그러나 워크플로에서 SID를 사용해야 하는 경우 IAM Identity Center API를 통해 얻을 수 없으므로 AD에서 값을 검색합니다.

[동일한 사용자 세션 내에서 사용자 이벤트 상호 연관IAM Identity Center와 외부 디렉터리 간 사용자 상호 연관](#correlating-users)에 `externalId` 및 `username` 필드를 사용하여 IAM Identity Center 사용자를 외부 디렉터리의 일치하는 사용자와 연관시키는 방법이 설명되어 있습니다. 기본적으로 IAM Identity Center는 `externalId`를 AD의 `objectguid` 속성에 매핑하며 이 매핑은 고정됩니다. IAM Identity Center를 통해 관리자는 AD의 `userprincipalname`에 대한 기본 매핑과 다르게 `username`를 매핑할 수 있는 유연성을 가질 수 있습니다.

IAM Identity Center 콘솔에서 이러한 매핑을 볼 수 있습니다. **설정**의 **ID 소스** 탭으로 이동하여 **작업** 메뉴에서 **동기화 관리**를 선택합니다. **동기화 관리** 섹션에서 **속성 매핑 보기** 버튼을 선택합니다.

IAM Identity Center에서 사용할 수 있는 고유 AD 사용자 식별자를 사용하여 AD의 사용자를 조회할 수 있지만, 변경 불가능한 식별자이므로 쿼리에 `objectguid`를 사용하는 것이 좋습니다. 다음 예제는 Powershell로 Microsoft AD를 쿼리하여 `16809ecc-7225-4c20-ad98-30094aefdbca`라는 사용자 `objectguid` 값으로 사용자를 검색하는 방법을 보여줍니다. 이 쿼리에 대한 성공적인 응답에 사용자의 SID가 포함됩니다.

```
Install-WindowsFeature -Name  RSAT-AD-PowerShell
 
  Get-ADUser `
  -Filter {objectGUID -eq  [GUID]::Parse("16809ecc-7225-4c20-ad98-30094aefdbca")} `
  -Properties *
```