백엔드 서비스에서 SDK 호출 - Amazon Chime SDK

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

백엔드 서비스에서 SDK 호출

백엔드 서비스를 대표하는 사용자를 생성하고 나면 채널을 만들고, 해당 채널로 메시지를 보내고, 해당 채널에서 메시지를 읽습니다.

다음 CLI 명령을 실행해 공개 채널을 생성합니다.

aws chime-sdk-messaging create-channel \ --chime-bearer "app_instance_user_arn" \ --app-instance-arn "app_instance_arn" \ --name "firstChannel"

이 명령은 arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/channel/channel_id. 형식으로 ARN을 생성합니다.

백엔드 서비스에 대한 IAM 인증 작동 방식

이전 섹션의 CLI 명령에서 chime-bearer 파라미터에 주목하세요. 이 파라미터는 채널 및 메시지와 같은 리소스를 만들거나 이 리소스와 상호 작용하는 사용자를 식별합니다. CreateAppInstance와 같이 개발자만 호출할 수 있는 API를 제외한 거의 모든 Amazon Chime SDK 메시징 API는 chime-bearer를 파라미터로 사용합니다.

Amazon Chime SDK 메시징 API에 대한 IAM 권한에는 chime-bearer 파라미터와 일치하는 app-instance-user-arn 이 필요합니다. API에 따라 추가 ARN(일반적으로 채널 ARN)이 필요할 수 있습니다. 위의 예와 같은 백엔드 서비스의 경우 이는 다음 예와 같은 IAM 정책으로 이어집니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "chime:SendChannelMessage", "chime:ListChannelMessages", "chime:CreateChannelMembership", "chime:ListChannelMemberships", "chime:DeleteChannelMembership", "chime:CreateChannel", "chime:ListChannels", "chime:DeleteChannel", ... ], "Resource": [ "arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/user/back-end-worker", "arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/channel/*" ] }

AppInstanceUser 섹션에서 Resource ARN과 채널 ARN을 주목하세요. 이 IAM 정책 예시에서는 백엔드 서비스에 ID가 '백엔드 작업자'인 사용자로서 API를 호출할 수 있는 권한을 부여합니다. 백엔드 서비스에서 앱을 사용하는 사람들을 위해 호출할 수 있도록 하려면 app_instance_user_arnarn:aws:chime:region:aws_account_id:app-instance/app_instance_id/user/*로 변경하세요.

암시적 API 권한 부여 이해

Amazon Chime SDK 메시징 API에는 IAM 정책 외에도 암시적 권한이 있습니다. 예를 들어, AppInstanceUser는 사용자가 속한 채널에서만 메시지를 보내거나 채널 멤버십을 나열할 수 있습니다. 이에 대한 한 가지 예외는 AppInstanceAdmin으로 승격된 AppInstanceUser입니다. 기본적으로 관리자는 앱의 모든 채널에 대한 권한을 가집니다. 대부분의 사용 사례에서는 중요한 비즈니스 로직이 포함된 백엔드 서비스에만 이 권한이 필요합니다.

다음 CLI 명령은 백엔드 사용자를 관리자로 승격시킵니다.

aws chime-sdk-identity create-app-instance-admin \ --app-instance-admin-arn "app_instance_user_arn" \ --app-instance-arn "app_instance_arn"

채널 메시지 전송 및 나열

다음 CLI 명령은 채널 메시지를 보냅니다.

aws chime-sdk-messaging send-channel-message \ --chime-bearer "app_instance_user_arn" \ --channel-arn "channel_arn" \ --content "hello world" \ --type STANDARD \ --persistence PERSISTENT

다음 CLI 명령은 채널 메시지를 역순으로 나열합니다.

  • aws chime list-channel-messages

  • aws chime-sdk-messaging list-channel-messages

aws chime-sdk-messaging list-channel-messages \ --chime-bearer "app_instance_user_arn" \ --channel-arn "channel_arn"