이 메서드는 모든 AlloyDB 클러스터에서 지원하는 표준 PostgreSQL 사용자 역할을 통해 데이터베이스 인증을 보완합니다. 클러스터에서 IAM 기반 인증을 사용 설정하면 IAM 또는 PostgreSQL 사용자 역할을 사용하여 해당 클러스터에 인증할 수 있습니다.
기본적으로 AlloyDB 인스턴스에는 IAM 기반 인증이 사용 설정되어 있지 않습니다. IAM 로그인을 사용 설정하고 별도의 IAM 기반 데이터베이스 사용자를 설정하는 단계를 따르세요.
IAM 사용자 또는 서비스 계정이 연결해야 하는 모든 인스턴스에서 IAM 인증을 수동으로 사용 설정해야 합니다.
데이터베이스 사용자로 로그인해야 하는 모든 IAM 사용자 또는 서비스 계정에 대해 다음 단계를 완료해야 합니다.
IAM 관리자 도구를 사용하여 해당 사용자 또는 서비스 계정에
alloydb.databaseUser
및serviceusage.serviceUsageConsumer
역할을 부여합니다.Google Cloud CLI를 사용하여 AlloyDB 클러스터에서 해당 사용자 또는 서비스 계정에 해당하는 데이터베이스 사용자를 만듭니다.
postgres
와 같은 데이터베이스 관리자 계정을 사용하여 적절한 데이터베이스 테이블에 새 데이터베이스 사용자 액세스 권한을 부여합니다.
AlloyDB 클러스터에 IAM 사용자를 추가해야 할 때마다 후자의 단계를 필요한 횟수만큼 반복할 수 있습니다.
이 페이지의 나머지 부분에서는 이러한 단계를 자세히 설명합니다.
IAM 인증 사용 설정 또는 중지
인스턴스에서 IAM 인증을 사용 설정하려면 해당 인스턴스의 alloydb.iam_authentication
플래그를 on
로 설정합니다.
인스턴스에서 IAM 인증을 사용 중지하려면 alloydb.iam_authentication
를 기본값인 off
로 다시 설정합니다.
AlloyDB 인스턴스에서 플래그를 설정하는 방법에 관한 자세한 내용은 인스턴스의 데이터베이스 플래그 구성을 참고하세요.
IAM 사용자 또는 서비스 계정에 인스턴스 액세스 권한 부여
새 데이터베이스 사용자에 대한 IAM 인증 액세스를 사용 설정하는 방법은 다음과 같은 두 단계로 이루어집니다.
AlloyDB 데이터베이스에 적절한 IAM 사용자 또는 서비스 계정에 대한 액세스 권한을 부여하도록 프로젝트의 IAM 설정을 업데이트합니다.
클러스터에서 새 데이터베이스 사용자를 만들고 사용자 이름을 IAM 사용자 또는 서비스 계정의 이메일 주소로 설정합니다.
필요한 횟수만큼 두 번째 단계를 반복하여 IAM 정의 계정에 프로젝트 내의 다른 클러스터에 대한 액세스 권한을 부여할 수 있습니다.
적절한 역할로 IAM 계정 업데이트
IAM 사용자 또는 서비스 계정에 다음 IAM 역할을 부여하여 AlloyDB 인스턴스로 인증할 수 있는 기능을 부여할 수 있습니다.
alloydb.databaseUser
serviceusage.serviceUsageConsumer
이렇게 하려면 다른 사용자에게 액세스 권한 부여의 안내를 따르세요. IAM 주 구성원에게 부여할 역할을 선택하는 단계에서 alloydb.databaseUser
를 선택합니다.
클러스터에 IAM 사용자 또는 서비스 계정 추가
콘솔
클러스터 페이지로 이동합니다.
사용자를 추가할 클러스터의 이름을 클릭합니다.
사용자를 클릭합니다.
사용자 계정 추가를 클릭합니다.
Cloud IAM을 선택합니다.
Principal 필드에 IAM 주 구성원을 입력합니다.
IAM 사용자 계정의 경우 사용자 계정의 전체 이메일 주소를 입력합니다. 예를 들면
kai@altostrat.com
입니다.IAM 서비스 계정의 경우
.gserviceaccount.com
서픽스를 제외한 서비스 계정의 주소를 입력합니다. 예를 들어 서비스 계정my-service@my-project.iam.gserviceaccount.com
를 지정하려면 여기에my-service@my-project.iam
값을 사용합니다.추가를 클릭합니다.
gcloud
IAM 사용자 또는 서비스 계정을 기반으로 PostgreSQL 데이터베이스 사용자를 만들려면 gcloud alloydb users create
명령어를 사용하세요.
gcloud alloydb users create USERNAME \
--cluster=CLUSTER \
--region=REGION \
--type=IAM_BASED
다음을 바꿉니다.
USERNAME
: 새 데이터베이스 사용자로 추가하려는 IAM 사용자의 식별자입니다.IAM 사용자 계정의 경우 사용자 계정의 전체 이메일 주소를 입력합니다. 예를 들면
kai@altostrat.com
입니다.IAM 서비스 계정의 경우
.gserviceaccount.com
서픽스를 제외한 서비스 계정의 주소를 입력합니다. 예를 들어 서비스 계정my-service@my-project.iam.gserviceaccount.com
를 지정하려면 여기에서my-service@my-project.iam
값을 사용합니다.CLUSTER
: 이 데이터베이스 사용자 계정을 만들 클러스터의 ID입니다.REGION
: 클러스터가 있는 리전의 ID입니다. 예를 들면us-central1
입니다.
IAM 사용자에게 적절한 데이터베이스 권한 부여
IAM 사용자가 데이터베이스 인스턴스에 추가되면 기본적으로 해당 새 사용자에게는 데이터베이스에 대한 권한이 부여되지 않습니다.
사용자 또는 서비스 계정이 데이터베이스에 연결되면 PUBLIC으로 액세스 권한이 부여된 모든 데이터베이스 객체에 대해 쿼리를 실행할 수 있습니다.
추가 액세스 권한이 필요한 경우 GRANT
PostgreSQL 문을 사용하여 추가 권한을 부여할 수 있습니다.
GRANT SELECT ON TABLE_NAME TO "USERNAME";
다음을 바꿉니다.
USERNAME
: 사용자의 이메일 주소입니다. 주소를 큰따옴표로 묶어야 합니다.TABLE_NAME
: 사용자에게 액세스 권한을 부여할 테이블의 이름입니다.
클러스터에서 IAM 사용자 또는 서비스 계정 삭제
콘솔
클러스터 페이지로 이동합니다.
사용자를 삭제하려는 클러스터의 이름을 클릭합니다.
사용자를 클릭합니다.
삭제하려는 사용자를 나타내는 행에서
이 사용자의 작업 열기를 클릭합니다.삭제를 선택합니다.
사용자 계정을 삭제하시겠어요? 대화상자에서 삭제를 클릭합니다.
gcloud
gcloud alloydb users delete
명령어를 사용합니다.
gcloud alloydb users delete USERNAME \
--cluster=CLUSTER \
--region=REGION
다음을 바꿉니다.
USERNAME
: 클러스터에서 삭제하려는 IAM 사용자의 식별자입니다.IAM 사용자 계정의 경우 사용자 계정의 전체 이메일 주소를 입력합니다. 예를 들면
kai@altostrat.com
입니다.IAM 서비스 계정의 경우
.gserviceaccount.com
서픽스를 제외한 서비스 계정의 주소를 입력합니다. 예를 들어 서비스 계정my-service@my-project.iam.gserviceaccount.com
를 지정하려면 여기에서my-service@my-project.iam
값을 사용합니다.CLUSTER
: 이 사용자를 삭제할 클러스터의 ID입니다.REGION
: 클러스터가 있는 리전의 ID입니다. 예를 들면us-central1
입니다.