Controle do acesso aos recursos do Kinesis Video Streams usando o IAM - Amazon Kinesis Video Streams

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Controle do acesso aos recursos do Kinesis Video Streams usando o IAM

Você pode usar o AWS Identity and Access Management (IAM) com o Amazon Kinesis Video Streams para controlar se os usuários da sua organização podem realizar uma tarefa usando operações específicas da API do Kinesis Video Streams e se podem usar recursos específicos. AWS

Para obter mais informações sobre IAM, consulte o seguinte:

Sintaxe da política

A política do IAM é um documento JSON que consiste em uma ou mais declarações. Cada instrução é estruturada da seguinte maneira:

{ "Statement":[{ "Effect":"effect", "Action":"action", "Resource":"arn", "Condition":{ "condition":{ "key":"value" } } } ] }

Existem vários elementos que compõem uma instrução:

  • Efeito — O efeito pode ser Allow ouDeny. Por padrão, os usuários não têm permissão para usar recursos e ações da API. Por isso, todas as solicitações são negadas. Um permitir explícito substitui o padrão. Uma negar explícito substitui todas as permissões.

  • Ação — A ação é a ação específica da API para a qual você está concedendo ou negando permissão.

  • Recurso — O recurso afetado pela ação. Para especificar um recurso na declaração, você deve usar o respectivo nome de recurso da Amazon (ARN).

  • Condição: as condições são opcionais. Elas podem ser usadas para controlar quando a política está em vigor.

Ao criar e gerenciar políticas do IAM, recomendamos que você use o IAM Policy Generator e o IAM Policy Simulator.

Ações para o Kinesis Video Streams

Em uma declaração de política do IAM, é possível especificar qualquer ação de API de qualquer serviço que dê suporte ao IAM. Para Kinesis Video Streams, use o seguinte prefixo com o nome da ação da API:. kinesisvideo: Por exemplo: kinesisvideo:CreateStream, kinesisvideo:ListStreams e kinesisvideo:DescribeStream.

Para especificar várias ações em uma única instrução, separe-as com vírgulas, como segue:

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

Também é possível especificar várias ações usando asteriscos. Por exemplo, você pode especificar todas as ações cujo nome começa com a palavra "Obter", conforme o seguinte:

"Action": "kinesisvideo:Get*"

Para especificar todas as operações do Kinesis Video Streams, use o curinga asterisco (*), como a seguir:

"Action": "kinesisvideo:*"

Para obter a lista completa das ações da API do Kinesis Video Streams, consulte a referência de API do Kinesis Video Streams.

Nomes de recursos da Amazon (ARNs) para o Kinesis Video Streams

Cada declaração de política do IAM se aplica aos recursos que você especifica usando os ARNs.

Use o seguinte formato de recursos do ARN para os fluxos de dados do Kinesis Video Streams:

arn:aws:kinesisvideo:region:account-id:stream/stream-name/code

Por exemplo: .

"Resource": arn:aws:kinesisvideo:*:111122223333:stream/my-stream/0123456789012

Você pode obter o ARN de um stream usando o. DescribeStream

Conceder acesso a outras contas do IAM a um stream de vídeo do Kinesis

Talvez seja necessário conceder permissão a outras contas do IAM para realizar operações em streams no Kinesis Video Streams. A seguinte visão geral descreve as etapas para concessão de acesso aos streamings de vídeo em várias contas:

  1. Obtenha o ID da conta de 12 dígitos da conta à qual você deseja conceder permissões para realizar operações no recurso de stream criado em sua conta.

    Exemplo: nas etapas a seguir, usaremos 111111111111 como o ID da conta para a qual você deseja conceder permissão e 999999999999 como o ID do seu Kinesis Video Streams

  2. Crie uma política gerenciada do IAM na conta proprietária do stream (999999999999) que permita o nível de acesso que você deseja conceder.

    Política de amostra:

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

    Para ver outros exemplos de políticas para os recursos do Kinesis Video StreamsExemplo de políticas, consulte na próxima seção.

  3. Crie uma função na conta proprietária do stream (999999999999) e especifique a conta para a qual você deseja conceder permissões (111111111111). Isso adicionará uma entidade confiável à função.

    Exemplo de política confiável:

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

    Anexe a política que você criou na etapa anterior a essa função.

    Agora você criou uma função na conta 999999999999 que tem permissão para operações como DescribeStreamGetDataEndpoint, e em PutMedia um ARN de recurso de stream na política gerenciada. Essa nova função também confia na outra conta, 111111111111, para assumir essa função.

    Importante

    Anote o ARN da função, você precisará dele na próxima etapa.

  4. Crie uma política gerenciada na outra conta, 111111111111, que permita a AssumeRole ação na função que você criou na conta 999999999999 na etapa anterior. Você precisará mencionar o ARN da função na etapa anterior.

    Política de amostra:

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::999999999999:role/CustomRoleName" } }
  5. Anexe a política criada na etapa anterior a uma entidade do IAM, como uma função ou um usuário na conta 111111111111. Esse usuário agora tem permissão para assumir a função CustomRoleName na conta 999999999999.

    As credenciais desse usuário chamam a AWS STS AssumeRole API para obter as credenciais da sessão, que são usadas posteriormente para chamar as APIs do Kinesis Video Streams no stream criado na conta 999999999999.

    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. Defina a chave de acesso, a chave secreta e as credenciais da sessão com base no conjunto anterior no ambiente.

    set AWS_ACCESS_KEY_ID= set AWS_SECRET_ACCESS_KEY= set AWS_SESSION_TOKEN=
  7. Execute as APIs do Kinesis Video Streams para descrever e obter o endpoint de dados do stream na conta 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" }

Para step-by-step obter instruções genéricas sobre como conceder acesso entre contas, consulte Delegar acesso ao Contas da AWS uso de funções do IAM.

Exemplos de políticas para o Kinesis Video Streams

Os exemplos de políticas a seguir demonstram como você pode controlar o acesso do usuário ao seu Kinesis Video Streams.

exemplo 1: Permita que os usuários obtenham dados de qualquer stream de vídeo do Kinesis

Essa política permite que um usuário ou grupo realize as ListTagsForStream operaçõesDescribeStream,GetDataEndpoint, GetMediaListStreams, e em qualquer stream de vídeo da Kinesis. É apropriada para usuários que podem obter dados de qualquer streaming de vídeo.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesisvideo:Describe*", "kinesisvideo:Get*", "kinesisvideo:List*" ], "Resource": "*" } ] }
exemplo 2: Permitir que um usuário crie um stream de vídeo do Kinesis e grave dados nele

Esta política permite que um usuário ou grupo execute as operações CreateStream e PutMedia. Esta política é apropriada para uma câmera de segurança que pode criar um streaming de vídeo e enviar dados para ele.

{ "Statement": [ { "Effect": "Allow", "Action": [ "kinesisvideo:CreateStream", "kinesisvideo:PutMedia" ], "Resource": "*" } ] }
exemplo 3: Permitir que um usuário tenha acesso total a todos os recursos do Kinesis Video Streams

Esta política permite que um usuário ou grupo execute qualquer operação do Kinesis Video Streams em qualquer um dos recursos. Esta política é apropriada para administradores.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kinesisvideo:*", "Resource": "*" } ] }
exemplo 4: Permitir que um usuário grave dados em um stream de vídeo específico do Kinesis

Esta política permite que um usuário ou grupo grave dados em um determinado streaming. Esta política é apropriada para um dispositivo que pode enviar dados para um streaming único.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kinesisvideo:PutMedia", "Resource": "arn:aws:kinesisvideo:us-west-2:123456789012:stream/your_stream/0123456789012" } ] }