이 페이지에서는 서비스 계정 통계를 관리하는 방법을 보여줍니다. 이 통계는 프로젝트에서 이전 90일 동안 사용되지 않은 서비스 계정에 대한 발견 항목입니다.
서비스 계정에 바인딩된 API 키로 인증된 요청은 서비스 계정 사용량 측정항목에 기록되지 않습니다. 따라서 이러한 서비스 계정이 사용되지 않는 것으로 보고될 수 있습니다.
시작하기 전에
-
Enable the Recommender API.
- 선택사항: 추천자 통계를 읽습니다.
필요한 역할
서비스 계정 통계를 관리하는 데 필요한 권한을 얻으려면 관리자에게 통계를 관리할 프로젝트에 대한 다음의 IAM 역할을 부여해 달라고 요청하세요.
-
서비스 계정 통계 보기:
IAM 추천자 뷰어 (
roles/recommender.iamViewer
) -
서비스 계정 통계 수정: IAM 추천자 관리자 (
roles/recommender.iamAdmin
)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이러한 사전 정의된 역할에는 서비스 계정 통계를 관리하는 데 필요한 권한이 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
서비스 계정 통계를 관리하려면 다음 권한이 필요합니다.
-
서비스 계정 통계 보기:
-
recommender.iamServiceAccountinsights.get
-
recommender.iamServiceAccountinsights.list
-
-
서비스 계정 통계 수정:
recommender.iamServiceAccountinsights.update
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
서비스 계정 통계 나열
프로젝트의 모든 서비스 계정 통계를 나열하려면 다음 메서드 중 하나를 사용하세요.gcloud
gcloud recommender
insights list
명령어를 사용하여 프로젝트의 모든 서비스 계정 통계를 확인합니다.
명령어를 실행하기 전에 다음 값을 바꿉니다.
PROJECT_ID
: 통계를 나열하려는 프로젝트의 ID입니다.
gcloud recommender insights list --insight-type=google.iam.serviceAccount.Insight \ --project=PROJECT_ID \ --location=global
프로젝트에 대한 모든 서비스 계정 통계가 출력에 나열됩니다. 예를 들면 다음과 같습니다.
INSIGHT_ID CATEGORY INSIGHT_STATE LAST_REFRESH_TIME SEVERITY INSIGHT_SUBTYPE DESCRIPTION 446303ba-2a14-49cc-b9fa-e2d2499d4f82 SECURITY ACTIVE 2022-05-24T07:00:00Z LOW SERVICE_ACCOUNT_USAGE Service account sa-1@my-project.iam.gserviceaccount.com was inactive. 4cfd82c3-7320-4dc6-9b67-ca0756bbd54c SECURITY ACTIVE 2022-05-24T07:00:00Z LOW SERVICE_ACCOUNT_USAGE Service account sa-2@my-project.iam.gserviceaccount.com was inactive. a627bed7-c8f4-4611-89c9-2a9a8618ca1b SECURITY ACTIVE 2022-05-24T07:00:00Z LOW SERVICE_ACCOUNT_USAGE Service account sa-3@my-project.iam.gserviceaccount.com was inactive. a922dd59-df0a-422d-a2a4-096195e1dae5 SECURITY ACTIVE 2022-05-24T07:00:00Z LOW SERVICE_ACCOUNT_USAGE Service account sa-4@my-project.iam.gserviceaccount.com was inactive.
REST
Recommender API의 insights.list
메서드는 프로젝트의 모든 서비스 계정 통계를 나열합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID
: 통계를 나열하려는 프로젝트의 ID입니다.
HTTP 메서드 및 URL:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
응답에 프로젝트에 대한 모든 서비스 계정 통계가 나열됩니다. 예를 들면 다음과 같습니다.
{ "insights": [ { "name": "projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82", "description": "Service account sa-1@my-project.iam.gserviceaccount.com was inactive.", "content": { "serviceAccountId": "103185812403937829397", "email": "sa-1@my-project.iam.gserviceaccount.com", "lastAuthenticatedTime": "2020-09-11T07:00:00Z" }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "19008000s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "SERVICE_ACCOUNT_USAGE", "etag": "\"9d797dd04263c855\"", "severity": "LOW" }, { "name": "projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/4cfd82c3-7320-4dc6-9b67-ca0756bbd54c", "description": "Service account sa-2@my-project.iam.gserviceaccount.com was inactive.", "content": { "serviceAccountId": "105496400997178042131", "email": "sa-2@my-project.iam.gserviceaccount.com" }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "16070400s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "SERVICE_ACCOUNT_USAGE", "etag": "\"783a32b635d79a4e\"", "severity": "LOW" } ] }
통계 구성요소에 대한 자세한 설명은 이 페이지의 서비스 계정 통계 검토를 참조하세요.
단일 서비스 계정 통계 가져오기
통계 설명, 상태, 관련 권장사항을 포함하여 단일 통계에 대한 자세한 내용을 보려면 다음 메서드 중 하나를 사용하세요.
gcloud
통계 ID와 함께 gcloud recommender
insights describe
명령어를 사용하여 단일 통계에 대한 정보를 확인합니다.
-
INSIGHT_ID
: 보려는 통계의 ID입니다. ID를 찾으려면 프로젝트의 통계를 나열하세요. PROJECT_ID
: 통계를 관리하려는 프로젝트의 ID입니다.
gcloud recommender insights describe INSIGHT_ID \ --insight-type=google.iam.serviceAccount.Insight \ --project=PROJECT_ID \ --location=global
출력에 통계가 자세히 표시됩니다. 예를 들어 다음 통계는 2020년 10월 11일 이후에 서비스 계정 sa-1@my-project.iam.gserviceaccount.com
이 인증되지 않았음을 나타냅니다.
category: SECURITY content: email: sa-1@my-project.iam.gserviceaccount.com lastAuthenticatedTime: '2020-10-11T07:00:00Z' serviceAccountId: '103185812403937829397' description: Service account sa-1@my-project.iam.gserviceaccount.com was inactive. etag: '"9d797dd04263c855"' insightSubtype: SERVICE_ACCOUNT_USAGE lastRefreshTime: '2022-05-24T07:00:00Z' name: projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82 observationPeriod: 19008000s severity: LOW stateInfo: state: ACTIVE targetResources: - //cloudresourcemanager.googleapis.com/projects/123456789012
통계 구성요소에 대한 자세한 설명은 이 페이지의 서비스 계정 통계 검토를 참조하세요.
REST
Recommender API의 insights.get
메서드는 단일 통계를 가져옵니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
-
PROJECT_ID
: 통계를 관리하려는 프로젝트의 ID입니다. -
INSIGHT_ID
: 보려는 통계의 ID입니다. 통계 ID를 모르는 경우 프로젝트의 통계를 나열하여 찾을 수 있습니다. 통계 ID는 통계의name
필드에서insights/
다음에 오는 모든 문자입니다.
HTTP 메서드 및 URL:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/INSIGHT_ID
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
응답에 통계가 포함됩니다. 예를 들어 다음 통계는 2020년 10월 11일 이후에 서비스 계정 sa-1@my-project.iam.gserviceaccount.com
이 인증되지 않았음을 나타냅니다.
{ "name": "projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82", "description": "Service account sa-1@my-project.iam.gserviceaccount.com was inactive.", "content": { "serviceAccountId": "103185812403937829397", "email": "sa-1@my-project.iam.gserviceaccount.com", "lastAuthenticatedTime": "2020-09-11T07:00:00Z" }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "19008000s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "SERVICE_ACCOUNT_USAGE", "etag": "\"9d797dd04263c855\"", "severity": "LOW" }
통계 구성요소에 대한 자세한 설명은 이 페이지의 서비스 계정 통계 검토를 참조하세요.
서비스 계정 통계 검토
단일 통계를 가져온 후 콘텐츠를 검토하여 강조표시되는 리소스 사용량 패턴을 파악할 수 있습니다.
통계의 콘텐츠는 하위유형에 따라 결정됩니다.
서비스 계정 통계(google.iam.serviceAccount.Insight
)의 통계에는 SERVICE_ACCOUNT_USAGE
하위유형이 있습니다.
SERVICE_ACCOUNT_USAGE
통계에는 다음과 같은 구성요소가 있습니다(순서는 다름).
-
associatedRecommendations
: 통계와 연결된 모든 권장사항의 식별자입니다. 통계와 연결된 권장사항이 없으면 이 필드는 비어 있습니다. category
: IAM 통계의 카테고리는 항상SECURITY
입니다.-
content
: 서비스 계정이 마지막으로 인증된 시간을 보고합니다. 이 필드에는 다음 구성요소가 포함됩니다.email
: 서비스 계정의 이메일 주소입니다.lastAuthenticatedTime
: 서비스 계정이 인증된 가장 최근 시간입니다. 서비스 계정에 기록된 인증이 없으면 이 필드가 포함되지 않습니다.serviceAccountId
: 서비스 계정의 고유 숫자 ID입니다.
-
description
: 인간이 읽을 수 있는 통계 요약입니다. -
etag
: 통계의 현재 상태에 대한 고유 식별자입니다. 통계가 변경될 때마다 새etag
값이 할당됩니다.통계 상태를 변경하려면 기존 통계의
etag
를 제공해야 합니다.etag
를 사용하면 마지막으로 검색한 후 통계가 변경되지 않은 경우에만 작업이 수행됩니다. -
insightSubtype
: 통계 하위유형입니다. -
lastRefreshTime
: 통계가 마지막으로 갱신된 날짜로, 통계를 생성하는 데 사용된 데이터의 최신 상태를 나타냅니다. -
name
: 다음 형식의 통계 이름입니다.projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/INSIGHT_ID
자리표시자의 값은 다음과 같습니다.
PROJECT_ID
: 통계가 생성된 프로젝트의 ID입니다.INSIGHT_ID
: 통계의 고유 ID입니다.
-
observationPeriod
: 통계까지 이어지는 기간입니다. 통계를 생성하는 데 사용되는 소스 데이터는lastRefreshTime
에 종료되며lastRefreshTime
에서observationPeriod
를 뺀 시간에 시작합니다. -
stateInfo
: 통계는 제안된 후 여러 상태로 전환됩니다.-
ACTIVE
: 통계가 생성되지만 작업이 수행되지 않았거나 통계의 상태를 업데이트하지 않고 작업이 수행되었습니다. 활성 통계는 기본 데이터가 변경되면 업데이트됩니다. -
ACCEPTED
: 통계를 기반으로 몇몇 작업이 실행되었습니다. 통계가 수락되는 것은 관련 권장사항이CLAIMED
,SUCCEEDED
또는FAILED
로 표시되었거나 통계가 직접 수락된 경우입니다. 통계 상태가ACCEPTED
일 때는 통계 내용을 변경할 수 없습니다. 수락된 통계는 수락된 날로부터 90일 동안 보관됩니다.
-
-
targetResources
: 통계의 대상인 프로젝트의 전체 리소스 이름입니다. 예를 들면//cloudresourcemanager.googleapis.com/projects/123456789012
입니다.
서비스 계정 통계를 ACCEPTED
로 표시
활성 통계를 기반으로 작업을 수행하는 경우 통계를 ACCEPTED
로 표시할 수 있습니다. ACCEPTED
상태는 이 통계를 기반으로 작업을 수행했음을 Recommender API에 알려주므로 권장사항을 개선하는 데 도움이 됩니다.
허용된 통계는 ACCEPTED
로 표시된 후 90일 동안 보관됩니다.
gcloud
통계 ID와 함께 gcloud recommender insights mark-accepted
명령어를 사용하여 통계를 ACCEPTED
로 표시합니다.
-
INSIGHT_ID
: 보려는 통계의 ID입니다. ID를 찾으려면 프로젝트의 통계를 나열하세요. PROJECT_ID
: 통계를 관리하려는 프로젝트의 ID입니다.-
ETAG
: 통계 버전의 식별자입니다.etag
를 가져오려면 다음 안내를 따르세요.-
gcloud recommender insights describe
명령어를 사용하여 통계를 가져옵니다. -
출력에서
etag
값(큰따옴표 포함)을 찾아 복사합니다. 예를 들면"d3cdec23cc712bd0"
입니다.
-
gcloud recommender insights mark-accepted INSIGHT_ID \ --insight-type=google.iam.serviceAccount.Insight \ --project=PROJECT_ID \ --location=global \ --etag=ETAG
출력에 ACCEPTED
상태와 함께 통계가 표시됩니다.
category: SECURITY content: email: sa-1@my-project.iam.gserviceaccount.com lastAuthenticatedTime: '2020-10-11T07:00:00Z' serviceAccountId: '103185812403937829397' description: Service account sa-1@my-project.iam.gserviceaccount.com was inactive. etag: '"39c4199dcec92848"' insightSubtype: SERVICE_ACCOUNT_USAGE lastRefreshTime: '2022-05-24T07:00:00Z' name: projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82 observationPeriod: 19008000s severity: LOW stateInfo: state: ACCEPTED targetResources: - //cloudresourcemanager.googleapis.com/projects/123456789012
통계의 상태 정보에 대한 상세 설명은 이 페이지의 서비스 계정 통계 검토를 참조하세요.
REST
Recommender API의 insights.markAccepted
메서드는 통계를 ACCEPTED
로 표시합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
-
PROJECT_ID
: 통계를 관리하려는 프로젝트의 ID입니다. -
INSIGHT_ID
: 보려는 통계의 ID입니다. 통계 ID를 모르는 경우 프로젝트의 통계를 나열하여 찾을 수 있습니다. 통계 ID는 통계의name
필드에서insights/
다음에 오는 모든 문자입니다. -
ETAG
: 통계 버전의 식별자입니다.etag
를 가져오려면 다음을 실행합니다.insights.get
메서드를 사용하여 통계를 가져옵니다.- 응답에서
etag
값을 찾아서 복사합니다.
HTTP 메서드 및 URL:
POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/INSIGHT_ID:markAccepted
JSON 요청 본문:
{ "etag": "ETAG" }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
응답에 통계가 포함됩니다. 이제 상태가 ACCEPTED
입니다.
{ "name": "projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82", "description": "Service account sa-1@my-project.iam.gserviceaccount.com was inactive.", "content": { "serviceAccountId": "103185812403937829397", "email": "sa-1@my-project.iam.gserviceaccount.com", "lastAuthenticatedTime": "2020-10-11T07:00:00Z" }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "19008000s", "stateInfo": { "state": "ACCEPTED" }, "category": "SECURITY", "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "SERVICE_ACCOUNT_USAGE", "etag": "\"39c4199dcec92848\"", "severity": "LOW" }
통계의 상태 정보에 대한 상세 설명은 이 페이지의 서비스 계정 통계 검토를 참조하세요.
다음 단계
- 사용 가능한 다른 서비스 계정 사용 확인 도구 검토
- 권장사항 허브를 사용하여 IAM 권장사항을 포함한 프로젝트의 모든 권장사항을 열람하고 관리하기