IVS 챗의 Identity and Access Management
AWS Identity and Access Management (IAM)는 계정 관리자가 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있도록 지원하는 AWS 서비스입니다. IVS 저지연 스트리밍 사용 설명서의 Identity and Access Management in IVS를 참조하세요.
대상
IAM을 사용하는 방법은 Amazon IVS에서 수행하는 작업에 따라 달라집니다. IVS 저지연 스트리밍 사용 설명서의 고객을 참조하세요.
Amazon IVS가 IAM과 작동하는 방식
Amazon IVS API 요청을 하기 전에 먼저 하나 이상의 IAM 자격 증명(사용자, 그룹 및 역할) 및 IAM 정책을 생성한 다음, 정책을 자격 증명에 연결해야 합니다. 권한이 전파되는 데에는 몇 분 정도 소요되며 그때까지 API 요청은 거부됩니다.
Amazon IVS가 IAM과 작동하는 방식에 대한 자세한 내용은 IAM 사용 설명서에서 IAM으로 작업하는 AWS 서비스를 참조하세요.
ID
IAM 자격 증명을 생성하여 AWS 계정의 사용자 및 프로세스에 대한 인증을 제공할 수 있습니다. IAM 그룹은 하나의 단위로 관리할 수 있는 IAM 사용자 모음입니다. IAM 사용 설명서에서 자격 증명(사용자, 그룹, 및 역할)을 참조하세요.
정책
정책은 JSON 권한이며, 정책 문서는 요소로 구성됩니다. IVS 저지연 스트리밍 사용 설명서에서 정책을 참조하세요.
Amazon IVS 챗은 다음 세 가지 요소를 지원합니다.
-
작업 - Amazon IVS 챗에 대한 정책 작업은 작업 앞에
ivschat
접두사를 사용합니다. 예를 들어, Amazon IVS 챗CreateRoom
API 메서드로 Amazon IVS 챗 채팅방을 생성할 권한을 누군가에게 부여하려면 해당 개인에게 적용할 정책에ivschat:CreateRoom
작업을 포함합니다. 정책 문에는Action
또는NotAction
요소가 포함되어야 합니다. -
리소스 - Amazon IVS 챗 채팅방 리소스에는 다음 ARN 형식이 있습니다.
arn:aws:ivschat:${Region}:${Account}:room/${roomId}
예를 들어, 명령문에서
VgNkEJgOVX9N
채팅방을 지정하려면 다음 ARN을 사용합니다."Resource": "arn:aws:ivschat:us-west-2:123456789012:room/VgNkEJgOVX9N"
리소스 생성과 같은 일부 Amazon IVS 챗 작업은 특정 리소스에서 수행할 수 없습니다. 이러한 경우 와일드카드(
*
)를 사용해야 합니다."Resource":"*"
-
조건 - Amazon IVS 챗은
aws:RequestTag
,aws:TagKeys
,aws:ResourceTag
같은 몇 가지 글로벌 조건 키를 지원합니다.
정책에서 변수를 자리 표시자로 사용할 수 있습니다. 예를 들어, 사용자의 IAM 사용자 이름으로 태그가 지정된 경우에만 IAM 사용자에게 리소스에 액세스할 수 있는 권한을 부여할 수 있습니다. IAM 사용 설명서에서 변수 및 태그를 참조하세요.
Amazon IVS에서는 미리 구성된 권한 세트를 자격 증명에 부여하는 데 사용할 수 있는 AWS 관리형 정책을 제공합니다(읽기 전용 또는 전체 액세스). 아래에 표시된 자격 증명 기반 정책 대신에 관리형 정책을 사용하도록 선택할 수 있습니다. 자세한 내용은 Amazon IVS 챗의 관리형 정책을 참조하세요.
Amazon IVS 태그를 기반으로 권한 부여
Amazon IVS 챗 리소스에 태그를 연결하거나 Amazon IVS 챗에 대한 요청에서 태그를 전달할 수 있습니다. 태그를 기반으로 액세스를 제어하려면 aws:ResourceTag/key-name
, aws:RequestTag/key-name
또는 aws:TagKeys
조건 키를 사용하여 정책의 조건 요소에서 태그 정보를 제공합니다. Amazon IVS 챗 리소스 태그 지정에 대한 자세한 내용은 Amazon IVS 챗 API 참조에서 '태그 지정'을 참조하세요.
역할
IAM 사용 설명서에서 IAM 역할 및 임시 보안 인증 정보를 참조하세요.
IAM 역할은 특정 권한을 가지고 있는 AWS계정 내 엔터티입니다.
Amazon IVS는 임시 보안 인증 정보를 지원합니다. 임시 보안 인증을 사용하여 페더레이션으로 로그인하거나 IAM 역할을 수임하거나 교차 계정 역할을 수임할 수 있습니다. AWS Security Token Service API 작업(예: AssumeRole
또는 GetFederationToken
)을 호출하여 임시 보안 인증 정보를 가져옵니다.
권한 있는 액세스 및 권한 없는 액세스
API 리소스는 권한 있는 액세스 권한을 지원합니다. 권한 없는 재생 액세스 권한은 프라이빗 채널을 통해 설정할 수 있습니다(Setting Up IVS Private Channels 참조).
정책에 대한 모범 사례
자세한 내용은 IAM 사용 설명서에서 IAM 모범 사례를 참조하세요.
자격 증명 기반 정책은 매우 강력합니다. 이 정책은 계정에서 사용자가 Amazon IVS 리소스를 생성, 액세스 또는 삭제할 수 있는지 여부를 결정합니다. 이 작업으로 인해 AWS 계정에 비용이 발생할 수 있습니다. 다음 권장 사항을 따릅니다.
-
최소 권한 부여 - 사용자 지정 정책을 생성할 때 오직 작업을 수행하는 데 필요한 권한만을 부여합니다. 최소한의 권한을 조합하는 것으로 시작하여 추후 필요에 따라 권한을 추가로 부여합니다. 이는 초기에 권한을 많이 부여한 후 나중에 이를 줄이는 것보다 더 안전한 방법입니다. 특히, 관리 액세스 권한을 위해
ivschat:*
를 예약한후 이를 애플리케이션에서 사용하지 마시기 바랍니다. -
중요한 작업에 대해 Multi-Factor Authentication(MFA) 활성화 - 보안을 강화하기 위해 IAM 사용자가 중요한 리소스 또는 API 작업에 액세스할 때 MFA를 사용하도록 합니다.
-
보안 강화를 위해 정책 조건 사용 – 실제로 가능한 경우 자격 증명 기반 정책이 리소스에 대한 액세스를 허용하는 조건을 정의합니다. 예를 들어, 요청할 수 있는 IP 주소의 범위를 지정하도록 조건을 작성할 수 있습니다. 지정된 날짜 또는 시간 범위 내에서만 요청을 허용하거나, SSL 또는 MFA를 사용해야 하는 조건을 작성할 수도 있습니다.
자격 증명 기반 정책 예제
Amazon IVS 콘솔 사용
Amazon IVS 콘솔에 액세스하려면 AWS 계정의 Amazon IVS 챗 리소스에 대한 세부 정보를 나열하고 볼 수 있는 최소 권한이 있어야 합니다. 최소 필수 권한보다 더 제한적인 자격 증명 기반 정책을 생성하면 콘솔이 해당 정책에 연결된 엔터티에 대해 의도대로 작동하지 않습니다. Amazon IVS 콘솔에 대한 액세스를 보장하려면 자격 증명에 다음 정책을 연결합니다(IAM 사용 설명서에서 IAM 권한 추가 및 제거 참조).
다음 정책 부분은 다음에 대한 액세스를 제공합니다.
-
모든 Amazon IVS 챗 API 엔드포인트
-
사용자의 Amazon IVS 챗 Service quotas
-
Amazon IVS Chat 중재를 위해 lambda 나열 및 선택한 lambda에 대한 권한 추가
-
챗 세션에 대한 지표를 가져오는 Amazon Cloudwatch
{ "Version": "2012-10-17", "Statement": [ { "Action": "ivschat:*", "Effect": "Allow", "Resource": "*" }, { "Action": [ "servicequotas:ListServiceQuotas" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "cloudwatch:GetMetricData" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "lambda:AddPermission", "lambda:ListFunctions" ], "Effect": "Allow", "Resource": "*" } ] }
Amazon IVS Chat에 대한 리소스 기반 정책
Amazon IVS Chat 서비스에 lambda 리소스를 호출하여 메시지를 검토할 수 있는 권한을 부여해야 합니다. 이를 위해 AWS Lambda에서 리소스 기반 정책 사용(AWS Lambda 개발자 안내서)의 지침을 준수하고 아래에 지정된 바와 같이 필드를 채워야 합니다.
lambda 리소스에 대한 액세스를 제어하기 위해 다음을 기반으로 조건을 사용할 수 있습니다.
-
SourceArn
- 샘플 정책은 와일드카드(*
)를 사용하여 계정의 모든 방이 lambda를 호출하도록 허용합니다. 필요에 따라 계정에 방을 지정하여 해당 방만 lambda를 호출할 수 있도록 할 수 있습니다. -
SourceAccount
- 아래 샘플 정책에서 AWS 계정 ID는123456789012
입니다.
{ "Version": "2012-10-17", "Statement": [ { "Principal": { "Service": "ivschat.amazonaws.com" }, "Action": [ "lambda:InvokeFunction" ], "Effect": "Allow", "Resource": "arn:aws:lambda:us-west-2:123456789012:function:name", "Condition": { "StringEquals": { "AWS:SourceAccount": "123456789012" }, "ArnLike": { "AWS:SourceArn": "arn:aws:ivschat:us-west-2:123456789012:room/*" } } } ] }
문제 해결
Amazon IVS 챗 및 IAM에서 작업할 때 발생할 수 있는 일반적인 문제를 진단하고 수정하는 방법에 대한 자세한 내용은 IVS 저지연 스트리밍 사용 설명서의 문제 해결을 참조하세요.