를 사용하여 Kinesis Video Streams 리소스에 대한 액세스 제어 IAM - Amazon Kinesis Video Streams

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

를 사용하여 Kinesis Video Streams 리소스에 대한 액세스 제어 IAM

Amazon Kinesis Video Streams 에서 AWS Identity and Access Management (IAM)를 사용하여 조직의 사용자가 특정 Kinesis Video Streams API 작업을 사용하여 작업을 수행할 수 있는지 여부와 특정 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 정책 설명에서 를 지원하는 모든 서비스의 API 작업을 지정할 수 있습니다IAM. Kinesis Video Streams의 경우 API 작업 이름과 함께 접두사를 사용합니다kinesisvideo:. 예를 들어, kinesisvideo:CreateStream, kinesisvideo:ListStreamskinesisvideo:DescribeStream입니다.

문 하나에 여러 작업을 지정하려면 다음과 같이 쉼표로 구분합니다.

"Action": ["kinesisvideo:action1", "kinesisvideo:action2"]

와일드카드를 사용하여 여러 작업을 지정할 수도 있습니다. 예를 들어 다음과 같이 이름이 "Get"으로 시작되는 모든 작업을 지정할 수 있습니다.

"Action": "kinesisvideo:Get*"

모든 Kinesis Video Streams 작업을 지정하려면 다음과 같이 별표(*) 와일드카드를 사용합니다.

"Action": "kinesisvideo:*"

Kinesis Video Streams API 작업의 전체 목록은 Kinesis Video Streams API 참조를 참조하세요.

Kinesis Video Streams의 Amazon 리소스 이름(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

를 사용하여 스트림ARN의 를 가져올 수 있습니다DescribeStream.

Kinesis 비디오 스트림에 대한 다른 IAM 계정 액세스 권한 부여

Kinesis Video Streams에서 스트림에 대한 작업을 수행할 수 있는 권한을 다른 IAM 계정에 부여해야 할 수 있습니다. 다음의 개요는 여러 계정에 걸쳐 비디오 스트림 액세스 권한을 부여하는 일반적인 단계를 설명한 것입니다.

  1. 계정에 생성된 스트림 리소스에 대한 작업을 수행할 수 있는 권한을 부여하려는 계정의 12자리 계정 ID를 가져옵니다.

    예: 다음 단계에서는 권한을 부여하려는 계정의 계정 ID로 111111111111을 사용하고 Kinesis Video Streams의 ID로 999999999999을 사용합니다.

  2. 스트림(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 리소스에 대한 기타 예제 정책은 다음 섹션정책 예제의 섹션을 참조하세요.

  3. 스트림을 소유하는 계정(999999999999)에서 역할을 생성하고 )에 대한 권한을 부여할 계정을 지정합니다(111111111111. 이렇게 하면 신뢰할 수 있는 엔터티가 역할에 추가됩니다.

    신뢰할 수 있는 정책 샘플:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111111111111:root" }, "Action": "sts:AssumeRole" } ] }

    이전 단계에서 생성한 정책을 이 역할에 연결합니다.

    이제 ARN 관리형 정책의 스트림 리소스에서 DescribeStream, GetDataEndpoint및 와 같은 작업에 대한 권한이 있는 역할을 계정 999999999999PutMedia에 생성했습니다. 이 새 역할은 다른 계정인 111111111111도 이 역할을 수임하도록 신뢰합니다.

    중요

    역할을 기록해 두ARN면 다음 단계에서 필요합니다.

  4. 이전 단계에서 계정 111111111111에서 생성한 역할에 대한 AssumeRole 작업을 허용하는 관리형 정책을 다른 계정 999999999999에서 생성합니다. ARN 이전 단계에서 역할을 언급해야 합니다.

    샘플 정책:

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::999999999999:role/CustomRoleName" } }
  5. 이전 단계에서 생성된 정책을 계정 111111111111의 역할 또는 사용자와 같은 IAM엔터티에 연결합니다. 이제 이 사용자는 계정 999999999999CustomRoleName에서 역할을 수임할 수 있는 권한이 있습니다.

    이 사용자의 보안 인증은 세션 보안 인증을 얻기 API 위해 호출 AWS STS AssumeRole하며, 이후 계정 999999999999에서 생성된 스트림APIs에서 Kinesis Video 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": "" } }
  6. 환경의 이전 세트를 기반으로 액세스 키, 보안 키 및 세션 보안 인증을 설정합니다.

    set AWS_ACCESS_KEY_ID= set AWS_SECRET_ACCESS_KEY= set AWS_SESSION_TOKEN=
  7. Kinesis Video Streams를 실행APIs하여 계정 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 지침은 IAM 역할 AWS 계정 사용 전반에서 액세스 권한 위임을 참조하세요.

Kinesis Video Streams에 대한 정책 예제

다음 예제 정책은 Kinesis Video Streams에 대한 사용자 액세스를 제어하는 방법을 보여줍니다.

예 1: 사용자가 모든 Kinesis 비디오 스트림에서 데이터를 가져오도록 허용

이 정책을 통해 사용자 또는 그룹은 모든 Kinesis 비디오 스트림에서 DescribeStream, GetDataEndpoint, GetMediaListStreams, 및 ListTagsForStream 작업을 수행할 수 있습니다. 이 정책은 임의의 비디오 스트림에서 데이터를 가져올 수 있는 사용자에게 해당됩니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesisvideo:Describe*", "kinesisvideo:Get*", "kinesisvideo:List*" ], "Resource": "*" } ] }
예 2: 사용자가 Kinesis 비디오 스트림을 생성하고 여기에 데이터를 쓸 수 있도록 허용

이 정책을 사용하면 사용자 또는 그룹이 CreateStreamPutMedia 작업을 수행할 수 있습니다. 이 정책은 비디오 스트림을 생성하고 데이터를 생성된 스트림에 전송할 수 있는 보안 카메라에 해당됩니다.

{ "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" } ] }