SERVER/구글 클라우드 플랫폼 GCP

구글 스프레드시트 gcp 권한 삽입중 disableServiceAccountKeyCreation 인한 문제 해결 - 조직 정책 관리자 넣기

벨포트조던 2025. 11. 25.
반응형

정책을 수정하려면 orgpolicy.policy.get, orgpolicy.policies.create, orgpolicy.policies.delete 및 orgpolicy.policies.update 권한이 필요합니다.

 

이런 메시지가 나왔다.

 

우선 내가하려는건 코드로 스프레드시트 접근하려는건데, 개인계정은 간단하게 되었는데,  워크스페이스 계정은 간단하게 안되더라고... 권한때문인데.. 

 

우선 

 

구글 스프레드시트 접근 권한 받는방법 정리한다

 

 

1. Google Cloud 프로젝트 만들기

  1. 브라우저에서 Google Cloud Console 접속
  2. 상단 프로젝트 선택 버튼 클릭 → 새 프로젝트 만들기
  3. 이름 아무거나 정하고 생성
    • 예: sheets-python-access

2. Google Sheets API & Drive API 활성화

  1. 방금 만든 프로젝트 선택한 상태에서
  2. 왼쪽 메뉴 → API 및 서비스 → 라이브러리
  3. 검색창에 Google Sheets API 검색 → 사용 클릭
  4. 다시 검색창에 Google Drive API 검색 → 사용 클릭

✅ 이유:

  • Sheets API = 시트 내용 읽기/쓰기
  • Drive API = 파일 리스트 등 접근 권한 처리에 필요해서 같이 켜두는 게 안정적

3. 서비스 계정(Service Account) 만들기

  1. 메뉴 → API 및 서비스 → 사용자 인증 정보
  2. 상단 + 사용자 인증 정보 만들기서비스 계정 선택
  3. 서비스 계정 이름 입력
    • 예: sheets-python-bot
  4. 만들기 계속 → 역할은 일단 생략해도 됨(나중에 필요하면 추가)
  5. 완료 후, 방금 만든 서비스 계정 상세 화면으로 들어간다.

4. 서비스 계정 키(JSON) 발급

  1. 서비스 계정 상세 화면에서 탭으로 이동
  2. 키 추가 → 새 키 만들기 클릭
  3. 키 유형: JSON 선택 → 만들기
  4. .json 파일이 다운로드됨 → 이게 파이썬에서 사용할 인증 키 파일

⚠️ 이 파일은 노출되면 안 되는 “비밀번호 덩어리”라서

  • 깃허브에 올리지 말기
  • 공유폴더에 막 뿌리지 말기

5. 스프레드시트에 서비스 계정 이메일 공유하기 (중요 포인트)

여기서가 “접근권한 요청”의 핵심이야.

  1. 아까 만든 서비스 계정 상세 화면 상단에
    • 서비스 계정 이메일 이 있음
    • 예: sheets-python-bot@myproject-123456.iam.gserviceaccount.com
  2. 구글 스프레드시트 열기
  3. 우측 상단 공유 버튼 클릭
  4. 사람 추가 입력란에
    • 위의 서비스 계정 이메일을 그대로 붙여넣기
  5. 권한을 보기 또는 편집으로 지정 (보통 편집)
  6. 초대/공유 클릭

이렇게 하면:

“사람이 로그인하는 게 아니라,
이 서비스 계정이 마치 사람처럼 시트에 초대된 것”

이 되는 거라, 파이썬에서 이 계정의 키(JSON)로 인증하면
해당 시트에 접근 가능해진다.

 

 

7. 요약 한 줄로 정리하면

  • 클라우드 콘솔에서 서비스 계정 + JSON 키 만들기
  • 그 서비스 계정 이메일을 스프레드시트에 “공유”로 초대하기
  • 파이썬에서 그 JSON 키를 사용해 인증 → 시트 읽기/쓰기

이 세 줄만 이해하면 전체 흐름이 머리에 들어올 거야.

 


이건데 포인트는 권한이 입력이 안되는거다

 

https://docs.sophos.com/central/customer/help/ko-kr/PeopleAndDevices/DirectoryService/SetUpSynchronizationWithGoogleDirectory/GDDisablePolicy/index.html

 

서비스 계정 키 생성 사용 중지됨 조직에 서비스 계정 키 생성을 차단하는 조직 정책이 적용되었습니다. 적용된 조직 정책 ID: iam.managed.disableServiceAccountKeyCreation 가능한 원인: 서비스 계정 키와 관련된 보안 사고를 방지하기 위해 조직 정책 관리자가 조직 정책을 적용했습니다. 또는 보안을 우선으로 하는 기본 설정 적용 의 일부로 조직에 정책이 자동으로 적용되었을 수도 있습니다. 권장되는 다음 단계: 서비스 계정 키를 제대로 관리하지 않을 경우 보안상 위험할 수 있습니다. 가능한 경우 보다 안전한 대안 을 선택해야 합니다. 서비스 계정 키로 인증해야 하는 경우 조직의 '조직 정책 관리자'(roles/orgpolicy.policyAdmin) 역할이 있는 관리자가 위에 언급된 제약 조건을 사용 중지 해야 합니다. 추적 번호: c7328170230390178

 

 

이런건데.... 내가 루트 권한인데 권한이 없는게 이상하지 ? 권한을 넣어줘야해 

 

 

우선 이게 비활성화 되는게 정상이다

 

disableServiceAccountKeyCreation 이것때문이다

 

 

  • 에러에 찍힌 정책 ID가 iam.managed.disableServiceAccountKeyCreation 이므로
    → **정책이 아직 “키 생성 차단 중”**이라는 뜻이고, 딜레이 문제가 아님.
  • 해야 할 것:
    1. 조직/프로젝트의 조직 정책에서
      • iam.managed.disableServiceAccountKeyCreation
      • iam.disableServiceAccountKeyCreation
        둘 다 Not enforced(사용 중지) 로 변경
    2. 그 다음, 본인 계정에 iam.serviceAccountKeys.create가 포함된 역할(예: Service Account Key Admin) 부여
  • 이렇게 해놓고 나면, 서비스 계정 화면 → 키 탭에서
    “키 추가 → 새 키 만들기 → JSON” 이 정상적으로 동작해야 합니다.

 

좌 상단 보이지 ? 저기 누르면 리소스를 선택하는데, 워크스페이스는 프로젝트 위에 조직이 있다. 이 조직을 누르고 

i am 을 들어가서 권한을 넣어줘야해

 

프로젝트에는 해당 권한이 안보인다

 

조직 정책 관리자 를 넣어야한다 

 

반응형

댓글