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:
Conteúdo
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:
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
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.
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
DescribeStream
GetDataEndpoint
, e emPutMedia
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.
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" } }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": "" } }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=
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
, GetMedia
ListStreams
, 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" } ] }