

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# IAM アイデンティティセンターの CloudTrail ユースケース
<a name="sso-cloudtrail-use-cases"></a>

IAM アイデンティティセンターが発行する CloudTrail イベントは、さまざまなユースケースで役立ちます。組織は、これらのイベントログを使用して、 AWS 環境内のユーザーアクセスとアクティビティをモニタリングおよび監査できます。これにより、ログは誰がいつどのリソースにアクセスするかの詳細をキャプチャするため、コンプライアンスのユースケースに役立ちます。CloudTrail データをインシデント調査に使用して、チームがユーザーのアクションを分析し、疑わしい動作を追跡できるようにすることもできます。さらに、イベント履歴はトラブルシューティング作業をサポートし、時間の経過とともにユーザーのアクセス許可と設定に加えられた変更を可視化できます。

以下のセクションでは、監査、インシデント調査、トラブルシューティングなどのワークフローに役立つ基本的なユースケースについて説明します。

## IAM アイデンティティセンターのユーザーが開始した CloudTrail イベントでユーザーを特定する
<a name="user-session-iam-identity-center"></a>

IAM Identity Center は、IAM Identity Center へのサインインや、MFA デバイスの管理を含む AWS アクセスポータルの使用など AWS CLI、CloudTrail イベントの背後にある IAM Identity Center ユーザーを識別できる 2 つの CloudTrail CloudTrail フィールドを出力します。
+ `userId` – IAM アイデンティティセンターインスタンスの ID ストアからの一意でイミュータブルなユーザー識別子。
+ `identityStoreArn` – ユーザーを含む ID ストアの Amazon リソースネーム (ARN)。

`userID` および `identityStoreArn` フィールドは、次の CloudTrail イベントログの例に示すように、`onBehalfOf` 要素内にネストされた [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) 要素に表示されます。このイベントログには、`userIdentity` タイプが「`IdentityCenterUser`」であるイベントのこれら 2 つのフィールドが表示されます。これらのフィールドは、`userIdentity` タイプが「`Unknown`」である認証済み IAM アイデンティティセンターユーザーのイベントでも確認できます。ワークフローは両方の型値を受け入れる必要があります。

```
"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` へのアクセスに依存している場合は、次の 2 つのオプションがあります。  
「[サインイン CloudTrail イベントのユーザー名](username-sign-in-cloudtrail-events.md)」の説明に従って、IAM アイデンティティセンターディレクトリからユーザー名を取得します。
サインインの `additionalEventData` 要素で IAM アイデンティティセンターが出力する `UserName` を取得します。このオプションは、IAM アイデンティティセンターディレクトリへのアクセスを必要としません。詳細については、「[サインイン CloudTrail イベントのユーザー名](username-sign-in-cloudtrail-events.md)」を参照してください。

`username` フィールドを含むユーザーの詳細を取得するには、ユーザー ID と ID ストア 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 アイデンティティセンターインスタンスが CLI のデフォルトリージョンにある場合は、 `region` パラメータを省略できます。

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

前の例の CLI コマンドの ID ストア ID 値を決定するには、 `identityStoreArn`値から ID ストア ID を抽出します。ARN の例では `arn:aws:identitystore::111122223333:identitystore/d-1234567890`、ID ストア ID は `d-1234567890` です。または、IAM アイデンティティセンターコンソール**の設定**セクションの **[ID ストア]** タブに移動して、ID ストア ID を見つけることもできます。

IAM アイデンティティセンタディレクトリ内のユーザーの検索を自動化する場合は、ユーザー検索の頻度を見積もり、[ID ストア API の IAM アイデンティティセンターのスロットル制限](limits.md#ssodirectorylimits)を検討することをお勧めします。取得したユーザー属性をキャッシュすると、スロットル制限内に収まるようになります。

## 同じユーザーセッション内のユーザーイベントの関連付け
<a name="correlating-users-same-session"></a>

サインインイベントで出力される [`AuthWorkflowID`](understanding-sign-in-events.md) フィールドを使用すると、IAM アイデンティティセンターユーザーセッションを開始する前に、サインインシーケンスに関連付けられたすべての CloudTrail イベントを追跡できます。

 AWS アクセスポータル内のユーザーアクションの場合、`credentialId`値はアクションのリクエストに使用される IAM Identity Center ユーザーのセッションの ID に設定されます。この値を使用して、 AWS アクセスポータルの同じ認証済み IAM Identity Center ユーザーセッション内で開始された CloudTrail イベントを識別できます。

**注記**  
`credentialId` を使用して、サインインイベントを AWS アクセスポータルの使用などの後続のイベントに関連付けることはできません。サインインイベントで出力される `credentialId` フィールドの値は内部的に使用されるため、依存しないことをお勧めします。OIDC で呼び出される[AWS アクセスポータルイベント](sso-info-in-cloudtrail.md#cloudtrail-events-access-portal-operations)に対して出力される `credentialId` フィールドの値は、アクセストークンの ID と等しくなります。

## IAM アイデンティティセンターのユーザーが開始した CloudTrail イベントでのユーザーバックグラウンドセッションの詳細の特定
<a name="identifying-user-background-session-details"></a>

次の CloudTrail イベントは、OAuth 2.0 トークン交換のプロセスをキャプチャします。このプロセスでは、ユーザーのインタラクティブセッションを表す既存のアクセストークン (`subjectToken`) が更新トークン (`requestedTokenType`) と交換されます。更新トークンを使用すると、ユーザーが長時間実行ジョブを開始した場合でも、ユーザーがサインアウトした後でも、ユーザーのアクセス許可を使用して実行を継続できます。

IAM アイデンティティセンターユーザー[バックグラウンドセッション](user-background-sessions.md)の場合、CloudTrail イベントには `requestParameters` 要素に `resource` という追加要素が含まれます。`resource` パラメータには、バックグラウンドで実行されるジョブの Amazon リソースネーム (ARN) が含まれます。この要素は CloudTrail イベントレコードにのみ存在し、IAM アイデンティティセンター [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 アイデンティティセンターと外部ディレクトリ間のユーザーの関連付け
<a name="correlating-users"></a>

IAM アイデンティティセンターには、ディレクトリ内のユーザーを外部ディレクトリ内の同じユーザー (Microsoft Active Directory や Okta Universal Directory など) に関連付けるために使用できる 2 つのユーザー属性が用意されています。
+ `externalId` – IAM アイデンティティセンターユーザーの外部識別子。この識別子は、外部ディレクトリのイミュータブルなユーザー識別子にマッピングすることをお勧めします。IAM アイデンティティセンターは CloudTrail でこの値を出力しないことに注意してください。
+ `username` – ユーザーが通常サインインする、お客様が指定した値。値は変更できます (SCIM 更新など)。ID ソースが の場合 Directory Service、IAM Identity Center が CloudTrail で出力するユーザー名は、認証のために入力したユーザー名と一致することに注意してください。ユーザー名は、IAM アイデンティティセンターディレクトリのユーザー名と完全に一致する必要はありません。

   CloudTrail イベントにアクセスできるが、IAM アイデンティティセンターディレクトリにはアクセスできない場合は、サインイン時に `additionalEventData` 要素の下に出力されるユーザー名を使用できます。`additionalEventData` のユーザー名の詳細については、「[サインイン CloudTrail イベントのユーザー名](username-sign-in-cloudtrail-events.md)」を参照してください。

ID ソースが Directory Serviceの場合、これら 2 つのユーザー属性と外部ディレクトリ内の対応するユーザー属性のマッピングは IAM アイデンティティセンターで定義されます。詳細については、「[IAM アイデンティティセンターと外部 ID プロバイダーディレクトリ間の属性マッピング](attributemappingsconcept.md)」を参照してください。SCIM でユーザーをプロビジョニングする外部 IdP には、独自のマッピングがあります。ID ソースとして IAM アイデンティティセンターディレクトリを使用している場合でも、 `externalId` 属性を使用してセキュリティプリンシパルを外部ディレクトリに相互参照できます。

次のセクションでは、ユーザーの `username` と `externalId` を考慮して IAM アイデンティティセンターユーザーを検索する方法について説明します。

## ユーザー名と externalId による IAM アイデンティティセンターユーザーの表示
<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 アイデンティティセンターディレクトリからユーザー属性を取得できます。次の例は、特定のユーザー名の を ID ストア `userId`から取得する方法を示しています。IAM アイデンティティセンターインスタンスが 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) と externalId でのユーザーの Secure Identifier (SID) の表示
<a name="view-users-sid-ad"></a>

場合によっては、IAM Identity Center は、 AWS アクセスポータルや OIDC API が出力するイベントなど、CloudTrail イベントの `principalId` フィールドでユーザーの SID を出力します。 APIs **これらのケースは段階的に廃止されています。**AD から一意のユーザー識別子が必要な場合は、ワークフローで AD 属性 `objectguid` を使用することをお勧めします。この値は、IAM アイデンティティセンターディレクトリの `externalId` 属性にあります。ただし、ワークフローで SID を使用する必要がある場合は、IAM アイデンティティセンター API では使用できないため、AD から値を取得します。

[同じユーザーセッション内のユーザーイベントの関連付けIAM アイデンティティセンターと外部ディレクトリ間のユーザーの関連付け](#correlating-users) では、 フィールド`externalId`と `username`フィールドを使用して、IAM アイデンティティセンターユーザーと外部ディレクトリ内の一致するユーザーを関連付ける方法について説明します。デフォルトでは、IAM アイデンティティセンターは AD の `objectguid` 属性 `externalId` にマッピングされ、このマッピングは修正されています。IAM アイデンティティセンターを使用すると、管理者は AD の `userprincipalname` へのデフォルトのマッピングとは異なる方法で柔軟に `username` にマッピングできます。

これらのマッピングは、IAM アイデンティティセンターコンソールで表示できます。**[設定]** の **[ID ソース]** タブに移動し、**[アクション]** メニューで **[同期の管理]** を選択します。**[同期の管理]** セクションで、**[属性マッピングの表示]** ボタンを選択します。

IAM アイデンティティセンターで使用可能な一意の 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 *
```