Control del acceso a los recursos de Kinesis Video Streams mediante IAM - Amazon Kinesis Video Streams

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Control del acceso a los recursos de Kinesis Video Streams mediante IAM

Puede usar… AWS Identity and Access Management (IAM) con Amazon Kinesis Video Streams, para controlar si los usuarios de su organización pueden realizar una tarea mediante operaciones específicas de Kinesis Video API Streams y si pueden usar determinadas AWS recursos.

Para obtener más información al respectoIAM, consulte lo siguiente:

Sintaxis de la política

Una IAM política es un JSON documento que consta de una o más declaraciones. Cada instrucción tiene la estructura siguiente:

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

Una instrucción está compuesta por varios elementos:

  • Efecto: el efecto puede ser Allow oDeny. De forma predeterminada, los usuarios no tienen permiso para usar recursos y API acciones, por lo que se deniegan todas las solicitudes. Si se concede un permiso explícito se anula el valor predeterminado. Una denegación explícita invalida cualquier permiso concedido.

  • Acción: la acción es la API acción específica para la que se concede o deniega el permiso.

  • Recurso: el recurso al que afecta la acción. Para especificar un recurso en la declaración, debe usar su nombre de recurso de Amazon (ARN).

  • Condición: las condiciones son opcionales. Se pueden usar para controlar cuándo está en vigor la política.

Al crear y gestionar IAM políticas, le recomendamos que utilice el generador de IAM políticas y el simulador IAM de políticas.

Acciones para Kinesis Video Streams

En una declaración IAM de política, puede especificar cualquier API acción de cualquier servicio compatibleIAM. Para Kinesis Video Streams, utilice el siguiente prefijo con el nombre de API la acción:. kinesisvideo: Por ejemplo, kinesisvideo:CreateStream, kinesisvideo:ListStreams y kinesisvideo:DescribeStream.

Para especificar varias acciones en una única instrucción, sepárelas con comas del siguiente modo:

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

También puede utilizar caracteres comodín para especificar varias acciones. Por ejemplo, puede especificar todas las acciones cuyo nombre comience por la palabra "Get" del siguiente modo:

"Action": "kinesisvideo:Get*"

Para especificar todas las operaciones de Kinesis Video Streams use el carácter comodín de asterisco (*) del siguiente modo:

"Action": "kinesisvideo:*"

Para ver la lista completa de acciones de Kinesis Video API Streams, consulte la referencia de Kinesis Video Streams. API

Nombres de recursos de Amazon (ARNs) para Kinesis Video Streams

Cada declaración IAM de política se aplica a los recursos que especifique mediante su ARNs uso.

Utilice el siguiente formato ARN de recursos para Kinesis Video Streams:

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

Por ejemplo:

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

Puede obtener la imagen ARN de una transmisión utilizando DescribeStream.

Otorgar a otras IAM cuentas acceso a una transmisión de vídeo de Kinesis

Puede que necesite conceder permiso a otras IAM cuentas para realizar operaciones en las transmisiones de Kinesis Video Streams. En la siguiente información general se describen los pasos generales para conceder acceso a las transmisiones de vídeo a otras cuentas:

  1. Obtenga el ID de cuenta de 12 dígitos de la cuenta a la que quiere conceder permisos para realizar operaciones en el recurso de transmisión creado en su cuenta.

    Ejemplo: En los siguientes pasos, utilizaremos 1111 como ID de cuenta de la cuenta a la que quiere conceder permiso y 9999 como ID de Kinesis Video Streams

  2. Cree una política IAM administrada en la cuenta propietaria de la transmisión (9799999) que permita el nivel de acceso que desee conceder.

    Ejemplo de política:

    { "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 otros ejemplos de políticas para los recursos de Kinesis Video Streams, Ejemplos de políticas consulte la siguiente sección.

  3. Cree un rol en la cuenta propietaria de la transmisión (9999) y especifique la cuenta a la que quiere conceder permisos (1111). Esto añadirá una entidad de confianza a la función.

    Ejemplo de política de confianza:

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

    Adjunta la política que creaste en el paso anterior a este rol.

    Ahora ha creado un rol en la cuenta 139.9999 que tiene permiso para realizar operaciones comoDescribeStream, por ejemploGetDataEndpoint, y PutMedia en un recurso ARN de streaming de la política gestionada. Este nuevo rol también confía en que la otra cuenta, 1111, asuma este rol.

    importante

    Toma nota del rolARN, lo necesitarás en el siguiente paso.

  4. Crea una política gestionada en la otra cuenta (1111) que permita realizar AssumeRole acciones en el rol que creaste en la cuenta 9999 en el paso anterior. Deberás mencionar el rol ARN del paso anterior.

    Ejemplo de política:

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::999999999999:role/CustomRoleName" } }
  5. Adjunta la política creada en el paso anterior a una IAM entidad, como un rol o un usuario, en la cuenta 1111. Este usuario ahora tiene permiso para asumir el rol CustomRoleName en la cuenta 7139999.

    Las credenciales de este usuario llaman AWS STS AssumeRoleAPIpara obtener las credenciales de sesión, que se utilizan posteriormente para llamar a Kinesis Video APIs Streams en la transmisión creada en la cuenta 7139999.

    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. Establezca la clave de acceso, la clave secreta y las credenciales de sesión en función de las configuraciones anteriores del entorno.

    set AWS_ACCESS_KEY_ID= set AWS_SECRET_ACCESS_KEY= set AWS_SESSION_TOKEN=
  7. Ejecute Kinesis Video APIs Streams para describir y obtener el punto final de datos de la transmisión en la cuenta ⟶ 9999.

    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 obtener step-by-step instrucciones genéricas sobre cómo conceder el acceso entre cuentas, consulte Delegate Access Across Cuentas de AWS Uso de IAM roles.

Ejemplos de políticas para Kinesis Video Streams

Los siguientes ejemplos de políticas demuestran cómo puede controlar el acceso de los usuarios a sus Kinesis Video Streams.

ejemplo 1: Permita a los usuarios obtener datos de cualquier transmisión de vídeo de Kinesis

Esta política permite a un usuario o grupo realizar las ListTagsForStream operacionesDescribeStream, GetDataEndpoint GetMediaListStreams, y en cualquier transmisión de vídeo de Kinesis. Esta política es adecuada para los usuarios que pueden recibir datos de cualquier transmisión de vídeo.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesisvideo:Describe*", "kinesisvideo:Get*", "kinesisvideo:List*" ], "Resource": "*" } ] }
ejemplo 2: Permitir a un usuario crear una transmisión de vídeo de Kinesis y escribir datos en ella

Esta política permite a un usuario o grupo realizar las operaciones CreateStream y PutMedia. Esta política es adecuada para una cámara de seguridad que pueda crear una transmisión de vídeo y enviar datos a la misma.

{ "Statement": [ { "Effect": "Allow", "Action": [ "kinesisvideo:CreateStream", "kinesisvideo:PutMedia" ], "Resource": "*" } ] }
ejemplo 3: Permitir a un usuario el acceso total a todos los recursos de Kinesis Video Streams

Esta política permite a un usuario o grupo realizar cualquier operación de Kinesis Video Streams en cualquier recurso. Esta política es adecuada para los administradores.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kinesisvideo:*", "Resource": "*" } ] }
ejemplo 4: Permitir que un usuario escriba datos en una transmisión de vídeo de Kinesis específica

Esta política permite a un usuario o a un grupo escribir datos en una transmisión de vídeo específica. Esta política es adecuada para un dispositivo que pueda enviar datos a una única transmisión.

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