서비스 계정 및 키의 최근 사용량 보기

이 페이지에서는 활동 분석기를 사용하여 서비스 계정 및 키가 Google API 호출에 마지막으로 사용된 시간을 확인하는 방법을 보여줍니다. 이 같은 사용을 인증 활동이라고 부릅니다.

최근 인증 활동은 더 이상 사용하지 않는 서비스 계정 및 서비스 계정 키를 확인하는 데 도움이 됩니다. 사용하지 않는 서비스 계정 및 키는 불필요한 보안 위험을 야기할 수 있으므로 사용 중지하거나 삭제하는 것이 좋습니다.

시작하기 전에

필요한 역할

서비스 계정 및 서비스 계정 키의 최신 인증 활동을 나열하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 활동 분석 뷰어(roles/policyanalyzer.activityAnalysisViewer) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 서비스 계정 및 서비스 계정 키에 대해 최근 인증 활동을 나열하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 확장하세요.

필수 권한

서비스 계정 및 서비스 계정 키에 대해 최근 인증 활동을 나열하려면 다음 권한이 필요합니다.

  • policyanalyzer.serviceAccountKeyLastAuthenticationActivities.query
  • policyanalyzer.serviceAccountLastAuthenticationActivities.query

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

모든 서비스 계정 또는 키의 최근 사용 보기

모든 서비스 계정 또는 서비스 계정 키에 대한 최근 인증 활동 날짜를 나열하려면 Google Cloud CLI 또는 REST API를 사용합니다.

gcloud

서비스 계정 또는 키의 최근 인증 활동을 나열하려면 gcloud policy-intelligence query-activity 명령어를 사용합니다.

gcloud policy-intelligence query-activity --activity-type=ACTIVITY_TYPE \
    --project=PROJECT_ID --limit=LIMIT

다음 값을 바꿉니다.

  • ACTIVITY_TYPE: 나열할 활동 유형입니다. 서비스 계정의 최근 사용 시간을 나열하려면 serviceAccountLastAuthentication을 사용합니다. 서비스 계정 키의 최근 사용 시간을 나열하려면 serviceAccountKeyLastAuthentication을 사용합니다.
  • PROJECT_ID: Google Cloud 프로젝트 ID. 프로젝트 ID는 my-project 같은 영숫자 문자열입니다.
  • LIMIT: 선택사항. 반환될 최대 결과 수입니다. 기본값은 1000입니다.

응답은 다음과 비슷합니다. 여기에서는 프로젝트 서비스 계정의 최근 사용 시간이 나열됩니다.

---
activity:
  lastAuthenticatedTime: '2021-04-27T07:00:00Z'
  serviceAccount:
    fullResourceName: //iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com
    projectNumber: '123456789012'
    serviceAccountId: '123456789012345678901'
activityType: serviceAccountLastAuthentication
fullResourceName: //iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com
observationPeriod:
  endTime: '2021-07-06T07:00:00Z'
  startTime: '2020-03-12T07:00:00Z'
---
activity:
  lastAuthenticatedTime: '2021-02-09T08:00:00Z'
  serviceAccount:
    fullResourceName: //iam.googleapis.com/projects/my-project/serviceAccounts/service-account-2@my-project.iam.gserviceaccount.com
    projectNumber: '123456789012'
    serviceAccountId: '234567890123456789012'
activityType: serviceAccountLastAuthentication
fullResourceName: //iam.googleapis.com/projects/my-project/serviceAccounts/service-account-2@my-project.iam.gserviceaccount.com
observationPeriod:
  endTime: '2021-07-06T07:00:00Z'
  startTime: '2020-09-01T07:00:00Z'

이러한 결과를 이해하는 방법은 이 페이지의 활동 이해를 참조하세요.

REST

서비스 계정 또는 키의 최신 인증 활동을 나열하려면 Policy Analyzer API의 activities.query 메서드를 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트 ID. 프로젝트 ID는 my-project 같은 영숫자 문자열입니다.
  • ACTIVITY_TYPE: 나열할 활동 유형입니다. 모든 서비스 계정의 최근 사용을 나열하려면 serviceAccountLastAuthentication을 사용합니다. 모든 서비스 계정 키의 최근 사용을 나열하려면 serviceAccountKeyLastAuthentication을 사용합니다.
  • PAGE_SIZE: 선택사항. 이 요청에서 반환할 최대 결과 수입니다. 지정하지 않으면 서버에서 반환할 결과 수를 결정합니다. 활동 수가 페이지 크기보다 크면 응답에 다음 결과 페이지를 검색하는 데 사용할 수 있는 페이지 나누기 토큰이 포함됩니다.
  • PAGE_TOKEN: 선택사항. 이 메서드의 이전 응답에서 반환된 페이지 나누기 토큰입니다. 지정된 경우 이전 응답이 종료된 위치에서 활동 목록이 시작됩니다.

HTTP 메서드 및 URL:

GET https://policyanalyzer.googleapis.com/v1/projects/PROJECT_ID/locations/global/activityTypes/ACTIVITY_TYPE/activities:query?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

응답은 다음과 비슷합니다. 여기에서는 프로젝트 서비스 계정의 최근 사용 시간이 나열됩니다.

{
  "activities": [
    {
      "fullResourceName": "//iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com",
      "activityType": "serviceAccountLastAuthentication",
      "observationPeriod": {
        "startTime": "2020-04-20T07:00:00Z",
        "endTime": "2021-05-17T07:00:00Z"
      },
      "activity": {
        "lastAuthenticatedTime": "2021-04-28T07:00:00Z",
        "serviceAccount": {
          "projectNumber": "123456789012",
          "fullResourceName": "//iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com",
          "serviceAccountId": "123456789012345678901"
        }
      }
    },
    {
      "fullResourceName": "//iam.googleapis.com/projects/my-project/serviceAccounts/service-account-2@my-project.iam.gserviceaccount.com",
      "activityType": "serviceAccountLastAuthentication",
      "observationPeriod": {
        "startTime": "2020-04-20T07:00:00Z",
        "endTime": "2021-05-17T07:00:00Z"
      },
      "activity": {
        "lastAuthenticatedTime": "2021-04-29T07:00:00Z",
        "serviceAccount": {
          "projectNumber": "123456789012",
          "fullResourceName": "//iam.googleapis.com/projects/my-project/serviceAccounts/service-account-2@my-project.iam.gserviceaccount.com",
          "serviceAccountId": "234567890123456789012"
        }
      }
    }
  ],
  "nextPageToken": "AVgRrQV4b5nISN6cGJvTPFJ2v_"
}

이러한 결과를 이해하는 방법은 이 페이지의 활동 이해를 참조하세요.

특정 서비스 계정의 최근 사용 보기

특정 서비스 계정이 마지막으로 사용된 날짜를 찾으려면 Google Cloud 콘솔, gcloud CLI 또는 REST API를 사용하세요.

콘솔

  1. Google Cloud 콘솔에서 정책 분석기 페이지로 이동합니다.

    정책 분석기로 이동

  2. 최근 활동 분석에서 이 서비스 계정이 마지막으로 사용된 시기는 언제인가요?라는 라벨이 지정된 창을 찾고 해당 창에서 쿼리 만들기를 클릭합니다.

  3. 쿼리 범위 선택 상자에 서비스 계정을 분석할 프로젝트의 이름을 입력합니다.

  4. 서비스 계정 추가 섹션에서 서비스 계정 상자를 클릭합니다. 프로젝트의 모든 서비스 계정 목록이 나타납니다. 이 목록에는 각 서비스 계정이 연결된 프로젝트와 각 서비스 계정의 이메일 주소도 포함됩니다.

  5. 최근 사용량을 확인할 서비스 계정을 선택합니다.

  6. 선택사항: 2개 이상의 서비스 계정에 대한 최근 사용량을 보려면 계정 추가를 클릭하고 다른 서비스 계정을 선택합니다. 한 번에 최대 10개의 서비스 계정을 분석할 수 있습니다.

  7. 액세스 활동 쿼리 패널에서 쿼리 실행을 클릭합니다.

결과 페이지에 서비스 계정의 최근 사용량이 표시됩니다. 이러한 결과를 이해하는 방법은 이 페이지의 활동 이해를 참조하세요.

gcloud

특정 서비스 계정의 최근 인증 활동을 가져오려면 필터와 함께 gcloud policy-intelligence query-activity 명령어를 사용합니다.

gcloud policy-intelligence query-activity --activity-type=serviceAccountLastAuthentication \
    --project=PROJECT_ID \
    --query-filter='FILTER'

다음 값을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트 ID. 프로젝트 ID는 my-project 같은 영숫자 문자열입니다.
  • FILTER: 사용을 확인할 서비스 계정의 전체 리소스 이름을 지정하는 필터입니다. 서비스 계정의 전체 리소스 이름에는 프로젝트 ID와 서비스 계정의 이메일 주소가 포함됩니다.

    단일 서비스 계정을 필터링하려면 다음 형식의 필터를 사용합니다.

    activities.full_resource_name="//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL"
    

    여러 서비스 계정을 필터링하려면 OR을 사용하여 허용되는 전체 리소스 이름을 여러 개 지정합니다.

    activities.full_resource_name="//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_1_EMAIL" OR activities.full_resource_name="//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_2_EMAIL"
    

    최대 10개의 서비스 계정을 필터링할 수 있습니다.

응답에서 서비스 계정의 최근 사용을 설명합니다.

---
activity:
  lastAuthenticatedTime: '2021-04-27T07:00:00Z'
  serviceAccount:
    fullResourceName: //iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com
    projectNumber: '123456789012'
    serviceAccountId: '123456789012345678901'
activityType: serviceAccountLastAuthentication
fullResourceName: //iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com
observationPeriod:
  endTime: '2021-07-06T07:00:00Z'
  startTime: '2020-03-12T07:00:00Z'

이러한 결과를 이해하는 방법은 이 페이지의 활동 이해를 참조하세요.

REST

특정 서비스 계정의 최근 인증 활동을 가져오려면 Policy Analyzer API의 activities.query 메서드를 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트 ID. 프로젝트 ID는 my-project 같은 영숫자 문자열입니다.
  • FILTER: 사용을 확인할 서비스 계정의 전체 리소스 이름을 지정하는 필터입니다.

    단일 서비스 계정을 필터링하려면 다음 형식의 필터를 사용합니다.

    activities.full_resource_name%3D%22%2F%2Fiam.googleapis.com%2Fprojects%2FPROJECT_ID%2FserviceAccounts%2FSERVICE_ACCOUNT_EMAIL%22

    여러 서비스 계정을 필터링하려면 %20OR%20을 사용하여 허용되는 전체 리소스 이름을 여러 개 지정합니다.

    activities.full_resource_name%3D%22%2F%2Fiam.googleapis.com%2Fprojects%2FPROJECT_ID%2FserviceAccounts%2FSERVICE_ACCOUNT_1_EMAIL%22%20OR%20activities.full_resource_name%3D%22%2F%2Fiam.googleapis.com%2Fprojects%2FPROJECT_ID%2FserviceAccounts%2FSERVICE_ACCOUNT_2_EMAIL%22

HTTP 메서드 및 URL:

GET https://policyanalyzer.googleapis.com/v1/projects/PROJECT_ID/locations/global/activityTypes/serviceAccountLastAuthentication/activities:query?filter=FILTER

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

응답에서 서비스 계정의 최근 사용을 설명합니다.

{
  "activities": [
    {
      "fullResourceName": "//iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com",
      "activityType": "serviceAccountLastAuthentication",
      "observationPeriod": {
        "startTime": "2020-04-20T07:00:00Z",
        "endTime": "2021-05-17T07:00:00Z"
      },
      "activity": {
        "lastAuthenticatedTime": "2021-04-28T07:00:00Z",
        "serviceAccount": {
          "projectNumber": "123456789012",
          "fullResourceName": "//iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com",
          "serviceAccountId": "123456789012345678901"
        }
      }
    }
  ]
}

특정 서비스 계정 키의 최근 사용량 보기

특정 서비스 계정 키가 마지막으로 사용된 날짜를 찾으려면 최근 사용량을 보려는 서비스 계정 키를 확인한 다음 해당 ID를 사용하여 쿼리를 만듭니다.

JSON 키 파일이 있는 경우 파일의 private_key_id 필드에서 서비스 계정 키의 고유 ID를 찾을 수 있습니다.

JSON 키 파일이 없는 경우 다음 단계에 따라 서비스 계정 키의 고유 ID를 찾을 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 정책 분석기 페이지로 이동합니다.

    정책 분석기로 이동

  2. 최근 활동 분석에서 이 서비스 계정 키가 마지막으로 사용된 시기는 언제인가요?라는 라벨이 지정된 창을 찾고 해당 창에서 쿼리 만들기를 클릭합니다.

  3. 쿼리 범위 선택 상자에 서비스 계정 키를 분석하려는 프로젝트의 이름을 입력합니다.

  4. 서비스 계정 키 추가 섹션에서 서비스 계정 키 상자를 클릭합니다. 프로젝트의 모든 서비스 계정 키 목록이 표시됩니다. 이 목록에는 각 키와 연결된 프로젝트 및 서비스 계정도 포함됩니다.

  5. 최근 사용량을 보려는 키를 선택합니다.

  6. 선택사항: 2개 이상의 키에 대한 최근 사용량을 보려면 키 추가를 클릭하고 다른 키를 선택합니다. 한 번에 최대 10개의 키를 분석할 수 있습니다.

  7. 액세스 활동 쿼리 패널에서 쿼리 실행을 클릭합니다.

결과 페이지에 서비스 계정 키의 최근 사용량이 표시됩니다. 이러한 결과를 이해하는 방법은 이 페이지의 활동 이해를 참조하세요.

gcloud

먼저 최근 사용량을 확인할 서비스 계정 키를 확인합니다.

  1. 서비스 계정 키를 나열합니다.

    아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.

    • SERVICE_ACCOUNT_EMAIL: 키가 연결된 서비스 계정의 이메일 주소입니다.

    gcloud iam service-accounts keys list 명령어를 실행합니다.

    Linux, macOS 또는 Cloud Shell

    gcloud iam service-accounts keys list --iam-account=SERVICE_ACCOUNT_EMAIL

    Windows(PowerShell)

    gcloud iam service-accounts keys list --iam-account=SERVICE_ACCOUNT_EMAIL

    Windows(cmd.exe)

    gcloud iam service-accounts keys list --iam-account=SERVICE_ACCOUNT_EMAIL

    출력에는 각 키의 고유 ID, 생성 시간, 만료 시간을 포함하여 서비스 계정과 관련된 모든 사용자 생성 키 목록이 표시됩니다.

  2. 출력의 데이터를 사용하여 추적할 키를 식별하고 고유 ID를 복사합니다.

서비스 계정 키의 고유 ID를 찾은 후 이 ID를 사용하여 활동 분석기의 결과를 필터링합니다.

특정 서비스 계정 키의 최근 인증 활동을 가져오려면 필터와 함께 gcloud policy-intelligence query-activity 명령어를 사용합니다.

아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트 ID. 프로젝트 ID는 my-project 같은 영숫자 문자열입니다.
  • FILTER: 사용을 확인할 서비스 계정 키의 전체 리소스 이름을 지정하는 필터입니다. 서비스 계정 키의 전체 리소스 이름에는 프로젝트 ID, 키와 연결된 서비스 계정의 이메일 주소, 키 ID가 포함됩니다.

    단일 서비스 계정 키를 필터링하려면 다음 형식의 필터를 사용합니다.

    activities.full_resource_name="//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL/keys/KEY_ID"

    여러 서비스 계정 키를 필터링하려면 OR을 사용하여 허용되는 전체 리소스 이름을 여러 개 지정합니다.

    activities.full_resource_name="//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_1_EMAIL/keys/KEY_ID_1" OR activities.full_resource_name="//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_2_EMAIL/keys/KEY_ID_2"

    최대 10개의 서비스 계정 키를 필터링할 수 있습니다.

다음 명령어를 실행합니다.

Linux, macOS 또는 Cloud Shell

gcloud policy-intelligence query-activity --activity-type=serviceAccountKeyLastAuthentication \
    --project=PROJECT_ID \
    --query-filter='FILTER'

Windows(PowerShell)

gcloud policy-intelligence query-activity --activity-type=serviceAccountKeyLastAuthentication `
    --project=PROJECT_ID `
    --query-filter='FILTER'

Windows(cmd.exe)

gcloud policy-intelligence query-activity --activity-type=serviceAccountKeyLastAuthentication ^
    --project=PROJECT_ID ^
    --query-filter='FILTER'

다음과 비슷한 응답이 표시됩니다.

activity:
  lastAuthenticatedTime: '2021-06-11T07:00:00Z'
  serviceAccountKey:
    fullResourceName: //iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com/keys/1c65fca351d6925e629059743428b7af243a728c
    projectNumber: '232342569935'
    serviceAccountId: '103185812403937829397'
activityType: serviceAccountKeyLastAuthentication
fullResourceName: //iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com/keys/1c65fca351d6925e629059743428b7af243a728c
observationPeriod:
  endTime: '2021-07-06T07:00:00Z'
  startTime: '2020-09-10T07:00:00Z'

응답에서 서비스 계정 키의 최근 사용을 설명합니다. 이러한 결과를 이해하는 방법은 이 페이지의 활동 이해를 참조하세요.

REST

먼저 최근 사용량을 확인할 서비스 계정 키를 확인합니다.

  1. 서비스 계정 키를 나열합니다.

    서비스 계정의 모든 서비스 계정 키를 나열하려면 IAM API의 projects.serviceAccounts.keys.list 메서드를 사용합니다.

    요청 데이터를 사용하기 전에 다음을 바꿉니다.

    • PROJECT_ID: Google Cloud 프로젝트 ID. 프로젝트 ID는 my-project 같은 영숫자 문자열입니다.
    • SA_NAME: 키를 나열하려는 서비스 계정의 이름입니다.
    • KEY_TYPES: 선택사항. 응답에 포함할 키 유형의 쉼표로 구분된 목록입니다. 키 유형은 키가 사용자 관리(USER_MANAGED)인지 시스템 관리(SYSTEM_MANAGED)인지를 나타냅니다. 비워두면 모든 키가 반환됩니다.

    HTTP 메서드 및 URL:

    GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys?keyTypes=KEY_TYPES

    요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

    응답에서 서비스 계정 키의 최근 사용을 설명합니다.

    {
      "keys": [
        {
          "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/90c48f61c65cd56224a12ab18e6ee9ca9c3aee7c",
          "validAfterTime": "2020-03-04T17:39:47Z",
          "validBeforeTime": "9999-12-31T23:59:59Z",
          "keyAlgorithm": "KEY_ALG_RSA_2048",
          "keyOrigin": "GOOGLE_PROVIDED",
          "keyType": "USER_MANAGED"
        },
        {
          "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/e5e3800831ac1adc8a5849da7d827b4724b1fce8",
          "validAfterTime": "2020-03-31T23:50:09Z",
          "validBeforeTime": "9999-12-31T23:59:59Z",
          "keyAlgorithm": "KEY_ALG_RSA_2048",
          "keyOrigin": "GOOGLE_PROVIDED",
          "keyType": "USER_MANAGED"
        },
        {
          "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/b97699f042b8eee6a846f4f96259fbcd13e2682e",
          "validAfterTime": "2020-05-17T18:58:13Z",
          "validBeforeTime": "9999-12-31T23:59:59Z",
          "keyAlgorithm": "KEY_ALG_RSA_2048",
          "keyOrigin": "GOOGLE_PROVIDED",
          "keyType": "USER_MANAGED",
          "disabled": true
        }
      ]
    }
    

  2. 응답의 메타데이터를 사용하여 추적할 키를 식별합니다. 그런 다음 name 필드 끝에서 키의 고유 ID를 복사합니다.

    name 필드의 형식은 다음과 같습니다.

    "name": "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL/keys/KEY_ID"
    

    키의 고유 ID는 keys/ 이후의 모든 문자입니다.

    예를 들어 다음 키 이름의 고유 ID는 0f561cc41650ff521899de2fd653bd3de08e2da4입니다.

    "name": "projects/my-project/serviceAccounts/my-account@my-project.iam.gserviceaccount.com/keys/0f561cc41650ff521899de2fd653bd3de08e2da4"
    

서비스 계정 키의 고유 ID를 찾은 후 이 ID를 사용하여 활동 분석기의 결과를 필터링합니다.

특정 서비스 계정 키의 최근 인증 활동을 가져오려면 Policy Analyzer API의 activities.query 메서드를 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트 ID. 프로젝트 ID는 my-project 같은 영숫자 문자열입니다.
  • FILTER: 사용을 확인할 서비스 계정 키의 전체 리소스 이름을 지정하는 필터입니다. 서비스 계정 키의 전체 리소스 이름에는 프로젝트 ID, 키와 연결된 서비스 계정의 이메일 주소, 키 ID가 포함됩니다.

    단일 서비스 계정 키를 필터링하려면 다음 형식의 필터를 사용합니다.

    activities.full_resource_name%3D%22%2F%2Fiam.googleapis.com%2Fprojects%2FPROJECT_ID%2FserviceAccounts%2FSERVICE_ACCOUNT_EMAIL%2Fkeys%2FKEY_ID%22

    여러 서비스 계정 키를 필터링하려면 %20OR%20을 사용하여 허용되는 전체 리소스 이름을 여러 개 지정합니다.

    activities.full_resource_name%3D%22%2F%2Fiam.googleapis.com%2Fprojects%2FPROJECT_ID%2FserviceAccounts%2FSERVICE_ACCOUNT_1_EMAIL%2Fkeys%2FKEY_ID_1%22%20OR%20activities.full_resource_name%3D%22%2F%2Fiam.googleapis.com%2Fprojects%2FPROJECT_ID%2FserviceAccounts%2FSERVICE_ACCOUNT_2_EMAIL%2Fkeys%2FKEY_ID_2%22

    최대 10개의 서비스 계정 키를 필터링할 수 있습니다.

HTTP 메서드 및 URL:

GET https://policyanalyzer.googleapis.com/v1/projects/PROJECT_ID/locations/global/activityTypes/serviceAccountKeyLastAuthentication/activities:query?filter=FILTER

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

응답에서 서비스 계정 키의 최근 사용을 설명합니다.

{
  "activities": [
    {
      "activity": {
        "lastAuthenticatedTime": "2021-06-11T07:00:00Z",
        "serviceAccountKey": {
          "fullResourceName": "//iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1@my-project.iam.gserviceaccount.com/keys/1c65fca351d6925e629059743428b7af243a728c",
          "projectNumber": "123456789012",
          "serviceAccountId": "123456789012345678901"
        }
      },
      "activityType": "serviceAccountKeyLastAuthentication",
      "fullResourceName": "//iam.googleapis.com/projects/my-project/serviceAccounts/service-account-1t@my-project.iam.gserviceaccount.com/keys/1c65fca351d6925e629059743428b7af243a728c",
      "observationPeriod": {
        "endTime": "2021-07-06T07:00:00Z",
        "startTime": "2020-04-20T07:00:00Z"
      }
    }
  ]
}

이러한 결과를 이해하는 방법은 이 페이지의 활동 이해를 참조하세요.

활동 이해

콘솔

쿼리 결과 페이지에는 쿼리 매개변수와 쿼리 결과가 나열됩니다.

서비스 계정 쿼리의 경우 결과 표에 쿼리의 각 서비스 계정과 마지막 인증 시간이 나열됩니다.

서비스 계정 키 쿼리의 경우 결과 표에 쿼리의 각 서비스 계정 키, 연결된 서비스 계정, 마지막 인증 시간이 표시됩니다.

가장 최근의 인증 이벤트가 결과에 포함되지 않을 수 있습니다. 도움말에서 분석 중에 사용된 정확한 기간을 확인하세요. 이 범위 외부에서 발생한 인증 이벤트는 결과에 포함되지 않습니다.

두 쿼리의 결과 표에는 서비스 계정이 프로젝트에 대해 갖는 IAM 역할과 해당 보안 통계가 나열됩니다. 이러한 통계는 서비스 계정이 리소스에 액세스하는 패턴을 강조 표시합니다. 예를 들어 일부 통계는 과도한 권한 또는 주 구성원에게 필요 없는 권한을 강조표시합니다. 다른 통계는 측면 이동 권한이 있는 서비스 계정 또는 서비스 계정이 다른 프로젝트의 서비스 계정을 가장할 수 있게 해주는 권한을 강조 표시합니다.

일부 통계에는 과도한 권한을 줄이기 위한 변경 사항을 제안하는 역할 권장사항도 제공됩니다. 권장사항 및 통계를 관리하는 방법을 알아보려면 권장사항 검토 및 적용을 참조하세요.

gcloud

활동 분석기에서 결과를 활동 목록으로 보고합니다. 활동에는 다음과 같은 필드가 있습니다.

  • fullResourceName: 활동이 보고되는 서비스 계정 또는 서비스 계정 키의 전체 리소스 이름입니다. 이 형식은 다음 섹션과 전체 리소스 이름에 설명되어 있습니다.
  • activityType: 보고되는 활동 유형입니다. 최근 서비스 계정 인증 활동에서 값은 serviceAccountLastAuthentication입니다. 최근 서비스 계정 키 인증 활동의 경우 값은 serviceAccountKeyLastAuthentication입니다.
  • observationPeriod: 서비스 계정 또는 키가 활동에서 관찰된 시간을 나타내는 시작 및 종료 시간입니다. 이러한 타임스탬프의 시간은 항상 T07:00:00Z입니다.
  • activity: 활동의 세부정보입니다. 이 필드의 콘텐츠는 활동 유형에 따라 다릅니다. 자세한 내용은 다음 섹션을 참조하세요.

서비스 계정 활동 세부정보

serviceAccountLastAuthentication 활동의 activity 필드에는 다음 필드가 포함됩니다.

  • serviceAccount: 다음을 포함한 활동이 보고되는 서비스 계정에 대한 세부정보입니다.

    • fullResourceName: 서비스 계정의 전체 리소스 이름이며 형식은 //iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL입니다.
    • projectNumber: 서비스 계정을 소유하는 프로젝트의 숫자 ID입니다.
    • serviceAccountId: 서비스 계정의 숫자 ID입니다.
  • lastAuthenticatedTime: 최근 인증 이벤트가 발생한 날짜를 나타내는 타임스탬프입니다. 이 타임스탬프의 시간은 인증 이벤트의 정확한 시간에 관계없이 항상 T07:00:00Z입니다.

    가장 최근의 인증 이벤트가 결과에 포함되지 않을 수 있습니다. observationPeriod를 확인하여 분석 중에 사용된 정확한 기간을 확인합니다. 이 범위 외부에서 발생한 인증 이벤트는 결과에 포함되지 않습니다.

    사용한 적이 없는 서비스 계정에는 이 필드가 포함되지 않습니다.

서비스 계정 키 활동 세부정보

serviceAccountKeyLastAuthentication 활동의 activity 필드에는 다음 필드가 포함됩니다.

  • serviceAccountKey: 다음을 포함한 활동이 보고되는 서비스 계정 키에 대한 세부정보입니다.

    • fullResourceName: 서비스 계정 키의 전체 리소스 이름이며 형식은 //iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL/keys/KEY_ID입니다.
    • projectNumber: 키가 연결된 서비스 계정을 소유하는 프로젝트의 숫자 ID입니다.
    • serviceAccountId: 키가 연결된 서비스 계정의 숫자 ID입니다.
  • lastAuthenticatedTime: 최근 인증 이벤트가 발생한 날짜를 나타내는 타임스탬프입니다. 이 타임스탬프의 시간은 인증 이벤트의 정확한 시간에 관계없이 항상 T07:00:00Z입니다.

    가장 최근의 인증 이벤트가 결과에 포함되지 않을 수 있습니다. observationPeriod를 확인하여 분석 중에 사용된 정확한 기간을 확인합니다. 이 범위 외부에서 발생한 인증 이벤트는 결과에 포함되지 않습니다.

    사용한 적이 없는 서비스 계정 키에는 이 필드가 포함되지 않습니다.

REST

활동 분석기에서 결과를 활동 목록으로 보고합니다. 활동에는 다음과 같은 필드가 있습니다.

  • fullResourceName: 활동이 보고되는 서비스 계정 또는 서비스 계정 키의 전체 리소스 이름입니다. 이 형식은 다음 섹션과 전체 리소스 이름에 설명되어 있습니다.
  • activityType: 보고되는 활동 유형입니다. 최근 서비스 계정 인증 활동에서 값은 serviceAccountLastAuthentication입니다. 최근 서비스 계정 키 인증 활동의 경우 값은 serviceAccountKeyLastAuthentication입니다.
  • observationPeriod: 서비스 계정 또는 키가 활동에서 관찰된 시간을 나타내는 시작 및 종료 시간입니다. 이러한 타임스탬프의 시간은 항상 T07:00:00Z입니다.
  • activity: 활동의 세부정보입니다. 이 필드의 콘텐츠는 활동 유형에 따라 다릅니다. 자세한 내용은 다음 섹션을 참조하세요.

서비스 계정 활동 세부정보

serviceAccountLastAuthentication 활동의 activity 필드에는 다음 필드가 포함됩니다.

  • serviceAccount: 다음을 포함한 활동이 보고되는 서비스 계정에 대한 세부정보입니다.

    • fullResourceName: 서비스 계정의 전체 리소스 이름이며 형식은 //iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL입니다.
    • projectNumber: 서비스 계정을 소유하는 프로젝트의 숫자 ID입니다.
    • serviceAccountId: 서비스 계정의 숫자 ID입니다.
  • lastAuthenticatedTime: 최근 인증 이벤트가 발생한 날짜를 나타내는 타임스탬프입니다. 이 타임스탬프의 시간은 인증 이벤트의 정확한 시간에 관계없이 항상 T07:00:00Z입니다.

    가장 최근의 인증 이벤트가 결과에 포함되지 않을 수 있습니다. observationPeriod를 확인하여 분석 중에 사용된 정확한 기간을 확인합니다. 이 범위 외부에서 발생한 인증 이벤트는 결과에 포함되지 않습니다.

    사용한 적이 없는 서비스 계정에는 이 필드가 포함되지 않습니다.

서비스 계정 키 활동 세부정보

serviceAccountKeyLastAuthentication 활동의 activity 필드에는 다음 필드가 포함됩니다.

  • serviceAccountKey: 다음을 포함한 활동이 보고되는 서비스 계정 키에 대한 세부정보입니다.

    • fullResourceName: 서비스 계정 키의 전체 리소스 이름이며 형식은 //iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL/keys/KEY_ID입니다.
    • projectNumber: 키가 연결된 서비스 계정을 소유하는 프로젝트의 숫자 ID입니다.
    • serviceAccountId: 키가 연결된 서비스 계정의 숫자 ID입니다.
  • lastAuthenticatedTime: 최근 인증 이벤트가 발생한 날짜를 나타내는 타임스탬프입니다. 이 타임스탬프의 시간은 인증 이벤트의 정확한 시간에 관계없이 항상 T07:00:00Z입니다.

    가장 최근의 인증 이벤트가 결과에 포함되지 않을 수 있습니다. observationPeriod를 확인하여 분석 중에 사용된 정확한 기간을 확인합니다. 이 범위 외부에서 발생한 인증 이벤트는 결과에 포함되지 않습니다.

    사용한 적이 없는 서비스 계정 키에는 이 필드가 포함되지 않습니다.

다음 단계