AWS CloudTrail에서 권한 있는 태스크 추적 - AWS Identity and Access Management

AWS CloudTrail에서 권한 있는 태스크 추적

IAM의 AWS Organizations 관리 계정 또는 위임된 관리자 계정은 단기 루트 액세스를 사용하여 멤버 계정에서 일부 루트 사용자 태스크를 수행할 수 있습니다. 단기 권한 있는 세션은 조직의 멤버 계정에서 권한 있는 작업을 수행하도록 범위를 지정할 수 있는 임시 자격 증명을 제공합니다. 다음 단계를 사용하여 sts:AssumeRoot 세션 중 관리 계정 또는 위임된 관리자가 수행한 작업을 식별할 수 있습니다.

참고

sts:AssumeRoot에는 글로벌 엔드포인트가 지원되지 않습니다. CloudTrail은 엔드포인트에 대해 지정된 리전의 ConsoleLogin 이벤트를 기록합니다.

CloudTrail 로그에서 권한 있는 세션에서 수행한 작업을 추적하려면 다음을 수행하세요.
  1. CloudTrail 로그에서 AssumeRoot 이벤트를 찾습니다. 이 이벤트는 IAM의 관리 계정이나 위임된 관리자가 sts:AssumeRoot에서 단기 자격 증명 세트를 가져올 때 생성됩니다.

    다음 예에서는 AssumeRoot에 대한 CloudTrail 이벤트가 eventName 필드에 기록됩니다.

    { "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AIDACKCEVSQ6C2EXAMPLE:JohnRole1", "arn": "arn:aws:sts::111111111111:assumed-role/JohnDoe/JohnRole1", "accountId": "111111111111", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::111111111111:role/JohnDoe", "accountId": "111111111111", "userName": "Admin2" }, "webIdFederationData": {}, "attributes": { "assumedRoot": "true", "creationDate": "2024-10-25T20:45:28Z", "mfaAuthenticated": "false" } } }, "eventTime": "2024-10-25T20:52:11Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRoot", "awsRegion": "us-west-2", "sourceIPAddress": "192.0.2.1", "requestParameters": { "targetPrincipal": "222222222222", "taskPolicyArn": { "arn": "arn:aws:iam::aws:policy/root-task/S3UnlockBucketPolicy" } }, "responseElements": { "credentials": { "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionToken": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "expiration": "Oct 25, 2024, 9:07:11 PM" } } }

    CloudTrail 로그에 액세스하는 단계는 AWS CloudTrail 사용자 설명서Getting and viewing your CloudTrail log files를 참조하세요.

  2. CloudTrail 이벤트 로그에서 작업이 수행된 멤버 계정을 지정하는 targetPrincipalAssumeRoot 세션에 고유한 accessKeyId를 찾습니다.

    다음 예에서 targetPrincipal은 222222222222이고 accessKeyId는 ASIAIOSFODNN7EXAMPLE입니다.

    "eventTime": "2024-10-25T20:52:11Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRoot", "awsRegion": "us-west-2", "sourceIPAddress": "192.0.2.1", "requestParameters": { "targetPrincipal": "222222222222", "taskPolicyArn": { "arn": "arn:aws:iam::aws:policy/root-task/S3UnlockBucketPolicy" } }, "responseElements": { "credentials": { "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionToken": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "expiration": "Oct 25, 2024, 9:07:11 PM" } }
  3. 대상 위탁자에 대한 CloudTrail 로그에서 AssumeRoot 이벤트의 accessKeyId 값에 해당하는 액세스 키 ID를 검색합니다. eventName 필드 값을 사용하여 AssumeRoot 세션 중 수행되는 권한 있는 태스크를 결정합니다. 단일 세션에서 여러 권한 있는 태스크가 수행될 수 있습니다. AssumeRoot의 최대 세션 지속 기간은 900초(15분)입니다.

    다음 예에서는 관리 계정 또는 위임된 관리자가 Amazon S3 버킷에 대한 리소스 기반 정책을 삭제했습니다.

    { "eventVersion": "1.10", "userIdentity": { "type": "Root", "principalId": "222222222222", "arn": "arn:aws:iam::222222222222:root", "accountId": "222222222222", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "creationDate": "2024-10-25T20:52:11Z", "mfaAuthenticated": "false" } } }, "eventTime": "2024-10-25T20:53:47Z", "eventSource": "s3.amazonaws.com", "eventName": "DeleteBucketPolicy", "awsRegion": "us-west-2", "sourceIPAddress": "192.0.2.1", "requestParameters": { "bucketName": "resource-policy-JohnDoe", "Host": "resource-policy-JohnDoe.s3.amazonaws.com", "policy": "" }, "responseElements": null, "requestID": "1234567890abcdef0", "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "readOnly": false, "resources": [ { "accountId": "222222222222", "type": "AWS::S3::Bucket", "ARN": "arn:aws:s3:::resource-policy-JohnDoe" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "222222222222", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "resource-policy-JohnDoe.s3.amazonaws.com" } }