기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
를 사용하여 Kinesis Video Streams 리소스에 대한 액세스 제어 IAM
Amazon Kinesis Video Streams와 함께 AWS Identity and Access Management (IAM) 를 사용하여 조직의 사용자가 특정 Kinesis Video API Streams 작업을 사용하여 작업을 수행할 수 있는지 여부와 특정 리소스를 사용할 수 있는지 여부를 제어할 수 있습니다. AWS
에 대한 자세한 내용은 IAM 다음을 참조하십시오.
내용
정책 구문
IAM정책은 하나 이상의 설명으로 구성된 JSON 문서입니다. 각 명령문의 구조는 다음과 같습니다.
{
"Statement":[{
"Effect":"effect
",
"Action":"action
",
"Resource":"arn
",
"Condition":{
"condition
":{
"key
":"value
"
}
}
}
]
}
명령문을 이루는 요소는 다양합니다.
-
효과 — 효과는
Allow
또는 일 수 있습니다Deny
. 기본적으로 사용자에게는 리소스 및 API 작업을 사용할 권한이 없으므로 모든 요청이 거부됩니다. 명시적 허용은 기본 설정을 무시합니다. 명시적 거부는 모든 허용을 무시합니다. -
작업 — 작업은 권한을 부여하거나 거부하는 특정 API 작업입니다.
-
리소스 — 작업의 영향을 받는 리소스입니다. 명령문에서 리소스를 지정하려면 Amazon 리소스 이름 (ARN) 을 사용해야 합니다.
-
조건: 조건은 선택 사항으로서 정책이 적용되는 시점을 제어하는 데 사용할 수 있습니다.
IAM정책을 생성하고 관리할 때는 정책 생성기와 IAM IAM 정책 시뮬레이터를 사용하는 것이 좋습니다.
Kinesis Video Streams를 위한 작업
IAM정책 설명에서 지원하는 IAM 모든 서비스의 모든 API 작업을 지정할 수 있습니다. Kinesis Video Streams의 경우 작업 이름과 함께 다음 접두사를 사용하십시오API. kinesisvideo:
예를 들어, kinesisvideo:CreateStream
, kinesisvideo:ListStreams
및 kinesisvideo:DescribeStream
입니다.
문 하나에 여러 작업을 지정하려면 다음과 같이 쉼표로 구분합니다.
"Action": ["kinesisvideo:action1", "kinesisvideo:action2"]
와일드카드를 사용하여 여러 작업을 지정할 수도 있습니다. 예를 들어 다음과 같이 이름이 "Get"으로 시작되는 모든 작업을 지정할 수 있습니다.
"Action": "kinesisvideo:Get*"
모든 Kinesis Video Streams 작업을 지정하려면 다음과 같이 별표(*) 와일드카드를 사용합니다.
"Action": "kinesisvideo:*"
Kinesis Video API Streams 작업의 전체 목록은 Kinesis Video Streams 참조를 참조하십시오. API
Kinesis Video Streams용 아마존 리소스 이름 (ARNs)
각 IAM 정책 설명은 해당 정책을 사용하여 지정하는 리소스에 적용됩니다. ARNs
Kinesis Video Streams에는 다음 ARN 리소스 형식을 사용하십시오.
arn:aws:kinesisvideo:region
:account-id
:stream/stream-name
/code
예:
"Resource": arn:aws:kinesisvideo:*:111122223333:stream/my-stream/0123456789012
를 사용하여 DescribeStream스트림을 가져올 수 있습니다. ARN
다른 IAM 계정에 Kinesis 비디오 스트림에 대한 액세스 권한 부여
Kinesis Video Streams의 스트림에서 작업을 수행하려면 다른 IAM 계정에 권한을 부여해야 할 수 있습니다. 다음의 개요는 여러 계정에 걸쳐 비디오 스트림 액세스 권한을 부여하는 일반적인 단계를 설명한 것입니다.
계정에서 생성된 스트림 리소스에서 작업을 수행할 수 있는 권한을 부여하려는 계정의 12자리 계정 ID를 가져옵니다.
예: 다음 단계에서는 권한을 부여하려는 계정의 계정 ID로 1111111111을 사용하고 Kinesis Video Streams의 ID로 9999999999를 사용합니다.
스트림을 소유한 계정 (999999999999) 에서 부여하려는 액세스 수준을 허용하는 IAM 관리형 정책을 생성하십시오.
샘플 정책:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesisvideo:GetDataEndpoint", "kinesisvideo:DescribeStream", "kinesisvideo:PutMedia" ], "Resource": "arn:aws:kinesisvideo:us-west-2:
999999999999
:stream/custom-stream-name/1613732218179" } ] }Kinesis Video Streams 리소스에 대한 다른 예제 정책은 다음 정책 예제 섹션의 내용을 참조하십시오.
스트림을 소유한 계정 (999999999999) 에서 역할을 생성하고 권한을 부여하려는 계정 (111111111111) 을 지정합니다. 그러면 신뢰할 수 있는 개체가 역할에 추가됩니다.
신뢰할 수 있는 정책 예시:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
111111111111
:root" }, "Action": "sts:AssumeRole" } ] }이전 단계에서 만든 정책을 이 역할에 연결합니다.
이제 999999999999 계정에서 관리형 정책의 스트림 리소스에
DescribeStream
GetDataEndpoint
ARN, 및 같은 작업에PutMedia
대한 권한을 가진 역할을 생성했습니다. 또한 이 새 역할은 다른 계정인 111111111111이 이 역할을 맡을 수 있도록 신뢰합니다.중요
다음 단계에서 ARN 필요하므로 역할을 기록해 두십시오.
다른 계정인 111111111111에서 관리형 정책을 생성하여 이전 단계에서 999999999999 계정에서 생성한 역할에 대한
AssumeRole
작업을 수행할 수 있도록 합니다. 이전 단계의 역할을 언급해야 합니다. ARN샘플 정책:
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::
999999999999
:role/CustomRoleName" } }이전 단계에서 생성한 정책을 111111111111 계정의 역할 또는 사용자와 같은 IAM 엔티티에 연결합니다. 이제 이 사용자는 999999999999 계정에서 역할을 수임할 수 있는 권한을 갖게 되었습니다.
CustomRoleName
이 사용자의 자격 증명은 세션 자격 증명을 가져오기 AWS STS
AssumeRole
API 위해 호출되며, 이후 이 자격 증명은 999999999999 계정에서 생성된 스트림에서 Kinesis Video APIs Streams를 호출하는 데 사용됩니다.aws sts assume-role --role-arn "arn:aws:iam::
999999999999
:role/CustomRoleName" --role-session-name "kvs-cross-account-assume-role" { "Credentials": { "AccessKeyId": "", "SecretAccessKey": "", "SessionToken": "", "Expiration": "" }, "AssumedRoleUser": { "AssumedRoleId": "", "Arn": "" } }환경의 이전 설정을 기반으로 액세스 키, 비밀 키 및 세션 자격 증명을 설정합니다.
set AWS_ACCESS_KEY_ID= set AWS_SECRET_ACCESS_KEY= set AWS_SESSION_TOKEN=
Kinesis Video APIs Streams를 실행하여 999999999999 계정의 스트림에 대한 데이터 엔드포인트를 설명하고 가져올 수 있습니다.
aws kinesisvideo describe-stream --stream-arn "arn:aws:kinesisvideo:us-west-2:
999999999999
:stream/custom-stream-name/1613732218179" { "StreamInfo": { "StreamName": "custom-stream-name", "StreamARN": "arn:aws:kinesisvideo:us-west-2:999999999999
:stream/custom-stream-name/1613732218179", "KmsKeyId": "arn:aws:kms:us-west-2:999999999999
:alias/aws/kinesisvideo", "Version": "abcd", "Status": "ACTIVE", "CreationTime": "2018-02-19T10:56:58.179000+00:00", "DataRetentionInHours": 24 } } aws kinesisvideo get-data-endpoint --stream-arn "arn:aws:kinesisvideo:us-west-2:999999999999
:stream/custom-stream-name/1613732218179" --api-name "PUT_MEDIA" { "DataEndpoint": "https://s-b12345.kinesisvideo.us-west-2.amazonaws.com" }
계정 간 액세스 권한 부여에 대한 일반적인 step-by-step 지침은 역할 간 액세스 위임을 참조하십시오. AWS 계정 IAM
Kinesis Video Streams에 대한 예제 정책
다음 예제 정책은 Kinesis Video Streams에 대한 사용자 액세스를 제어하는 방법을 보여줍니다.
예 1: 사용자가 모든 Kinesis 비디오 스트림에서 데이터를 가져오도록 허용
이 정책은 사용자 또는 그룹이 모든 Kinesis 비디오 스트림에서 DescribeStream
GetDataEndpoint
GetMedia
,ListStreams
,, 및 ListTagsForStream
작업을 수행할 수 있도록 허용합니다. 이 정책은 임의의 비디오 스트림에서 데이터를 가져올 수 있는 사용자에게 해당됩니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesisvideo:Describe*", "kinesisvideo:Get*", "kinesisvideo:List*" ], "Resource": "*" } ] }
예 2: 사용자가 Kinesis 비디오 스트림을 생성하고 여기에 데이터를 쓰도록 허용
이 정책을 사용하면 사용자 또는 그룹이 CreateStream
및 PutMedia
작업을 수행할 수 있습니다. 이 정책은 비디오 스트림을 생성하고 데이터를 생성된 스트림에 전송할 수 있는 보안 카메라에 해당됩니다.
{ "Statement": [ { "Effect": "Allow", "Action": [ "kinesisvideo:CreateStream", "kinesisvideo:PutMedia" ], "Resource": "*" } ] }
예 3: 사용자에게 모든 Kinesis Video Streams 리소스에 대한 전체 액세스 허용
이 정책을 통해 사용자 또는 그룹은 모든 리소스에서 모든 Kinesis Video Streams 작업을 수행할 수 있습니다. 이 정책은 관리자에 해당됩니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kinesisvideo:*", "Resource": "*" } ] }
예 4: 사용자가 특정 Kinesis 비디오 스트림에 데이터를 쓰도록 허용
이 정책을 사용하면 사용자 또는 그룹이 특정 비디오 스트림에 데이터를 작성할 수 있습니다. 이 정책은 단일 스트림에 데이터를 전송할 수 있는 디바이스에 해당됩니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kinesisvideo:PutMedia", "Resource": "arn:aws:kinesisvideo:us-west-2:123456789012:stream/your_stream/0123456789012" } ] }