INSTANCE_ID는 만들려는 Memorystore for Redis Cluster 인스턴스의 ID입니다. 인스턴스 ID는 1~63자(영문 기준)여야 하며 소문자, 숫자, 하이픈만 사용해야 합니다. 소문자로 시작하고 소문자나 숫자로 끝나야 합니다.
REGION_ID: 인스턴스를 배치할 리전
NETWORK는 인스턴스를 만드는 데 사용되는 네트워크입니다. projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID 형식을 사용해야 합니다. 여기서 사용되는 네트워크 ID는 서비스 연결 정책에서 사용되는 네트워크 ID와 일치해야 합니다. 그렇지 않으면 create 작업이 실패합니다. 자세한 내용은 네트워킹을 참조하세요.
NODE_TYPE은 선택한 노드 유형입니다. 허용되는 값은 다음과 같습니다.
redis-shared-core-nano
redis-standard-small
redis-highmem-medium
redis-highmem-xlarge
SHARD_COUNT는 인스턴스의 샤드 수를 결정합니다. 샤드 개수는 클러스터 데이터를 저장하기 위한 총 메모리 용량을 결정합니다. 클러스터 사양에 대한 자세한 내용은 클러스터 및 노드 사양을 참고하세요.
IAM 인증 권한 부여
IAM 액세스 권한을 부여하려면 IAM 역할 부여 안내를 사용하여 주 구성원에게 roles/redis.dbConnectionUser 역할을 부여하세요.
기본적으로 주 구성원에게 roles/redis.dbConnectionUser 역할을 부여하면 주 구성원이 프로젝트의 모든 인스턴스에 액세스할 수 있습니다.
인스턴스에 대한 제한된 IAM 관리자 역할 만들기
전체 IAM 관리 액세스 권한을 부여하지 않고 인스턴스 연결 IAM 권한을 수정할 수 있는 역할을 만들 수 있습니다. roles/redis.dbConnectionUser` 역할에 대한 제한된 IAM 관리자를 만들면 됩니다. 자세한 내용은 제한된 IAM 관리자 만들기를 참고하세요.
IAM 인증을 사용하는 인스턴스에 연결
Redis 클러스터와 동일한 승인된 네트워크를 사용하는 Compute Engine VM이 아직 없으면 빠른 시작: Linux VM 사용을 따라 VM을 만들고 연결합니다.
프로젝트에서 Cloud Platform API 범위를 사용 설정합니다. 이 액세스 범위를 사용 설정하는 방법에 관한 자세한 내용은 서비스 계정 연결 및 액세스 범위 업데이트를 참고하세요. 이 범위의 권장사항에 관한 자세한 내용은 범위 권장사항을 참고하세요.
널리 사용되는 클라이언트 라이브러리를 사용하여 애플리케이션을 인증하는 방법을 보여주는 코드 샘플을 볼 수 있습니다. 또한 이 코드 샘플을 사용하여 IAM 인증을 사용하는 인스턴스에 연결하는 방법을 확인할 수 있습니다.
IAM 인증 관련 오류 메시지 문제 해결
오류 메시지
권장 조치
설명
-WRONGPASS invalid username-password pair or user is disabled
Redis용 Memorystore 클러스터 서버에 제공된 사용자 이름 및 액세스 토큰 확인
제공된 사용자 이름 또는 액세스 토큰이 잘못되었습니다. 'default'만 지원되는 사용자 이름입니다. 애플리케이션에서 이미 '기본' 사용자 이름을 사용하고 있는 경우 액세스 토큰이 만료되지 않았으며 IAM 인증을 사용하는 인스턴스에 연결의 안내에 따라 검색되었는지 확인합니다. 최근에 변경된 경우 IAM 권한이 전파되는 데 몇 분 정도 걸릴 수 있습니다.
-NOAUTH Authentication required
애플리케이션이 Memorystore for Redis Cluster 서버에 IAM 액세스 토큰을 제공하도록 구성되어 있는지 확인합니다.
애플리케이션이 Memorystore for Redis Cluster 서버에 액세스 토큰을 제공하지 않습니다. IAM 인증을 사용하는 인스턴스에 연결의 안내에 따라 애플리케이션이 액세스 토큰을 제공하도록 구성되어 있는지 확인합니다.
-ERR (ERR_IAM_EXHAUSTED) Memorystore IAM authentication backend quota exceeded. See https://cloud.google.com/memorystore/docs/cluster/manage-iam-auth#error_messages.
지수 백오프로 재시도
IAM 백엔드가 과부하되어 Redis용 Memorystore 클러스터 서버에 할당량 초과 오류를 반환했습니다. 애플리케이션은 추가 연결 실패를 방지하기 위해 지수 백오프로 이 오류를 재시도해야 합니다.
-ERR (ERR_IAM_OTHER) Memorystore IAM authentication backend error. See https://cloud.google.com/memorystore/docs/cluster/manage-iam-auth#error_messages.
지수 백오프로 재시도
IAM 백엔드에서 Memorystore for Redis 클러스터 서버에 일시적인 오류를 반환했습니다. 애플리케이션은 추가 연결 실패를 방지하기 위해 지수 백오프로 이 오류를 재시도해야 합니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-04(UTC)"],[],[],null,["# Manage IAM authentication\n\nThis page provides instructions on common tasks for the IAM\nauthentication feature for Memorystore for Redis Cluster. For more details on the feature,\nsee [About IAM authentication](/memorystore/docs/cluster/about-iam-auth).\n\nCreate an instance with IAM authentication\n------------------------------------------\n\nTo create a Memorystore for Redis Cluster instance that uses IAM\nauthentication, run the `create` command: \n\n```\ngcloud redis clusters create INSTANCE_ID --region=REGION_ID --network=NETWORK --node-type=NODE_TYPE --shard-count=SHARD_COUNT --auth-mode=iam-auth\n```\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eINSTANCE_ID\u003c/var\u003e is the ID of the Memorystore for Redis Cluster instance you're\n creating. Your instance ID must be 1 to 63 characters and use only lowercase\n letters, numbers, or hyphens. It must start with a lowercase letter and end with\n a lowercase letter or number.\n\n- \u003cvar translate=\"no\"\u003eREGION_ID\u003c/var\u003e is the region where you want the instance placed.\n\n | **Note:** You can only create instances in the [supported regions](/memorystore/docs/cluster/locations) for Memorystore for Redis Cluster. Not all of the regions currently supported by Memorystore for Redis are available for Memorystore for Redis Cluster. The `gcloud redis regions list` commands shows supported regions for Memorystore for Redis, not Memorystore for Redis Cluster.\n- \u003cvar translate=\"no\"\u003eNETWORK\u003c/var\u003e is the network used to create your instance. It must use\n the format: `projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID`. The\n network ID used here must match the network ID used by the service connection\n policy. Otherwise, the `create` operation fails. For more details, see\n [Networking](/memorystore/docs/cluster/networking).\n\n- \u003cvar translate=\"no\"\u003eNODE_TYPE\u003c/var\u003e is your chosen node type. Accepted values are:\n\n - `redis-shared-core-nano`\n - `redis-standard-small`\n - `redis-highmem-medium`\n - `redis-highmem-xlarge`\n\n | **Caution** : We recommend that you use the `redis-shared-core-nano` node type for development or testing purposes only. If you run Memorystore for Redis Cluster in a production environment, then we recommend using the `redis-standard-small`, `redis-highmem-medium`, or `redis-highmem-xlarge` node types. For more information about these node types, see [Choose a node type](/memorystore/docs/cluster/cluster-node-specification#choose_a_node_type).\n- \u003cvar translate=\"no\"\u003eSHARD_COUNT\u003c/var\u003e determines the number of shards in your\n instance. Shard count determines the total memory capacity for storing\n cluster data. To see more details about cluster specification, see [Cluster and node specification](/memorystore/docs/cluster/cluster-node-specification).\n\nGrant permissions for IAM authentication\n----------------------------------------\n\nTo grant an IAM access, grant the principal the\n`roles/redis.dbConnectionUser` role using the [Grant IAM role instructions](/iam/docs/grant-role-console#grant_an_iam_role).\n\nBy default, granting a principal the `roles/redis.dbConnectionUser` role allows\nthe principal to access all instances in your project.\n| **Note:** For instructions on limiting user access on a per-instance basis, see [Grant access to a group of resources based on resource name prefixes](/iam/docs/configuring-resource-based-access#resource-name-instance). When granting limited access for your instance, use the `resource.name` attribute and the following format for the instance name - `projects/PROJECT/locations/REGION/clusters/INSTANCE_NAME`.\n\n### Create a limited IAM admin role for an instance\n\nYou might want to create a role that can modify instance connection\nIAM permissions without granting full IAM admin\naccess. This can be done by creating a limited IAM admin for the\n`roles/redis.dbConnectionUser`\\` role. For more details, visit [Create limited IAM admins](/iam/docs/setting-limits-on-granting-roles#limited-admins-example).\n\nConnect to an instance that uses IAM authentication\n---------------------------------------------------\n\n1. If you don't already have a Compute Engine VM that uses the same\n authorized network as your Redis cluster, create one and connect to it by\n following [Quickstart Using a Linux VM](/compute/docs/create-linux-vm-instance).\n\n2. For your project, enable the Cloud Platform API scope. For more\n information about enabling this access scope, see\n [Attach the service account and update the access scope](/compute/docs/instances/change-service-account#changeserviceaccountandscopes). For more information\n about best practices for this scope, see\n [Scopes best practice](/compute/docs/access/service-accounts#scopes_best_practice).\n\n3. For your project, enable the Memorystore for Redis API.\n\n [Memorystore for Redis API](https://console.cloud.google.com/apis/library/redis.googleapis.com)\n\n \u003cbr /\u003e\n\n4. Install redis-cli on the Compute Engine VM by running the following\n command from the Compute Engine SSH terminal:\n\n ```\n sudo apt-get install redis-tools\n ```\n5. Run the following command to get an access token for your IAM\n user:\n\n ```\n gcloud auth print-access-token\n ```\n | **Note:** Access tokens will expire in one hour. For more information, see [IAM access token timeframe](/memorystore/docs/cluster/about-iam-auth#iam_access_token_time_frame).\n6. Connect to your instance's discovery endpoint:\n\n ```\n redis-cli -h NETWORK_ADDRESS -p PORT -a ACCESS_TOKEN -c\n ```\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eNETWORK_ADDRESS\u003c/var\u003e is the instance's network address. To view the\n network address, see [View instance information](/memorystore/docs/cluster/view-instance-information).\n\n - \u003cvar translate=\"no\"\u003ePORT\u003c/var\u003e is the instances port number. To view the port number, see\n [View instance information](/memorystore/docs/cluster/view-instance-information).\n\n - \u003cvar translate=\"no\"\u003eACCESS_TOKEN\u003c/var\u003e is the IAM access token retrieved in previous\n steps.\n\n | **Note:** Authenticated connections are valid for 12 hours. For more information, see [IAMaccess token time frame](/memorystore/docs/cluster/about-iam-auth#iam_access_token_time_frame).\n7. Run the `CLUSTER SHARDS` command to view your cluster topology. Take a note\n of one of the node's IP addresses and port numbers.\n\n8. To use `redis-cli` to authenticate and connect to your node, use the\n following command:\n\n ```\n redis-cli -h NODE_IP_ADDRESS -p NODE_PORT -a ACCESS_TOKEN -c\n ```\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eNODE_IP_ADDRESS\u003c/var\u003e: the node's IP address that you found in the previous step\n - \u003cvar translate=\"no\"\u003eNODE_PORT\u003c/var\u003e: the node's port number that you found in the previous step\n - \u003cvar translate=\"no\"\u003eACCESS_TOKEN\u003c/var\u003e: the IAM access token that you retrieved in previous steps\n\n | **Note:** Authenticated connections are valid for 12 hours. For more information, see [IAM access token time frame](/memorystore/docs/cluster/about-iam-auth#iam_access_token_time_frame).\n9. To verify that you have an authenticated connection to your node, run a Redis\n `SET` and `GET` command.\n\n10. [Delete the Compute Engine VM](/compute/docs/create-linux-vm-instance#clean-up)\n that you used to connect to the Redis cluster. This helps you avoid incurring\n charges to your Cloud Billing account.\n\nAutomate access token retrieval\n-------------------------------\n\n| **Note:**We strongly recommend that you automate access\n| token retrieval in your application. Because of the short lifetime of an access\n| token, it's difficult to hardcode the token.\n|\n| For a code sample that shows how you can authenticate your application by using\n| popular client libraries, see [IAM\n| authentication client library code sample](/memorystore/docs/cluster/client-library-connection#iam_authentication_client_library_code_sample).\n\n1. **(Optional)** If you haven't already, create a service account for your application (see [Creating and managing a service account](/iam/docs/creating-managing-service-accounts)).\n\n ```\n gcloud iam service-accounts create SA_NAME \\\n --description=\"DESCRIPTION\" \\\n --display-name=\"DISPLAY_NAME\"\n ```\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eSA_NAME\u003c/var\u003e is the name of the service account.\n - \u003cvar translate=\"no\"\u003eDESCRIPTION\u003c/var\u003e is an optional description of the service account.\n - \u003cvar translate=\"no\"\u003eDISPLAY_NAME\u003c/var\u003e is a service account name to display in the Google Cloud console.\n2. Grant your service account `redis.dbConnectionUser` permission on your\n project.\n\n ```\n gcloud projects add-iam-policy-binding PROJECT_ID \\\n --member=\"serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com\" \\\n --role=\"ROLE_NAME\"\n ```\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e: the project ID\n - \u003cvar translate=\"no\"\u003eSA_NAME\u003c/var\u003e: the name of the service account\n - \u003cvar translate=\"no\"\u003eROLE_NAME\u003c/var\u003e: a role name, such as `redis.dbConnectionUser`\n3. [Authenticate your application](#connect_to_an_instance_that_uses_iam_authentication) as the given service account. For more\n information, see [Service accounts](/docs/authentication#service-accounts).\n\nCode sample for connecting to an instance that uses IAM authentication\n----------------------------------------------------------------------\n\nYou can view a [code sample](/memorystore/docs/cluster/client-library-connection#iam_authentication_client_library_code_sample) that\nshows you how you can authenticate your\napplication by using popular client libraries. In addition, you can see how to\nuse this code sample to connect to an instance that uses IAM authentication.\n\nTroubleshooting error messages with IAM authentication\n------------------------------------------------------"]]