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.
Las prácticas recomendadas de seguridad de AWS imponen el uso de permisos específicos para controlar el acceso a diferentes recursos. AWS Identity and Access Management (IAM) le permite administrar usuarios y permisos de usuario en AWS. Una política de IAM enumera de forma explícita las acciones que se pueden realizar y los recursos a los que se pueden aplicar dichas acciones.
Los siguientes permisos son los permisos mínimos normalmente necesarios para un productor y un consumidor de Kinesis Data Streams.
Acciones | Recurso | Finalidad |
---|---|---|
DescribeStream , DescribeStreamSummary ,
DescribeStreamConsumer |
Flujo de datos de Kinesis | Antes de intentar escribir registros, el productor comprueba si la secuencia existe y está activa, si los fragmentos se encuentran en la secuencia y si la secuencia tiene un consumidor. |
SubscribeToShard ,
RegisterStreamConsumer |
Flujo de datos de Kinesis | Suscribe y registra los consumidores en un fragmento de Kinesis Data Stream. |
PutRecord , PutRecords |
Flujo de datos de Kinesis | Escriba registros en Kinesis Data Streams. |
Acciones | Resource | Finalidad |
---|---|---|
DescribeStream |
Flujo de datos de Kinesis | Antes de intentar leer registros, el consumidor comprueba si existe la secuencia y si está activa, y si los fragmentos se encuentran en la secuencia. |
GetRecords , GetShardIterator
|
Flujo de datos de Kinesis | Lee registros de una partición de Kinesis Data Streams. |
CreateTable , DescribeTable ,
GetItem , PutItem , Scan ,
UpdateItem |
Tabla de Amazon DynamoDB | Si el consumidor se desarrolla utilizando Kinesis Client Library (KCL), necesita permisos para que una tabla de DynamoDB realice un seguimiento del estado de procesamiento de la aplicación. El primer consumidor que se inicia crea la tabla. |
DeleteItem |
Tabla de Amazon DynamoDB | Para cuando el consumidor realiza operaciones de división y fusión en particiones de Kinesis Data Streams. |
PutMetricData |
Registros de Amazon CloudWatch | KCL también carga métricas a CloudWatch, que son útiles para supervisar la aplicación. |
Para esta aplicación, debe crear una única política de IAM; que conceda todos los permisos anteriores. En la práctica, es posible que quiera crear dos políticas, uno para los productores y otra para los consumidores.
Para crear una política de IAM
-
Localice el nombre de recurso de Amazon (ARN) de la nueva secuencia. Puede encontrar este ARN como Stream ARN (ARN de la secuencia) en la parte superior de la pestaña Details (Detalles). El formato del ARN es el siguiente:
arn:aws:kinesis:
region
:account
:stream/name
- región
-
El código de la región; por ejemplo,
us-west-2
. Para obtener más información, consulte Conceptos de región y zona de disponibilidad. - cuenta
-
El ID de la cuenta de AWS, como se muestra en Configuración de cuenta
. - name
-
El nombre de la secuencia de Crear un flujo de datos, que es
StockTradeStream
.
-
Determinar el ARN de la tabla de DynamoDB para que lo utilice el consumidor (creado por la primera instancia del consumidor). Debe tener el siguiente formato:
arn:aws:dynamodb:
region
:account
:table/name
La región y la cuenta y provienen del mismo lugar que en el paso anterior, pero esta vez name es el nombre de la tabla creada y utilizada por la aplicación consumidora. La KCL utilizada por el consumidor utiliza el nombre de la aplicación como nombre de la tabla. Utilice
StockTradesProcessor
, que será el nombre de aplicación que se utilizará más tarde. -
En la consola de IAM, en Políticas (https://console.aws.amazon.com/iam/home#policies
), elija Crear política. Si es la primera vez que trabaja con políticas de IAM, elija Introducción, Crear política. -
Elija Seleccionar junto a Generador de políticas.
-
Elija Amazon Kinesis como servicio AWS.
-
Seleccione
DescribeStream
,GetShardIterator
,GetRecords
,PutRecord
yPutRecords
como acciones permitidas. -
Introduzca el ARN que ha creado en el paso 1.
-
Utilice Add Statement (Añadir instrucción) para cada uno de los siguientes:
Servicio de AWS Acciones ARN Amazon DynamoDB CreateTable
,DeleteItem
,DescribeTable
,GetItem
,PutItem
,Scan
,UpdateItem
El ARN que ha creado en el paso 2. Amazon CloudWatch PutMetricData
*
El asterisco (
*
) que se utiliza cuando no es necesario especificar un ARN. En este caso, se debe a que no existe ningún recurso específico en CloudWatch para el que se invoque la acciónPutMetricData
. -
Elija Paso siguiente.
-
Cambie Policy Name (Nombre de política) a
StockTradeStreamPolicy
, revise el código y elija Create Policy (Crear política).
El documento de política resultante debería tener un aspecto similar a este:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt123",
"Effect": "Allow",
"Action": [
"kinesis:DescribeStream",
"kinesis:PutRecord",
"kinesis:PutRecords",
"kinesis:GetShardIterator",
"kinesis:GetRecords",
"kinesis:ListShards",
"kinesis:DescribeStreamSummary",
"kinesis:RegisterStreamConsumer"
],
"Resource": [
"arn:aws:kinesis:us-west-2:123:stream/StockTradeStream"
]
},
{
"Sid": "Stmt234",
"Effect": "Allow",
"Action": [
"kinesis:SubscribeToShard",
"kinesis:DescribeStreamConsumer"
],
"Resource": [
"arn:aws:kinesis:us-west-2:123:stream/StockTradeStream/*"
]
},
{
"Sid": "Stmt456",
"Effect": "Allow",
"Action": [
"dynamodb:*"
],
"Resource": [
"arn:aws:dynamodb:us-west-2:123:table/StockTradesProcessor"
]
},
{
"Sid": "Stmt789",
"Effect": "Allow",
"Action": [
"cloudwatch:PutMetricData"
],
"Resource": [
"*"
]
}
]
}
Para crear un usuario de IAM
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
En la página Users (Usuarios), elija Add user (Añadir usuario).
-
En User name, escriba
StockTradeStreamUser
. -
En Access type (Tipo de acceso), elija Programmatic access (Acceso por programa) y, a continuación, elija Next: Permissions (Siguiente: Permisos).
-
Elija Attach existing policies directly (Adjuntar políticas existentes directamente).
-
Busque por nombre la política que ha creado. Seleccione la casilla situada a la izquierda del nombre de la política y, a continuación, elija Next: Review (Siguiente: Revisión).
-
Revise los detalles y el resumen y, a continuación, elija Create user (Crear usuario).
-
Copie el valor de Access key ID (ID de clave de acceso) y guárdelo de modo confidencial. En Secret access key (Clave de acceso secreta), elija Show (Mostrar) y guarde también esa clave de forma confidencial.
-
Pegue las claves de acceso y secreta en un archivo local en una ubicación segura a la que solo pueda obtener acceso usted. Para esta aplicación, cree un archivo denominado
~/.aws/credentials
(con permisos estrictos). El archivo debe tener el siguiente formato:[default] aws_access_key_id=
access key
aws_secret_access_key=secret access key
Asociar una política de IAM a un usuario
-
En la consola de IAM, abra Políticas
y elija Acciones de política. -
Elija
StockTradeStreamPolicy
y Asociar. -
Elija
StockTradeStreamUser
y Asociar política.
Siguientes pasos
Descargar y compilar el código de implementación