문제해결

다음은 Cloud Asset API를 사용할 때 발생할 수 있는 일반적인 문제와 그 처리 방법입니다.

요청에 잘못된 사용자 인증 정보가 포함되어 있습니다

OAuth 헤더를 제대로 설정하지 않은 경우 호출하면 다음 오류가 반환됩니다.

{
  "error": {
    "code": 401,
    "message": "Request had invalid authentication credentials. Expected
               OAuth 2 access token, login cookie or other valid
               authentication credential. See
               https://developers.google.com/identity/sign-in/web/devconsole-project.",
    "status": "UNAUTHENTICATED",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.DebugInfo",
        "detail": "Authentication error: 2"
      }
    ]
  }
}

이 문제를 해결하려면 단계를 반복하여 초기 설정을 확인하세요.

호출자에게 권한이 없습니다

애셋을 내보내거나 조직, 프로젝트 또는 폴더에서 기록을 가져올 수 있는 권한이 없으면 오류가 반환됩니다.

예를 들어 권한이 없는 상태에서 다음 명령어를 실행할 경우

gcurl -d '{"outputConfig":{"gcsDestination": \
{"uri":gs://YOUR_BUCKET/NEW_FILE}}}' \
https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:exportAssets

다음과 같은 오류가 반환됩니다.

{
 "error": {
  "code": 403,
  "message": "The caller does not have permission",
  "status": "PERMISSION_DENIED",
  "details": [
   {
    "@type": "type.googleapis.com/google.rpc.DebugInfo",
    "detail": "[ORIGINAL ERROR] generic::permission_denied: Request
    denied by Cloud IAM."
   }
  ]
 }
}

이 문제를 해결하려면 프로젝트, 폴더 또는 조직 관리자에게 액세스 권한을 요청하세요. 내보내거나 기록을 가져오려는 애셋에 따라 다음 권한 중 하나가 필요합니다.

  • cloudasset.viewer
  • project.owner

역할 및 권한에 대한 자세한 내용은 역할 이해를 참조하세요.

Cloud Storage 파일에 쓸 수 없습니다

내보낸 파일을 저장하는 데 사용하는 Cloud Storage 버킷이 내보내기를 실행 중인 Cloud Asset API 지원 프로젝트에 없는 경우 요청을 수행하면 다음 권한 거부 오류가 발생합니다.

    {
     "error": {
      "code": 7,
      "message": "Failed to write to: YOUR_BUCKET/FILE",
     }
    }
    

이 문제를 해결하려면 내보내기를 실행 중인 Cloud Asset API 지원 프로젝트에 속하는 Cloud Storage 버킷을 사용하거나 service-PROJECT_NUMBER@gcp-sa-cloudasset.iam.gservice account.com 서비스 계정에 roles/storage.admin 역할을 부여합니다. PROJECT_NUMBER는 내보내기를 실행 중인 Cloud Asset API 지원 프로젝트의 프로젝트 번호입니다.

Cloud Asset API 결과가 오래되었습니다

Cloud Asset API의 데이터는 최선의 노력을 통해 최신 상태로 유지됩니다. 거의 모든 애셋 업데이트가 몇 분 안에 클라이언트에 제공되지만 간혹 ExportAssets 또는 BatchGetAssetsHistory 메소드의 결과에 최근의 애셋 업데이트가 포함되지 않는 경우가 있습니다.

최근의 애셋 업데이트를 가져오려면 Cloud Asset API 호출의 타임스탬프를 현재 타임스탬프의 2분 후로 조정합니다.

ExportAssets이 임시 파일을 출력합니다

ExportAssets 작업은 출력 폴더에 임시 파일을 만들 수 있습니다. 작업이 진행되는 동안 이 임시 파일을 삭제하지 마세요. 작업이 완료되면 임시 파일이 자동으로 삭제됩니다.

임시 파일이 그대로 남아 있는 경우 ExportAssets 작업이 완료된 후에 안전하게 삭제할 수 있습니다.

BatchGetAssetsHistory에 대한 요청 URL이 너무 깁니다

BatchGetAssetsHistory 메소드는 길이가 제한된 URL에서 모든 요청 데이터를 전송하는 HTTP GET 작업입니다. 따라서 요청이 너무 길면 오류가 발생합니다.

이 문제를 해결하려면 클라이언트 코드는 HTTP POST를 사용하여 X-HTTP-Method-Override: GET HTTP 헤더와 함께 Content-Type(application/x-www-form-urlencoded로 설정)이 포함된 요청을 보내야 합니다. 자세한 내용은 긴 요청 URL을 참조하세요.

다음은 HTTP POST를 사용하는 BatchGetAssetsHistory 요청의 예입니다.

curl -X POST -H "X-HTTP-Method-Override: GET" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -H "Authorization: Bearer " \
     -d 'assetNames=&contentType=1&readTimeWindow.startTime=2018-09-01T09:00:00Z' \
     https://cloudasset.googleapis.com/v1/projects/:batchGetAssetsHistory
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Resource Manager 문서