IAM으로 액세스 제어

이 문서에서는 Secret Manager에서 사용할 수 있는 액세스 제어 옵션을 설명합니다.

IAM 역할 할당

Secret Manager는 액세스 제어에 Identity and Access Management(IAM)를 사용합니다. 보안 비밀을 생성, 관리, 나열 또는 액세스하려면 프로젝트 수준과 개별 리소스 수준에서 적절한 IAM 권한을 부여해야 합니다. 사전 정의된 역할을 하나 이상 부여하거나 커스텀 역할을 만들고 부여할 수 있습니다. 보안 비밀 버전에 IAM 역할을 부여할 수 없습니다.

역할을 추가하려면 다음 안내를 따르세요.

  1. Google Cloud Console의 IAM 페이지로 이동합니다.

    IAM으로 이동

  2. 페이지 상단의 프로젝트 선택기 목록을 클릭합니다.

  3. 선택 대화상자가 나타나면 Secret Manager를 사용 설정하려는 조직을 선택합니다.

  4. 사용자 이름 옆에 있는IAM 페이지에서 수정을 클릭합니다.

  5. 표시된 권한 수정 패널에서 필요한 역할을 추가합니다.

    1. 다른 역할 추가를 클릭합니다. Secret Manager 보안 비밀 접근자와 같은 추가할 역할을 선택합니다.

    2. 역할을 더 추가하려면 이전 단계를 반복합니다. 저장을 클릭합니다.

ID 및 액세스 관리(IAM) 역할에서는 Secret Manager API를 사용할 수 있는 방법을 지정합니다. 다음 표에는 Secret Manager에 사용할 수 있는 각 IAM 역할과 해당 역할에 부여된 기능이 나열되어 있습니다.

Role Permissions

(roles/secretmanager.admin)

Full access to administer Secret Manager resources.

Lowest-level resources where you can grant this role:

  • Secret

resourcemanager.projects.get

resourcemanager.projects.list

secretmanager.*

  • secretmanager.locations.get
  • secretmanager.locations.list
  • secretmanager.secrets.create
  • secretmanager.secrets.createTagBinding
  • secretmanager.secrets.delete
  • secretmanager.secrets.deleteTagBinding
  • secretmanager.secrets.get
  • secretmanager.secrets.getIamPolicy
  • secretmanager.secrets.list
  • secretmanager.secrets.listEffectiveTags
  • secretmanager.secrets.listTagBindings
  • secretmanager.secrets.setIamPolicy
  • secretmanager.secrets.update
  • secretmanager.versions.access
  • secretmanager.versions.add
  • secretmanager.versions.destroy
  • secretmanager.versions.disable
  • secretmanager.versions.enable
  • secretmanager.versions.get
  • secretmanager.versions.list

(roles/secretmanager.secretAccessor)

Allows accessing the payload of secrets.

Lowest-level resources where you can grant this role:

  • Secret

resourcemanager.projects.get

resourcemanager.projects.list

secretmanager.versions.access

(roles/secretmanager.secretVersionAdder)

Allows adding versions to existing secrets.

Lowest-level resources where you can grant this role:

  • Secret

resourcemanager.projects.get

resourcemanager.projects.list

secretmanager.versions.add

(roles/secretmanager.secretVersionManager)

Allows creating and managing versions of existing secrets.

Lowest-level resources where you can grant this role:

  • Secret

resourcemanager.projects.get

resourcemanager.projects.list

secretmanager.versions.add

secretmanager.versions.destroy

secretmanager.versions.disable

secretmanager.versions.enable

secretmanager.versions.get

secretmanager.versions.list

(roles/secretmanager.viewer)

Allows viewing metadata of all Secret Manager resources

Lowest-level resources where you can grant this role:

  • Secret

resourcemanager.projects.get

resourcemanager.projects.list

secretmanager.locations.*

  • secretmanager.locations.get
  • secretmanager.locations.list

secretmanager.secrets.get

secretmanager.secrets.getIamPolicy

secretmanager.secrets.list

secretmanager.secrets.listEffectiveTags

secretmanager.secrets.listTagBindings

secretmanager.versions.get

secretmanager.versions.list

최소 권한 원칙

최소 권한의 원칙을 따르면 지정된 태스크를 수행하는 데 필요한 최소 수준의 액세스 권한이 부여됩니다. 예를 들어 주 구성원이 단일 보안 비밀에 액세스해야 하는 경우 주 구성원에게 프로젝트 또는 조직의 다른 보안 비밀이나 모든 보안 비밀에 대한 액세스 권한을 부여하지 마세요. 주 구성원이 보안 비밀만 읽어야 하는 경우에는 주 구성원에게 보안 비밀 수정할 수 있는 권한을 부여하지 마세요.

IAM을 사용하여 Google Cloud 보안 비밀, 프로젝트, 폴더 또는 조직 수준의 IAM 역할과 권한을 부여할 수 있습니다. 항상 리소스 계층 구조에서 가장 낮은 수준의 권한을 적용합니다.

다음 표에서는 Secret Manager 보안 비밀 접근자 역할(roles/secretmanager.secretAccessor)이 부여된 리소스 계층 구조의 수준을 기준으로 서비스 계정의 효과적인 기능을 보여줍니다.

리소스 계층 구조 역량
비밀번호 보안 비밀에만 액세스
프로젝트 프로젝트의 모든 보안 비밀에 액세스
폴더 폴더 내 모든 프로젝트의 모든 보안 비밀에 액세스
조직 조직 내 모든 프로젝트의 모든 보안 비밀에 액세스

주 구성원이 단일 보안 비밀 값에만 액세스해야 하는 경우 주 구성원에게 모든 보안 비밀에 액세스할 수 있는 권한을 부여하지 마세요. 예를 들어 서비스 계정에 단일 보안 비밀의 Secret Manager 보안 비밀 접근자 역할(roles/secretmanager.secretAccessor)을 부여할 수 있습니다.

주 구성원이 단일 보안 비밀만 관리해야 하는 경우 주 구성원에게 모든 보안 비밀을 관리할 수 있는 권한을 부여하지 마세요. 예를 들어 서비스 계정에 단일 보안 비밀의 Secret Manager 관리 역할(roles/secretmanager.admin)을 부여할 수 있습니다.

IAM 조건

IAM 조건을 사용하면 Secret Manager 리소스를 비롯한 일부 Google Cloud 리소스에 조건부 속성 기반 액세스 제어를 정의하고 적용할 수 있습니다.

Secret Manager에서 다음 속성을 기준으로 조건부 액세스를 적용할 수 있습니다.

  • 날짜/시간 속성: Secret Manager 리소스에 만료, 예약 또는 기간 제한 액세스를 설정하는 데 사용합니다. 예를 들어 사용자가 지정된 날짜까지 보안 비밀에 액세스하도록 허용할 수 있습니다.
  • 리소스 속성: 리소스 이름, 리소스 유형 또는 리소스 서비스 속성을 기준으로 조건부 액세스를 구성하는 데 사용합니다. Secret Manager에서 보안 비밀 속성과 보안 비밀 버전을 사용하여 조건부 액세스를 구성할 수 있습니다. 예를 들어 사용자가 특정 프리픽스로 시작하는 보안 비밀의 보안 비밀 버전만 관리하도록 허용하거나 특정 보안 비밀 버전에만 액세스하도록 허용할 수 있습니다.

IAM 조건에 대한 자세한 내용은 조건 개요를 참조하세요.

다음 단계