CloudTrail Élément UserIdentity - AWS CloudTrail

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

CloudTrail Élément UserIdentity

AWS Identity and Access Management (IAM) fournit différents types d'identités. L'élément userIdentity contient des détails sur le type d'identité IAM ayant effectué la demande, ainsi que les informations d'identification qui ont été utilisées. Si des informations d'identification temporaires ont été utilisées, l'élément montre comment ces informations d'identification ont été obtenues.

Exemples

userIdentity avec les informations d'identification d'utilisateur IAM

L'exemple suivant montre l'élément userIdentity d'une demande simple faite avec les informations d'identification de l'utilisateur IAM nommé Alice.

"userIdentity": { "type": "IAMUser", "principalId": "AIDAJ45Q7YFFAREXAMPLE", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "", "userName": "Alice" }

userIdentity avec des informations d'identification de sécurité temporaires

L'exemple suivant présente un élément userIdentity pour une demande faite avec des informations d'identification de sécurité temporaires obtenues en assumant un rôle IAM. L'élément contient des détails supplémentaires concernant le rôle qui a été assumé pour obtenir des informations d'identification.

"userIdentity": { "type": "AssumedRole", "principalId": "AROAIDPPEZS35WEXAMPLE:AssumedRoleSessionName", "arn": "arn:aws:sts::123456789012:assumed-role/RoleToBeAssumed/MySessionName", "accountId": "123456789012", "accessKeyId": "", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIDPPEZS35WEXAMPLE", "arn": "arn:aws:iam::123456789012:role/RoleToBeAssumed", "accountId": "123456789012", "userName": "RoleToBeAssumed" }, "attributes": { "mfaAuthenticated": "false", "creationDate": "20131102T010628Z" ) } }

userIdentity pour une demande effectuée au nom d'un utilisateur IAM Identity Center

L'exemple suivant présente un élément userIdentity pour une demande faite au nom d'un utilisateur IAM Identity Center.

"userIdentity": { "type": "IdentityCenterUser", "accountId": "123456789012", "onBehalfOf": { "userId": "544894e8-80c1-707f-60e3-3ba6510dfac1", "identityStoreArn": "arn:aws:identitystore::123456789012:identitystore/d-9067642ac7" }, "credentialId": "EXAMPLEVHULjJdTUdPJfofVa1sufHDoj7aYcOYcxFVllWR_Whr1fEXAMPLE" }

Champs

Les champs suivants peuvent apparaître dans un élément userIdentity.

type

Type d’identité. Les valeurs suivantes sont possibles :

  • Root— La demande a été faite avec vos Compte AWS informations d'identification. Si le type de userIdentity est Root et que vous définissez un alias pour votre compte, le champ userName contient l'alias de votre compte. Pour plus d'informations, veuillez consulter Votre ID de compte Compte AWS et son alias.

  • IAMUser - La demande a été effectuée avec les informations d'identification d'un utilisateur IAM.

  • AssumedRole – La demande a été effectuée avec des informations d'identification de sécurité temporaires qui ont été obtenues avec un rôle en passant un appel à l'API AWS Security Token Service (AWS STS) AssumeRole. Cela peut inclure des rôles pour Amazon EC2 et l'accès aux API entre comptes.

  • Role – La demande a été effectuée avec une identité IAM persistante qui dispose d'autorisations spécifiques. L'émetteur des sessions de rôle est toujours le rôle. Pour plus d'informations sur les rôles, consultez Termes et concepts relatifs aux rôles dans le Guide de l'utilisateur IAM.

  • FederatedUser— La demande a été faite avec des informations de sécurité temporaires obtenues lors d'un appel à l' AWS STS GetFederationTokenAPI. L'élément sessionIssuer indique si l'API a été appelée avec les informations d'identification utilisateur racine ou IAM.

    Pour en savoir plus sur les informations d'identification de sécurité temporaires, consultez Informations d'identification de sécurité temporaires dans le Guide de l'utilisateur IAM.

  • Directory – La demande a été faite à un directory service et le type est inconnu. Les services d'annuaire incluent les suivants : Amazon WorkDocs et Amazon QuickSight.

  • AWSAccount— La demande a été faite par un autre Compte AWS

  • AWSService— La demande a été faite par un Compte AWS membre appartenant à un Service AWS. AWS Elastic Beanstalk Suppose, par exemple, un rôle IAM dans votre compte pour appeler d'autres personnes Services AWS en votre nom.

  • IdentityCenterUser : la demande a été effectuée au nom d'un utilisateur IAM Identity Center.

  • Unknown— La demande a été faite avec un type d'identité CloudTrail impossible à déterminer.

Facultatif : False

AWSAccount et AWSService apparaissent pour type dans vos journaux lorsqu'il y a un accès entre comptes à l'aide d'un rôle IAM que vous possédez.

Exemple : Accès entre comptes initié par un autre compte AWS
  1. Vous possédez un rôle IAM dans votre compte.

  2. Un autre AWS compte passe à ce rôle pour assumer le rôle de votre compte.

  3. Etant donné que vous possédez le rôle IAM, vous recevez un journal qui indique que l'autre compte a endossé le rôle. Le type est AWSAccount. Pour un exemple d'entrée de journal, voir événement AWS STS API dans le fichier CloudTrail journal.

Exemple : accès entre comptes initié par un service AWS
  1. Vous possédez un rôle IAM dans votre compte.

  2. Un AWS compte appartenant à un AWS service assume ce rôle.

  3. Etant donné que vous possédez le rôle IAM, vous recevez un journal qui indique que le service AWS a endossé le rôle. Le type est AWSService.

userName

Nom descriptif de l'identité qui a réalisé l'appel. La valeur qui s'affiche dans userName s'appuie sur la valeur de type. Le tableau suivant illustre la relation entre type et userName :

type userName Description
Root (aucun alias défini) Absent Si vous n'avez pas configuré d'alias pour votre Compte AWS, le userName champ n'apparaît pas. Pour plus d'informations sur les alias de compte, consultez la section Votre Compte AWS identifiant et son alias. Notez que le champ userName ne peut pas contenir Root, car Root est un type d'identité, et pas un nom d'utilisateur.
Root (alias défini) Alias du compte Pour plus d'informations sur Compte AWS les alias, consultez la section Votre Compte AWS identifiant et son alias.
IAMUser Nom d'utilisateur de l'utilisateur IAM

AssumedRole

Absent Pour le AssumedRole type, vous pouvez trouver le userName champ dans le sessionContext cadre de l'élément SessionIssuer. Pour obtenir un exemple de saisie, consultez Exemples.

Role

Défini par l'utilisateur Les sections sessionContext et sessionIssuer contiennent des informations concernant l'identité qui a publié la séance pour le rôle.
FederatedUser Absent Les sections sessionContext et sessionIssuer contiennent des informations concernant l'identité qui a publié la session pour l'utilisateur fédéré.
Directory Peut être présent Par exemple, la valeur peut être l'alias du compte ou l'adresse e-mail de l'ID de compte Compte AWS.
AWSService Absent
AWSAccount Absent
IdentityCenterUser Absent La section onBehalfOf contient des informations sur l'ID de l'utilisateur IAM Identity Center et l'ARN du magasin d'identités pour lesquels l'appel a été effectué. Pour plus d'informations sur IAM Identity Center, consultez le Guide de l'utilisateur AWS IAM Identity Center .
Unknown Peut être présent Par exemple, la valeur peut être l'alias du compte ou l'adresse e-mail de l'ID de compte Compte AWS.
Note

Le userName contient la chaîne HIDDEN_DUE_TO_SECURITY_REASONS lorsque l'événement enregistré est un échec de connexion à la console provoqué par la saisie d'un nom d'utilisateur incorrect. CloudTrail n'enregistre pas le contenu dans ce cas car le texte peut contenir des informations sensibles, comme dans les exemples suivants :

  • Un utilisateur tape par erreur un mot de passe dans le champ de nom d'utilisateur.

  • Un utilisateur clique sur le lien menant à la page de connexion d'un AWS compte, puis saisit le numéro de compte d'un autre compte.

  • Un utilisateur tape accidentellement le nom d'un compte de messagerie personnelle, un identifiant de connexion bancaire ou un autre ID privé.

Facultatif : True

principalId

Identifiant unique de l'entité qui a effectué l'appel. Pour les demandes effectuées avec des informations d'identification de sécurité temporaires, cette valeur comprend le nom de session transmis à l'appel d'API AssumeRole, AssumeRoleWithWebIdentity ou GetFederationToken.

Facultatif : True

arn

L'Amazon Resource Name (ARN) du principal qui a effectué l'appel. La dernière partie de l'ARN contient l'utilisateur ou le rôle qui a réalisé l'appel.

Facultatif : True

accountId

Compte propriétaire de l'entité qui a accordé les autorisations pour la demande. Si la demande a été effectuée avec des informations d'identification de sécurité temporaires, il s'agit du compte qui possède l'utilisateur ou le rôle IAM utilisé pour obtenir les informations d'identification.

Si la demande a été faite avec un jeton d'accès autorisé IAM Identity Center, il s'agit du compte propriétaire de l'instance IAM Identity Center.

Facultatif : True

accessKeyId

ID de clé d’accès utilisé pour signer la demande. Si la demande a été faite avec des informations d’identification de sécurité temporaires, il s’agit de l’ID de clé d’accès des informations d’identification temporaires. Pour des raisons de sécurité,accessKeyId peut ne pas être présent ou être affiché sous la forme d'une chaîne vide.

Facultatif : True

sessionContext

Si la demande a été effectuée avec les informations d'identification de sécurité temporaires, sessionContext fournit des informations sur la session créée pour ces informations d'identification. Une session est créée lorsque vous appelez une API qui renvoie des informations d'identification temporaires. Les utilisateurs créent également des sessions lorsqu'ils travaillent dans la console et font des demandes avec des API qui incluent l'authentification multifactorielle. Les attributs suivants peuvent apparaître dans sessionContext :

  • sessionIssuer— Si un utilisateur fait une demande avec des informations de sécurité temporaires, sessionIssuer fournit des informations sur la manière dont il a obtenu les informations d'identification. Par exemple, s'il a obtenu des informations d'identification temporaires en endossant un rôle, cet élément fournit des informations sur le rôle endossé. S'ils ont obtenu des informations d'identification avec les informations d'identification de l'utilisateur root ou IAM pour appeler AWS STS GetFederationToken, l'élément fournit des informations sur le compte root ou l'utilisateur IAM. Cet élément prend en charge les attributs suivants :

    • type - La source des informations d'identification de sécurité temporaires, par exemple Root, IAMUser ou Role.

    • userName - Le nom descriptif de l'utilisateur ou du rôle qui a établi la session. La valeur qui s'affiche dépend du sessionIssuer d'identité type. Le tableau suivant illustre la relation entre sessionIssuer type et userName :

      sessionIssuer type userName Description
      Root (aucun alias défini) Absent Si vous n'avez pas défini d'alias pour votre compte, le champ userName n'apparaît pas. Pour plus d'informations sur Compte AWS les alias, consultez la section Votre Compte AWS identifiant et son alias. Notez que le champ userName ne peut pas contenir Root, car Root est un type d'identité, pas un nom d'utilisateur.
      Root (alias défini) Alias du compte Pour plus d'informations sur les Compte AWS alias, consultez la section Votre identifiant de AWS compte et son alias.
      IAMUser Le nom d'utilisateur de l'utilisateur IAM Cela s'applique également lorsqu'un utilisateur fédéré utilise une session établie par IAMUser.
      Role Nom du rôle Rôle assumé par un utilisateur IAM ou un utilisateur fédéré par identité Web dans une session de rôle. Service AWS
    • principalId : l'ID interne de l'entité qui a été utilisée pour obtenir des informations d'identification.

    • arn - L'ARN de la source (compte, utilisateur IAM ou rôle) qui a été utilisé pour obtenir des informations d'identification de sécurité temporaires.

    • accountId - Le compte propriétaire de l'entité qui a été utilisée pour obtenir des informations d'identification.

  • webIdFederationData— Si la demande a été faite avec des informations de sécurité temporaires obtenues par la fédération d'identité Web, webIdFederationData répertorie les informations sur le fournisseur d'identité.

    Cet élément prend en charge les attributs suivants :

    • federatedProvider - Le nom principal du fournisseur d'identités (par exemple, www.amazon.com pour Login with Amazon ou accounts.google.com pour Google).

    • attributes - ID d'application et ID d'utilisateur tels qu'indiqués par le fournisseur (par exemple, www.amazon.com:app_id et www.amazon.com:user_id pour Login with Amazon).

    Note

    L'omission de ce champ ou la présence de ce champ avec une valeur vide signifie qu'il n'y a aucune information sur le fournisseur d'identité.

  • creationDate - La date et l'heure auxquelles les informations d'identification de sécurité temporaires ont été émises. Représentées en notation base ISO 8601.

  • mfaAuthenticated : la valeur est true si l'utilisateur root ou l'utilisateur IAM dont les informations d'identification ont été utilisées pour la demande a également été authentifié avec un périphérique MFA. Dans le cas contraire, false.

  • sourceIdentity— Consultez AWS STS identité de la source dans cette rubrique. Le champ sourceIdentity se produit dans les événements lorsque les utilisateurs assument un rôle IAM pour effectuer une action. sourceIdentity identifie l'identité de l'utilisateur initial qui effectue la demande, si l'identité de cet utilisateur est un utilisateur IAM, un rôle IAM, un utilisateur authentifié au moyen d'une fédération basée sur SAML ou un utilisateur authentifié à l'aide de la fédération d'identités Web compatible OpenID Connect (OIDC). Pour plus d'informations sur la configuration AWS STS de la collecte des informations d'identité de la source, consultez la section Surveillance et contrôle des actions entreprises avec des rôles assumés dans le Guide de l'utilisateur IAM.

  • ec2RoleDelivery : la valeur est 1.0 si les informations d'identification ont été fournies par le service Instance Metadata Service Version 1 (IMDSv1) d'Amazon EC2. La valeur est 2.0 si les informations d'identification ont été fournies à l'aide du nouveau schéma IMDS.

    AWS les informations d'identification fournies par le service de métadonnées d'instance Amazon EC2 (IMDS) incluent une clé de contexte ec2 : RoleDelivery IAM. Cette clé de contexte facilite l'application du nouveau schéma sur une resource-by-resource base service-by-service ou en utilisant la clé de contexte comme condition dans les politiques IAM, les politiques de ressources ou les politiques de contrôle des AWS Organizations services. Pour plus d'informations, consultez Métadonnées d'instance et données utilisateur dans le Guide de l'utilisateur Amazon EC2.

Facultatif : True

invokedBy

Le nom de l'auteur Service AWS de la demande, lorsqu'une demande est faite par un utilisateur Service AWS tel qu'Amazon EC2 Auto Scaling ou. AWS Elastic Beanstalk Ce champ n'est présent que lorsqu'une demande est faite par un Service AWS. Cela inclut les demandes effectuées par des services utilisant des sessions d'accès direct ( Service AWS FAS), des principaux, des rôles liés à un service ou des rôles de service utilisés par un. Service AWS

Facultatif : True

onBehalfOf

Si la demande a été faite par un appelant IAM Identity Center, onBehalfOf fournit des informations sur l'ID de l'utilisateur IAM Identity Center et l'ARN du magasin d'identités pour lesquels l'appel a été effectué. Cet élément prend en charge les attributs suivants :

  • userId : l'ID de l'utilisateur IAM Identity Center pour lequel l'appel a été effectué.

  • identityStoreArn : l'ARN du magasin d'identités IAM Identity Center pour lequel l'appel a été effectué.

Facultatif : True

credentialId

L'ID des informations d'identification de la demande. Ceci n'est défini que lorsque l'appelant utilise un jeton porteur, tel qu'un jeton d'accès autorisé IAM Identity Center.

Facultatif : True

Valeurs des AWS STS API avec SAML et fédération d'identité Web

AWS CloudTrail prend en charge les appels d'API logging AWS Security Token Service (AWS STS) effectués avec le langage SAML (Security Assertion Markup Language) et la fédération d'identité Web. Lorsqu'un utilisateur appelle les AssumeRoleWithWebIdentityAPI AssumeRoleWithSAMLet, CloudTrail enregistre l'appel et transmet l'événement à votre compartiment Amazon S3.

L'élément userIdentity de ces API contient les valeurs suivantes.

type

Type d'identité.

  • SAMLUser - La demande a été effectuée avec l'assertion SAML.

  • WebIdentityUser - La demande a été effectuée par un fournisseur de fédération d'identité Web.

principalId

Identifiant unique de l'entité qui a effectué l'appel.

  • Pour SAMLUser, il s'agit d'une combinaison de clés saml:namequalifier et saml:sub.

  • Pour WebIdentityUser, il s'agit d'une combinaison de l'émetteur, l'ID de l'application et l'ID de l'utilisateur.

userName

Nom de l'identité qui a réalisé l'appel.

  • Pour SAMLUser, il s'agit de la clé saml:sub.

  • Pour WebIdentityUser, il s'agit de l'ID d'utilisateur.

identityProvider

Nom principal du fournisseur d'identité externes. Ce champ s'affiche uniquement pour les types SAMLUser ou WebIdentityUser.

  • Pour SAMLUser, il s'agit de la clé saml:namequalifier pour l'assertion SAML.

  • Pour WebIdentityUser, il s'agit du nom d'auteur du fournisseur de fédération d'identité Web. Il peut s'agir d'un fournisseur que vous avez configuré, tel que :

    • cognito-identity.amazon.com pour Amazon Cognito

    • www.amazon.com pour Login with Amazon

    • accounts.google.com pour Google

    • graph.facebook.com pour Facebook

Voici un exemple d'élément userIdentity pour l'action AssumeRoleWithWebIdentity.

"userIdentity": { "type": "WebIdentityUser", "principalId": "accounts.google.com:application-id.apps.googleusercontent.com:user-id", "userName": "user-id", "identityProvider": "accounts.google.com" }

Par exemple, des journaux indiquant la façon dont l'userIdentityélément apparaît SAMLUser et ses WebIdentityUser types, consultez la section Journalisation des appels IAM et AWS STS API avec AWS CloudTrail.

AWS STS identité de la source

Un administrateur IAM peut configurer AWS Security Token Service pour exiger que les utilisateurs spécifient leur identité lorsqu'ils utilisent des informations d'identification temporaires pour assumer des rôles. Le champ sourceIdentity apparait dans les événements lorsque les utilisateurs assument un rôle IAM ou exécutent des actions avec le rôle assumé.

Le sourceIdentity identifie l'identité de l'utilisateur d'origine qui effectue la demande, si l'identité de cet utilisateur est un utilisateur IAM, un rôle IAM, un utilisateur authentifié à l'aide de la fédération basée sur SAML ou un utilisateur authentifié à l'aide de la fédération d'identités Web compatible OpenID Connect (OIDC). Une fois que l'administrateur IAM a configuré AWS STS, CloudTrail enregistre les sourceIdentity informations relatives aux événements et aux emplacements suivants dans l'enregistrement des événements :

  • Le ou AWS STS AssumeRole AssumeRoleWithSAML les AssumeRoleWithWebIdentity appels qu'une identité d'utilisateur effectue lorsqu'elle assume un rôle. sourceIdentityse trouve dans le requestParameters bloc des AWS STS appels.

  • Le ou AWS STS AssumeRole les AssumeRoleWithSAML AssumeRoleWithWebIdentity appels qu'une identité d'utilisateur effectue si elle utilise un rôle pour assumer un autre rôle, c'est ce que l'on appelle le chaînage de rôles. sourceIdentityse trouve dans le requestParameters bloc des AWS STS appels.

  • L'API AWS de service effectue les appels que l'identité de l'utilisateur effectue lorsqu'il assume un rôle et en utilisant les informations d'identification temporaires attribuées par AWS STS. Dans les événements d'API de service, sourceIdentity se trouve dans le bloc sessionContext. Par exemple, si une identité utilisateur crée un nouveau compartiment S3, sourceIdentity se produit dans le bloc sessionContextde l'événement CreateBucket.

Pour plus d'informations sur la façon de configurer AWS STS la collecte des informations d'identité source, consultez la section Surveillance et contrôle des actions entreprises avec des rôles assumés dans le Guide de l'utilisateur IAM. Pour plus d'informations sur les AWS STS événements auxquels vous êtes connecté CloudTrail, consultez la section Journalisation des appels IAM et AWS STS API AWS CloudTrail dans le guide de l'utilisateur IAM.

Les exemples suivants sont des extraits d'événements qui montrent la sourceIdentity.

Exemple de la section requestParameters

Dans l'exemple d'extrait d'événement suivant, un utilisateur fait une AWS STS AssumeRole demande et définit une identité source, représentée ici par. source-identity-value-set L'utilisateur assume un rôle représenté par le rôle ARN arn:aws:iam::123456789012:role/Assumed_Role. Le champ sourceIdentity se trouve dans le bloc requestParameters de l'événement.

"eventVersion": "1.05", "userIdentity": { "type": "AWSAccount", "principalId": "AIDAJ45Q7YFFAREXAMPLE", "accountId": "123456789012" }, "eventTime": "2020-04-02T18:20:53Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRole", "awsRegion": "us-east-1", "sourceIPAddress": "203.0.113.64", "userAgent": "aws-cli/1.16.96 Python/3.6.0 Windows/10 botocore/1.12.86", "requestParameters": { "roleArn": "arn:aws:iam::123456789012:role/Assumed_Role", "roleSessionName": "Test1", "sourceIdentity": "source-identity-value-set", },

Exemple de la section responseElements

Dans l'exemple d'extrait d'événement suivant, un utilisateur AWS STS AssumeRole demande à assumer un rôle nommé Developer_Role et définit une identité source. Admin L'utilisateur assume un rôle représenté par le rôle ARN arn:aws:iam::111122223333:role/Developer_Role. Le champ sourceIdentity est affiché à la fois dans les blocs requestParameters et responseElements de l'événement. Les informations d'identification temporaires utilisées pour assumer le rôle, la chaîne de jeton de session, ainsi que l'ID de rôle assumé, le nom de session et l'ARN de session sont affichés dansle bloc responseElements, ainsi que l'identité source.

"requestParameters": { "roleArn": "arn:aws:iam::111122223333:role/Developer_Role", "roleSessionName": "Session_Name", "sourceIdentity": "Admin" }, "responseElements": { "credentials": { "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "expiration": "Jan 22, 2021 12:46:28 AM", "sessionToken": "XXYYaz... EXAMPLE_SESSION_TOKEN XXyYaZAz" }, "assumedRoleUser": { "assumedRoleId": "AROACKCEVSQ6C2EXAMPLE:Session_Name", "arn": "arn:aws:sts::111122223333:assumed-role/Developer_Role/Session_Name" }, "sourceIdentity": "Admin" } ...

Exemple de la section sessionContext

Dans l'exemple d'extrait d'événement suivant, un utilisateur assume un rôle nommé DevRole pour appeler une API de AWS service. L'utilisateur définit une identité source, représentée ici par source-identity-value-set. Le champ sourceIdentity se trouve dans le bloc sessionContext, à l'intérieur du bloc userIdentity de l'événement.

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAJ45Q7YFFAREXAMPLE: Dev1", "arn": "arn: aws: sts: : 123456789012: assumed-role/DevRole/Dev1", "accountId": "123456789012", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAJ45Q7YFFAREXAMPLE", "arn": "arn: aws: iam: : 123456789012: role/DevRole", "accountId": "123456789012", "userName": "DevRole" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-02-21T23: 46: 28Z" }, "sourceIdentity": "source-identity-value-set" } } }