Control del acceso con Amazon Data Firehose - Amazon Data Firehose

Amazon Data Firehose se conocía anteriormente como Amazon Kinesis Data Firehose

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 con Amazon Data Firehose

En las siguientes secciones se explica cómo controlar el acceso a y desde los recursos de Amazon Data Firehose. La información que cubren incluye cómo conceder acceso a tu aplicación para que pueda enviar datos a tu transmisión de Firehose. También describen cómo puede conceder a Amazon Data Firehose acceso a su bucket de Amazon Simple Storage Service (Amazon S3), clúster de Amazon Redshift o clúster de Amazon OpenSearch Service, así como los permisos de acceso que necesita si utiliza Datadog, Dynatrace, LogicMonitor MongoDB, New Relic, Splunk o Sumo Logic como destino. Por último, en este tema encontrarás instrucciones sobre cómo configurar Amazon Data Firehose para que pueda entregar datos a un destino que pertenezca a una cuenta diferente AWS . La tecnología para gestionar todas estas formas de acceso es la AWS Identity and Access Management (IAM). Para obtener más información acerca de IAM, consulte ¿Qué es IAM?.

Conceda a su aplicación acceso a sus recursos de Amazon Data Firehose

Para permitir que tu aplicación acceda a tu transmisión de Firehose, usa una política similar a la de este ejemplo. Puede ajustar las operaciones individuales de las API a las que concede acceso modificando la sección Action o concediendo acceso a todas las operaciones "firehose:*".

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "firehose:DeleteDeliveryStream", "firehose:PutRecord", "firehose:PutRecordBatch", "firehose:UpdateDestination" ], "Resource": [ "arn:aws:firehose:region:account-id:deliverystream/delivery-stream-name" ] } ] }

Conceda a Amazon Data Firehose acceso a su clúster privado de Amazon MSK

Si la fuente de tu transmisión de Firehose es un clúster privado de Amazon MSK, utiliza una política similar a la de este ejemplo.

{ "Version": "2012-10-17", "Statement": [ { "Principal": { "Service": [ "firehose.amazonaws.com" ] }, "Effect": "Allow", "Action": [ "kafka:CreateVpcConnection" ], "Resource": "cluster-arn" } ] }

Permita que Amazon Data Firehose asuma una función de IAM

En esta sección se describen los permisos y las políticas que otorgan a Amazon Data Firehose acceso para ingerir, procesar y entregar datos desde el origen hasta el destino.

nota

Si utilizas la consola para crear una transmisión de Firehose y eliges la opción de crear una nueva función, AWS adjunta la política de confianza necesaria a la función. Si desea que Amazon Data Firehose utilice una función de IAM existente o si crea una función por su cuenta, adjunte las siguientes políticas de confianza a esa función para que Amazon Data Firehose pueda asumirla. Edite las políticas para sustituir el ID de cuenta por el ID de su cuenta. AWS Para obtener información acerca de cómo modificar la relación de confianza de un rol, consulte Modificación de un rol.

Amazon Data Firehose utiliza una función de IAM para todos los permisos que la transmisión de Firehose necesita para procesar y entregar datos. Asegúrese de que las siguientes políticas de confianza estén asociadas a esa función para que Amazon Data Firehose pueda asumirla.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": { "Service": "firehose.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "account-id" } } }] }

Esta política utiliza la clave de contexto de sts:ExternalId condición para garantizar que solo la actividad de Amazon Data Firehose que se origine en su AWS cuenta pueda asumir esta función de IAM. Para obtener más información sobre cómo evitar el uso no autorizado de los roles de IAM, consulte Problema del suplente confuso en la Guía del usuario de IAM.

Si elige Amazon MSK como fuente para su transmisión de Firehose, debe especificar otra función de IAM que conceda permisos a Amazon Data Firehose para ingerir datos de origen del clúster de Amazon MSK especificado. Asegúrese de que las siguientes políticas de confianza estén asociadas a esa función para que Amazon Data Firehose pueda asumirla.

{ "Version": "2012-10-17", "Statement": [ { "Principal": { "Service": [ "firehose.amazonaws.com" ] }, "Effect": "Allow", "Action": "sts:AssumeRole" } ] }

Asegúrese de que este rol que concede a Amazon Data Firehose permisos para ingerir datos de origen del clúster de Amazon MSK especificado conceda los siguientes permisos:

{ "Version": "2012-10-17", "Statement": [{ "Effect":"Allow", "Action": [ "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka-cluster:Connect" ], "Resource": "CLUSTER-ARN" }, { "Effect":"Allow", "Action": [ "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:ReadData" ], "Resource": "TOPIC-ARN" }] }

Conceda acceso a Amazon Data Firehose AWS Glue para la conversión de formatos de datos

Si su transmisión de Firehose realiza una conversión de formato de datos, Amazon Data Firehose hace referencia a las definiciones de tablas almacenadas en. AWS Glue Para conceder a Amazon Data Firehose el acceso necesario AWS Glue, añade la siguiente declaración a tu política. Para obtener información sobre cómo encontrar el ARN de la tabla, consulte Especificación de los ARN de los recursos de AWS Glue.

[{ "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetTableVersion", "glue:GetTableVersions" ], "Resource": "table-arn" }, { "Sid": "GetSchemaVersion", "Effect": "Allow", "Action": [ "glue:GetSchemaVersion" ], "Resource": ["*"] }]

La política recomendada para obtener esquemas del registro de esquemas no tiene restricciones de recursos. Para obtener más información, consulte los ejemplos de deserializadores de IAM en la Guía para desarrolladores. AWS Glue

nota

Actualmente, no AWS Glue se admite en las regiones de Israel (Tel Aviv), Asia Pacífico (Yakarta) o Oriente Medio (Emiratos Árabes Unidos). Si trabaja con Amazon Data Firehose en la región de Asia Pacífico (Yakarta) o Oriente Medio (Emiratos Árabes Unidos), asegúrese de dar acceso a su Amazon Data Firehose AWS Glue en una de las regiones en las que se AWS Glue admite actualmente. Compatible con la interoperabilidad entre regiones entre Data Firehose. AWS Glue Para obtener más información sobre las regiones en las que AWS Glue se admite, consulte https://docs.aws.amazon.com/general/latest/gr/glue.html

Conceda a Amazon Data Firehose acceso a un destino de Amazon S3

Cuando utiliza un destino de Amazon S3, Amazon Data Firehose entrega los datos a su bucket de S3 y, si lo desea, puede utilizar una AWS KMS clave de su propiedad para el cifrado de datos. Si el registro de errores está activado, Amazon Data Firehose también envía los errores de entrega de datos al grupo de CloudWatch registros y a las transmisiones. Debes tener un rol de IAM al crear una transmisión de Firehose. Amazon Data Firehose asume esa función de IAM y obtiene acceso al bucket, la clave y el grupo de CloudWatch registros y las transmisiones especificados.

Utilice la siguiente política de acceso para permitir que Amazon Data Firehose acceda a su bucket y AWS KMS clave de S3. Si no es el propietario del bucket de S3, agregue s3:PutObjectAcl a la lista de acciones de Amazon S3. Esto otorga al propietario del bucket acceso total a los objetos entregados por Amazon Data Firehose.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

La política anterior también incluye una declaración que permite el acceso a Amazon Kinesis Data Streams. Si no utiliza Kinesis Data Streams como origen de datos, puede eliminar dicha declaración. Si utilizas Amazon MSK como fuente, puedes sustituir esa afirmación por la siguiente:

{ "Sid":"", "Effect":"Allow", "Action":[ "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka-cluster:Connect" ], "Resource":"arn:aws:kafka:{{mskClusterRegion}}:{{mskClusterAccount}}:cluster/{{mskClusterName}}/{{clusterUUID}}" }, { "Sid":"", "Effect":"Allow", "Action":[ "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:ReadData" ], "Resource":"arn:aws:kafka:{{mskClusterRegion}}:{{mskClusterAccount}}:topic/{{mskClusterName}}/{{clusterUUID}}/{{mskTopicName}}" }, { "Sid":"", "Effect":"Allow", "Action":[ "kafka-cluster:DescribeGroup" ], "Resource":"arn:aws:kafka:{{mskClusterRegion}}:{{mskClusterAccount}}:group/{{mskClusterName}}/{{clusterUUID}}/*" }

Para obtener más información sobre cómo permitir que otros AWS servicios accedan a sus AWS recursos, consulte Creación de un rol para delegar permisos a un AWS servicio en la Guía del usuario de IAM.

Para obtener información sobre cómo conceder a Amazon Data Firehose acceso a un destino de Amazon S3 en otra cuenta, consulte. Entrega entre cuentas en un destino de Amazon S3

Conceda a Amazon Data Firehose acceso a un destino de Amazon Redshift

Consulte lo siguiente cuando conceda acceso a Amazon Data Firehose cuando utilice un destino de Amazon Redshift.

Rol de IAM y política de acceso

Cuando utiliza un destino de Amazon Redshift, Amazon Data Firehose entrega los datos a su bucket de S3 como ubicación intermedia. Opcionalmente, puede usar una AWS KMS clave de su propiedad para el cifrado de datos. A continuación, Amazon Data Firehose carga los datos del bucket de S3 en el clúster aprovisionado de Amazon Redshift o en el grupo de trabajo Amazon Redshift Serverless. Si el registro de errores está activado, Amazon Data Firehose también envía los errores de entrega de datos al grupo de CloudWatch registros y a las transmisiones. Amazon Data Firehose utiliza el nombre de usuario y la contraseña de Amazon Redshift especificados para acceder al clúster aprovisionado o al grupo de trabajo Amazon Redshift Serverless, y utiliza una función de IAM para acceder al bucket, la clave, el grupo de registros y las transmisiones especificados. CloudWatch Debes tener un rol de IAM al crear una transmisión de Firehose.

Utilice la siguiente política de acceso para permitir que Amazon Data Firehose acceda a su bucket y AWS KMS clave de S3. Si no es propietario del bucket de S3, s3:PutObjectAcl añádalo a la lista de acciones de Amazon S3, que otorgan al propietario del bucket acceso total a los objetos entregados por Amazon Data Firehose. Esta política también incluye una declaración que permite el acceso a Amazon Kinesis Data Streams. Si no utiliza Kinesis Data Streams como origen de datos, puede eliminar dicha declaración.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

Para obtener más información sobre cómo permitir que otros AWS servicios accedan a sus AWS recursos, consulte Creación de un rol para delegar permisos a un AWS servicio en la Guía del usuario de IAM.

Acceso mediante VPC a un clúster aprovisionado de Amazon Redshift o un grupo de trabajo de Amazon Redshift sin servidor

Si el clúster aprovisionado de Amazon Redshift o el grupo de trabajo de Amazon Redshift sin servidor está en una nube privada virtual (VPC), debe ser de acceso público y tener una dirección IP pública. Además, conceda a Amazon Data Firehose acceso a su clúster aprovisionado de Amazon Redshift o grupo de trabajo Amazon Redshift Serverless desbloqueando las direcciones IP de Amazon Data Firehose. Amazon Data Firehose utiliza actualmente un bloque CIDR para cada región disponible:

  • 13.58.135.96/27 para Este de EE. UU. (Ohio)

  • 52.70.63.192/27 para Este de EE. UU. (Norte de Virginia)

  • 13.57.135.192/27 para Oeste de EE. UU. (Norte de California)

  • 52.89.255.224/27 para Oeste de EE. UU. (Oregón)

  • 18.253.138.96/27para AWS GovCloud (este de EE. UU.)

  • 52.61.204.160/27para AWS GovCloud (US-West)

  • 35.183.92.128/27 para Canadá (centro)

  • 40.176.98.192/27para Canada West (Calgary)

  • 18.162.221.32/27 para Asia-Pacífico (Hong Kong)

  • 13.232.67.32/27 para Asia-Pacífico (Bombay)

  • 18.60.192.128/27 para Asia-Pacífico (Hyderabad)

  • 13.209.1.64/27 para Asia Pacífico (Seúl)

  • 13.228.64.192/27 para Asia Pacífico (Singapur)

  • 13.210.67.224/27 para Asia Pacífico (Sídney)

  • 108.136.221.64/27 para Asia-Pacífico (Yakarta)

  • 13.113.196.224/27 para Asia Pacífico (Tokio)

  • 13.208.177.192/27 para Asia-Pacífico (Osaka)

  • 52.81.151.32/27 para China (Pekín)

  • 161.189.23.64/27 para China (Ningxia)

  • 16.62.183.32/27 para Europa (Zúrich)

  • 35.158.127.160/27 para Europa (Fráncfort)

  • 52.19.239.192/27 para Europa (Irlanda)

  • 18.130.1.96/27 para Europa (Londres)

  • 35.180.1.96/27 para Europa (París)

  • 13.53.63.224/27 para Europa (Estocolmo)

  • 15.185.91.0/27 para Medio Oriente (Baréin)

  • 18.228.1.128/27 para América del Sur (São Paulo)

  • 15.161.135.128/27 para Europa (Milán)

  • 13.244.121.224/27 para África (Ciudad del Cabo)

  • 3.28.159.32/27 para Medio Oriente (EAU)

  • 51.16.102.0/27 para Israel (Tel Aviv)

  • 16.50.161.128/27 para Asia-Pacífico (Melbourne)

Para obtener más información acerca de cómo desbloquear direcciones IP, consulte el paso Autorización de acceso al clúster en la Guía de introducción a Amazon Redshift.

Conceda a Amazon Data Firehose acceso a un destino de servicio público OpenSearch

Cuando utiliza un destino de OpenSearch servicio, Amazon Data Firehose envía los datos a su clúster de OpenSearch servicios y, al mismo tiempo, realiza copias de seguridad de todos los documentos fallidos o de todos los documentos en su bucket de S3. Si el registro de errores está activado, Amazon Data Firehose también envía los errores de entrega de datos al grupo de CloudWatch registros y a las transmisiones. Amazon Data Firehose utiliza una función de IAM para acceder al dominio de OpenSearch servicio, al bucket de S3, a la AWS KMS clave y al grupo de CloudWatch registros y a las transmisiones especificados. Debes tener un rol de IAM al crear una transmisión de Firehose.

Utilice la siguiente política de acceso para permitir que Amazon Data Firehose acceda a su bucket, dominio de OpenSearch servicio y AWS KMS clave de S3. Si no es propietario del bucket de S3, s3:PutObjectAcl añádalo a la lista de acciones de Amazon S3, lo que otorga al propietario del bucket acceso total a los objetos entregados por Amazon Data Firehose. Esta política también incluye una declaración que permite el acceso a Amazon Kinesis Data Streams. Si no utiliza Kinesis Data Streams como origen de datos, puede eliminar dicha declaración.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "es:DescribeDomain", "es:DescribeDomains", "es:DescribeDomainConfig", "es:ESHttpPost", "es:ESHttpPut" ], "Resource": [ "arn:aws:es:region:account-id:domain/domain-name", "arn:aws:es:region:account-id:domain/domain-name/*" ] }, { "Effect": "Allow", "Action": [ "es:ESHttpGet" ], "Resource": [ "arn:aws:es:region:account-id:domain/domain-name/_all/_settings", "arn:aws:es:region:account-id:domain/domain-name/_cluster/stats", "arn:aws:es:region:account-id:domain/domain-name/index-name*/_mapping/type-name", "arn:aws:es:region:account-id:domain/domain-name/_nodes", "arn:aws:es:region:account-id:domain/domain-name/_nodes/stats", "arn:aws:es:region:account-id:domain/domain-name/_nodes/*/stats", "arn:aws:es:region:account-id:domain/domain-name/_stats", "arn:aws:es:region:account-id:domain/domain-name/index-name*/_stats", "arn:aws:es:region:account-id:domain/domain-name/" ] }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

Para obtener más información sobre cómo permitir que otros AWS servicios accedan a sus AWS recursos, consulte Creación de un rol para delegar permisos a un AWS servicio en la Guía del usuario de IAM.

Para obtener información sobre cómo conceder a Amazon Data Firehose acceso a un clúster de OpenSearch servicios de otra cuenta, consulte. Entrega multicuenta a un destino de servicio OpenSearch

Otorgue a Amazon Data Firehose acceso a un destino de OpenSearch servicio en una VPC

Si su dominio de OpenSearch servicio está en una VPC, asegúrese de conceder a Amazon Data Firehose los permisos que se describen en la sección anterior. Además, debe conceder a Amazon Data Firehose los siguientes permisos para que pueda acceder a la VPC de su dominio OpenSearch de servicio.

  • ec2:DescribeVpcs

  • ec2:DescribeVpcAttribute

  • ec2:DescribeSubnets

  • ec2:DescribeSecurityGroups

  • ec2:DescribeNetworkInterfaces

  • ec2:CreateNetworkInterface

  • ec2:CreateNetworkInterfacePermission

  • ec2:DeleteNetworkInterface

importante

No revoques estos permisos después de crear la transmisión Firehose. Si revocas estos permisos, tu transmisión de Firehose se degradará o dejará de entregar datos a OpenSearch tu dominio de servicio cada vez que el servicio intente consultar o actualizar los ENI.

importante

Cuando especifique subredes para entregar datos al destino en una VPC privada, asegúrese de tener una cantidad suficiente de direcciones IP libres en las subredes elegidas. Si no hay una dirección IP libre disponible en una subred específica, Firehose no puede crear ni añadir ENI para la entrega de datos en la VPC privada y la entrega se degradará o fallará.

Cuando creas o actualizas tu transmisión de Firehose, especificas un grupo de seguridad para que Firehose lo utilice cuando envíe datos a tu dominio de servicio. OpenSearch Puedes usar el mismo grupo de seguridad que usa el dominio del OpenSearch servicio o uno diferente. Si especifica un grupo de seguridad diferente, asegúrese de que permita el tráfico HTTPS saliente al grupo de seguridad del dominio del OpenSearch servicio. Asegúrese también de que el grupo de seguridad del dominio de OpenSearch servicio permita el tráfico HTTPS desde el grupo de seguridad que especificó al configurar la transmisión de Firehose. Si utilizas el mismo grupo de seguridad tanto para la transmisión de Firehose como para el dominio de OpenSearch servicio, asegúrate de que la regla de entrada del grupo de seguridad permita el tráfico HTTPS. Para obtener más información acerca de las reglas de los grupos de seguridad, consulte Reglas del grupo de seguridad en la documentación de Amazon VPC.

Conceda a Amazon Data Firehose acceso a un destino público sin servidor OpenSearch

Cuando utiliza un destino OpenSearch sin servidor, Amazon Data Firehose envía los datos a OpenSearch su colección sin servidor y, al mismo tiempo, realiza copias de seguridad de todos los documentos fallidos o de todos los documentos en su bucket de S3. Si el registro de errores está activado, Amazon Data Firehose también envía los errores de entrega de datos al grupo de CloudWatch registros y a las transmisiones. Amazon Data Firehose utiliza una función de IAM para acceder a la colección OpenSearch Serverless, el bucket de S3, la AWS KMS clave y el grupo de CloudWatch registros y las transmisiones especificados. Debes tener un rol de IAM al crear una transmisión de Firehose.

Utilice la siguiente política de acceso para permitir que Amazon Data Firehose acceda al bucket de S3, al dominio OpenSearch sin servidor y a la clave. AWS KMS Si no es propietario del bucket de S3, s3:PutObjectAcl añádalo a la lista de acciones de Amazon S3, lo que otorga al propietario del bucket acceso total a los objetos entregados por Amazon Data Firehose. Esta política también incluye una declaración que permite el acceso a Amazon Kinesis Data Streams. Si no utiliza Kinesis Data Streams como origen de datos, puede eliminar dicha declaración.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] }, { "Effect": "Allow", "Action": "aoss:APIAccessAll", "Resource": "arn:aws:aoss:region:account-id:collection/collection-id" } ] }

Además de la política anterior, también debe configurar Amazon Data Firehose para que tenga los siguientes permisos mínimos asignados en una política de acceso a datos:

[ { "Rules":[ { "ResourceType":"index", "Resource":[ "index/target-collection/target-index" ], "Permission":[ "aoss:WriteDocument", "aoss:UpdateIndex", "aoss:CreateIndex" ] } ], "Principal":[ "arn:aws:sts::account-id:assumed-role/firehose-delivery-role-name/*" ] } ]

Para obtener más información sobre cómo permitir que otros AWS servicios accedan a sus AWS recursos, consulte Creación de un rol para delegar permisos a un AWS servicio en la Guía del usuario de IAM.

Otorgue a Amazon Data Firehose acceso a un destino OpenSearch sin servidor en una VPC

Si su colección OpenSearch sin servidor está en una VPC, asegúrese de conceder a Amazon Data Firehose los permisos que se describen en la sección anterior. Además, debe conceder a Amazon Data Firehose los siguientes permisos para que pueda acceder a la VPC de su colección OpenSearch Serverless.

  • ec2:DescribeVpcs

  • ec2:DescribeVpcAttribute

  • ec2:DescribeSubnets

  • ec2:DescribeSecurityGroups

  • ec2:DescribeNetworkInterfaces

  • ec2:CreateNetworkInterface

  • ec2:CreateNetworkInterfacePermission

  • ec2:DeleteNetworkInterface

importante

No revoques estos permisos después de crear la transmisión Firehose. Si revocas estos permisos, tu transmisión de Firehose se degradará o dejará de entregar datos a OpenSearch tu dominio de servicio cada vez que el servicio intente consultar o actualizar los ENI.

importante

Cuando especifique subredes para entregar datos al destino en una VPC privada, asegúrese de tener una cantidad suficiente de direcciones IP libres en las subredes elegidas. Si no hay una dirección IP libre disponible en una subred específica, Firehose no puede crear ni añadir ENI para la entrega de datos en la VPC privada y la entrega se degradará o fallará.

Cuando creas o actualizas tu transmisión de Firehose, especificas un grupo de seguridad para que Firehose lo use cuando envíe datos a tu colección Serverless. OpenSearch Puedes usar el mismo grupo de seguridad que usa la colección OpenSearch Serverless o uno diferente. Si especifica un grupo de seguridad diferente, asegúrese de que permita el tráfico HTTPS saliente al grupo de seguridad de la colección OpenSearch Serverless. Asegúrese también de que el grupo de seguridad de la colección OpenSearch Serverless permita el tráfico HTTPS desde el grupo de seguridad que especificó al configurar la transmisión Firehose. Si utilizas el mismo grupo de seguridad tanto para la transmisión de Firehose como para la colección OpenSearch Serverless, asegúrate de que la regla de entrada del grupo de seguridad permita el tráfico HTTPS. Para obtener más información acerca de las reglas de los grupos de seguridad, consulte Reglas del grupo de seguridad en la documentación de Amazon VPC.

Conceda a Amazon Data Firehose acceso a un destino de Splunk

Cuando utiliza un destino de Splunk, Amazon Data Firehose envía los datos a su punto de conexión HTTP Event Collector (HEC) de Splunk. También hace una copia de seguridad de esos datos en el depósito de Amazon S3 que especifique y, si lo desea, puede utilizar una AWS KMS clave de su propiedad para el cifrado del lado del servidor de Amazon S3. Si el registro de errores está activado, Firehose envía los errores de entrega de datos a sus flujos de CloudWatch registro. También se puede utilizar AWS Lambda para la transformación de datos.

Si utilizas un balanceador de AWS cargas, asegúrate de que sea un Classic Load Balancer o un Application Load Balancer. Además, habilite las sesiones fijas basadas en la duración con la caducidad de las cookies deshabilitada para Classic Load Balancer y la caducidad establecida en el máximo (7 días) para Application Load Balancer. Para obtener información sobre cómo hacerlo, consulte Duración de la sesión basada en la duración para Classic Load Balancer o Application Load Balancer.

Debes tener un rol de IAM al crear una transmisión de Firehose. Firehose asume esa función de IAM y obtiene acceso al bucket, la clave y el grupo de CloudWatch registros y las transmisiones especificados.

Utilice la siguiente política de acceso para permitir que Amazon Data Firehose acceda a su bucket de S3. Si no es propietario del bucket de S3, s3:PutObjectAcl añádalo a la lista de acciones de Amazon S3, que otorgan al propietario del bucket acceso total a los objetos entregados por Amazon Data Firehose. Esta política también otorga a Amazon Data Firehose acceso para el registro de errores y CloudWatch AWS Lambda para la transformación de datos. La política también incluye una declaración que permite el acceso a Amazon Kinesis Data Streams. Si no utiliza Kinesis Data Streams como origen de datos, puede eliminar dicha declaración. Amazon Data Firehose no utiliza IAM para acceder a Splunk. Para tener acceso a Splunk, utiliza el token de HEC.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:*" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

Para obtener más información sobre cómo permitir que otros AWS servicios accedan a sus AWS recursos, consulte Crear un rol para delegar permisos a un AWS servicio en la Guía del usuario de IAM.

Acceso a Splunk en VPC

Si la plataforma Splunk está en una VPC, debe ser de acceso público y tener una dirección IP pública. Además, conceda a Amazon Data Firehose acceso a su plataforma Splunk desbloqueando las direcciones IP de Amazon Data Firehose. Amazon Data Firehose utiliza actualmente los siguientes bloques CIDR.

  • 18.216.68.160/27, 18.216.170.64/27, 18.216.170.96/27 para Este de EE. UU. (Ohio)

  • 34.238.188.128/26, 34.238.188.192/26, 34.238.195.0/26 para Este de EE. UU. (Norte de Virginia)

  • 13.57.180.0/26 para Oeste de EE. UU. (Norte de California)

  • 34.216.24.32/27, 34.216.24.192/27, 34.216.24.224/27 para Oeste de EE. UU. (Oregón)

  • 18.253.138.192/26para AWS GovCloud (US-East)

  • 52.61.204.192/26para AWS GovCloud (US-West)

  • 18.162.221.64/26 para Asia-Pacífico (Hong Kong)

  • 13.232.67.64/26 para Asia-Pacífico (Bombay)

  • 13.209.71.0/26 para Asia Pacífico (Seúl)

  • 13.229.187.128/26 para Asia Pacífico (Singapur)

  • 13.211.12.0/26 para Asia Pacífico (Sídney)

  • 13.230.21.0/27, 13.230.21.32/27 para Asia Pacífico (Tokio)

  • 51.16.102.64/26 para Israel (Tel Aviv)

  • 35.183.92.64/26 para Canadá (centro)

  • 40.176.98.128/26para Canada West (Calgary)

  • 18.194.95.192/27, 18.194.95.224/27, 18.195.48.0/27 para Europa (Fráncfort)

  • 34.241.197.32/27, 34.241.197.64/27, 34.241.197.96/27 para Europa (Irlanda)

  • 18.130.91.0/26 para Europa (Londres)

  • 35.180.112.0/26 para Europa (París)

  • 13.53.191.0/26 para Europa (Estocolmo)

  • 15.185.91.64/26 para Medio Oriente (Baréin)

  • 18.228.1.192/26 para América del Sur (São Paulo)

  • 15.161.135.192/26 para Europa (Milán)

  • 13.244.165.128/26 para África (Ciudad del Cabo)

  • 13.208.217.0/26 para Asia-Pacífico (Osaka)

  • 52.81.151.64/26 para China (Pekín)

  • 161.189.23.128/26 para China (Ningxia)

  • 108.136.221.128/26 para Asia-Pacífico (Yakarta)

  • 3.28.159.64/26 para Medio Oriente (EAU)

  • 51.16.102.64/26 para Israel (Tel Aviv)

  • 16.62.183.64/26 para Europa (Zúrich)

  • 18.60.192.192/26 para Asia-Pacífico (Hyderabad)

  • 16.50.161.192/26 para Asia-Pacífico (Melbourne)

Acceso a Snowflake o al punto final HTTP

No hay ningún subconjunto de rangos de direcciones AWS IP específico de Amazon Data Firehose cuando el destino es un punto final HTTP o clústeres públicos de Snowflake.

Para añadir Firehose a una lista de permitidos para clústeres públicos de Snowflake o a tus puntos de conexión HTTP o HTTPS públicos, añade todos los rangos de direcciones AWS IP actuales a tus reglas de entrada.

nota

Las notificaciones no siempre provienen de direcciones IP de la misma AWS región que el tema asociado. Debes incluir el rango de direcciones AWS IP de todas las regiones.

Conceda a Amazon Data Firehose acceso a un destino con copos de nieve

Cuando utilizas Snowflake como destino, Firehose envía los datos a una cuenta de Snowflake mediante la URL de tu cuenta de Snowflake. También hace copias de seguridad de los datos de error en el depósito de Amazon Simple Storage Service que especifique y, si lo desea, puede utilizar una AWS Key Management Service clave de su propiedad para el cifrado del lado del servidor de Amazon S3. Si el registro de errores está activado, Firehose envía los errores de entrega de datos a tus flujos de CloudWatch Logs.

Debes tener un rol de IAM antes de crear una transmisión de Firehose. Firehose asume esa función de IAM y obtiene acceso al bucket, la clave y el grupo de CloudWatch registros y las transmisiones especificados. Usa la siguiente política de acceso para permitir que Firehose acceda a tu bucket de S3. Si no eres propietario del bucket de S3, añádelo s3:PutObjectAcl a la lista de acciones de Amazon Simple Storage Service, que otorgan al propietario del bucket acceso total a los objetos entregados por Firehose. Esta política también otorga a Firehose acceso CloudWatch para el registro de errores. La política también incluye una declaración que permite el acceso a Amazon Kinesis Data Streams. Si no utiliza Kinesis Data Streams como origen de datos, puede eliminar dicha declaración. Firehose no usa IAM para acceder a Snowflake. Para acceder a Snowflake, utiliza la URL de su cuenta de Snowflake y el ID de PrivateLink Vpce en el caso de un clúster privado.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:*" ] } ] }

Para obtener más información sobre cómo permitir que otros AWS servicios accedan a sus AWS recursos, consulte Creación de un rol para delegar permisos a un AWS servicio en la Guía del usuario de IAM.

Acceso a Snowflake en VPC

Si su clúster de Snowflake tiene habilitados los enlaces privados, Firehose utiliza puntos de enlace de VPC para entregar los datos a su clúster privado sin tener que pasar por la Internet pública. Para ello, crea reglas de red de Snowflake que permitan la entrada desde los siguientes puntos para el clúster en el que se encuentra. AwsVpceIds Región de AWS Para obtener más información, consulte Crear una regla de red en la Guía del usuario de Snowflake.

ID de punto de conexión de VPC que se utilizarán en función de las regiones en las que se encuentre el clúster
Región de AWS VPCE IDs
Este de EE. UU. (Ohio)

vpce-0d96cafcd96a50aeb

vpce-0cec34343d48f537b

Este de EE. UU. (Norte de Virginia)

vpce-0b4d7e8478e141ba8

vpce-0b75cd681fb507352

vpce-01c03e63820ec00d8

vpce-0c2cfc51dc2882422

vpce-06ca862f019e4e056

vpce-020cda0cfa63f8d1c

vpce-0b80504a1a783cd70

vpce-0289b9ff0b5259a96

vpce-0d7add8628bd69a12

vpce-02bfb5966cc59b2af

vpce-09e707674af878bf2

vpce-049b52e96cc1a2165

vpce-0bb6c7b7a8a86cdbb

vpce-03b22d599f51e80f3

vpce-01d60dc60fc106fe1

vpce-0186d20a4b24ecbef

vpce-0533906401a36e416

vpce-05111fb13d396710e

vpce-0694613f4fbd6f514

vpce-09b21cb25fe4cc4f4

vpce-06029c3550e4d2399

vpce-00961862a21b033da

vpce-01620b9ae33273587

vpce-078cf4ec226880ac9

vpce-0d711bf076ce56381

vpce-066b7e13cbfca6f6e

vpce-0674541252d9ccc26

vpce-03540b88dedb4b000

vpce-0b1828e79ad394b95

vpce-0dc0e6f001fb1a60d

vpce-0d8f82e71a244098a

vpce-00e374d9e3f1af5ce

vpce-0c1e3d6631ddb442f

Oeste de EE. UU. (Oregón)

vpce-0f60f72da4cd1e4e7

vpce-0c60d21eb8b1669fd

vpce-01c4e3e29afdafbef

vpce-0cc6bf2a88da139de

vpce-0797e08e169e50662

vpce-033cbe480381b5c0e

vpce-00debbdd8f9eb10a5

vpce-08ec2f386c809e889

vpce-0856d14310857b545

Europa (Fráncfort)

vpce-068dbb7d71c9460fb

vpce-0a7a7f095942d4ec9

Europa (Irlanda)

vpce-06857e59c005a6276

vpce-04390f4f8778b75f2

vpce-011fd2b1f0aa172fd

Asia-Pacífico (Tokio)

vpce-06369e5258144e68a

vpce-0f2363cdb8926fbe8

Asia-Pacífico (Singapur)

vpce-049cd46cce7a12d52

vpce-0e8965a1a4bdb8941

Asia-Pacífico (Seúl)

vpce-0aa444d9001e1faa1

vpce-04a49d4dcfd02b884

Asia-Pacífico (Sídney)

vpce-048a60a182c52be63

vpce-03c19949787fd1859

Conceda a Amazon Data Firehose acceso a un destino de punto final HTTP

Puede usar Amazon Data Firehose para entregar datos a cualquier destino de punto final HTTP. Amazon Data Firehose también hace copias de seguridad de esos datos en el bucket de Amazon S3 que especifique y, si lo desea, puede utilizar una AWS KMS clave de su propiedad para el cifrado del lado del servidor de Amazon S3. Si el registro de errores está activado, Amazon Data Firehose envía los errores de entrega de datos a sus flujos de CloudWatch registro. También se puede utilizar AWS Lambda para la transformación de datos.

Debes tener un rol de IAM al crear una transmisión de Firehose. Amazon Data Firehose asume esa función de IAM y obtiene acceso al bucket, la clave y el grupo de CloudWatch registros y las transmisiones especificados.

Utilice la siguiente política de acceso para permitir que Amazon Data Firehose acceda al bucket de S3 que especificó para la copia de seguridad de los datos. Si no es propietario del bucket de S3, s3:PutObjectAcl añádalo a la lista de acciones de Amazon S3, que otorgan al propietario del bucket acceso total a los objetos entregados por Amazon Data Firehose. Esta política también otorga a Amazon Data Firehose acceso para el registro de errores y CloudWatch AWS Lambda para la transformación de datos. La política también incluye una declaración que permite el acceso a Amazon Kinesis Data Streams. Si no utiliza Kinesis Data Streams como origen de datos, puede eliminar dicha declaración.

importante

Amazon Data Firehose no utiliza la IAM para acceder a destinos de punto final HTTP propiedad de proveedores de servicios externos compatibles, como Datadog, Dynatrace, LogicMonitor MongoDB, New Relic, Splunk o Sumo Logic. Para acceder a un destino de punto final HTTP específico propiedad de un proveedor de servicios externo compatible, póngase en contacto con ese proveedor de servicios para obtener la clave de API o la clave de acceso necesaria para permitir la entrega de datos a ese servicio desde Amazon Data Firehose.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:*" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

Para obtener más información sobre cómo permitir que otros AWS servicios accedan a sus AWS recursos, consulte Creación de un rol para delegar permisos a un AWS servicio en la Guía del usuario de IAM.

importante

Actualmente, Amazon Data Firehose NO admite la entrega de datos a puntos de enlace HTTP de una VPC.

Entrega entre cuentas desde Amazon MSK

Cuando creas una transmisión de Firehose desde tu cuenta de Firehose (por ejemplo, la cuenta B) y tu fuente es un clúster de MSK en otra AWS cuenta (cuenta A), debes tener implementadas las siguientes configuraciones.

Cuenta A:

  1. En la consola de Amazon MSK, elija el clúster aprovisionado y, a continuación, seleccione Propiedades.

  2. En Configuración de red, seleccione Editar y active Conectividad con varias VPC.

  3. En Configuración de seguridad, seleccione Editar política del clúster.

    1. Si el clúster aún no tiene ninguna política configurada, marque Incluir entidad principal de servicio de Firehose y Habilitar entrega de S3 entre cuentas de Firehose. AWS Management Console Generará automáticamente una política con los permisos adecuados.

    2. Si el clúster ya tiene una política configurada, agregue los siguientes permisos a la política existente:

      { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::arn:role/mskaasTestDeliveryRole" }, "Action": [ "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka-cluster:Connect" ], "Resource": "arn:aws:kafka:us-east-1:arn:cluster/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20" // ARN of the cluster }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::arn:role/mskaasTestDeliveryRole" }, "Action": [ "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:ReadData" ], "Resource": "arn:aws:kafka:us-east-1:arn:topic/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/*"//topic of the cluster }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::233450236687:role/mskaasTestDeliveryRole" }, "Action": "kafka-cluster:DescribeGroup", "Resource": "arn:aws:kafka:us-east-1:arn:group/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/*" //topic of the cluster }, }
  4. En Entidad principal de AWS , ingrese el ID de la entidad principal de la cuenta B.

  5. En Tema, especifica el tema de Apache Kafka del que quieres que tu transmisión de Firehose ingiera datos. Una vez creada la transmisión de Firehose, no podrás actualizar este tema.

  6. Seleccione Save changes (Guardar cambios)

Cuenta B:

  1. En la consola Firehose, selecciona Crear transmisión de Firehose con la cuenta B.

  2. En Origen, elija Amazon Managed Streaming para Apache Kafka.

  3. En Configuración de origen, en Clúster de Amazon Managed Streaming para Apache, ingrese el ARN del clúster de Amazon MSK de la cuenta A.

  4. En Tema, especifica el tema de Apache Kafka del que quieres que tu transmisión de Firehose ingiera datos. Una vez creada la transmisión de Firehose, no podrás actualizar este tema.

  5. En Nombre de flujo de entrega, especifique el nombre de su transmisión Firehose.

En la cuenta B, cuando cree su transmisión de Firehose, debe tener una función de IAM (que se crea de forma predeterminada al usar la AWS Management Console) que conceda a la transmisión de Firehose acceso de «lectura» al clúster multicuenta de Amazon MSK para el tema configurado.

A continuación se indica lo que configura la AWS Management Console:

{ "Sid": "", "Effect": "Allow", "Action": [ "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka-cluster:Connect" ], "Resource": "arn:aws:kafka:us-east-1:arn:cluster/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/*" //topic of the cluster }, { "Sid": "", "Effect": "Allow", "Action": [ "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:ReadData" ], "Resource": "arn:aws:kafka:us-east-1:arn:topic/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/mskaas_test_topic" //topic of the cluster }, { "Sid": "", "Effect": "Allow", "Action": [ "kafka-cluster:DescribeGroup" ], "Resource": "arn:aws:kafka:us-east-1:arn:group/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/*" //topic of the cluster }, }

Luego, puede completar el paso opcional de configurar la transformación de registros y la conversión del formato de registros. Para obtener más información, consulte Configurar la transformación de registros y la conversión de formato.

Entrega entre cuentas en un destino de Amazon S3

Puede utilizar las API Amazon Data Firehose AWS CLI o las API para crear una transmisión de Firehose en una AWS cuenta con un destino de Amazon S3 en otra cuenta. El siguiente procedimiento muestra un ejemplo de configuración de una transmisión Firehose propiedad de la cuenta A para entregar datos a un bucket de Amazon S3 propiedad de la cuenta B.

  1. Cree un rol de IAM en la cuenta A siguiendo los pasos descritos en Conceder a Firehose acceso a un destino de Amazon S3.

    nota

    En este caso, el bucket de Amazon S3 especificado en la política de acceso es propiedad de la cuenta B. Asegúrese de añadir acciones s3:PutObjectAcl a la lista de acciones de Amazon S3 de la política de acceso, que otorgan a la cuenta B acceso total a los objetos entregados por Amazon Data Firehose. Este permiso es necesario para la entrega entre cuentas. Amazon Data Firehose establece el encabezado "x-amz-acl" de la solicitud en "»bucket-owner-full-control.

  2. Para permitir el acceso desde el rol de IAM creado anteriormente, cree una política de bucket de S3 en la cuenta B. El código siguiente es un ejemplo de la política del bucket. Para obtener más información, consulte Uso de políticas de bucket y usuario.

    { "Version": "2012-10-17", "Id": "PolicyID", "Statement": [ { "Sid": "StmtID", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::accountA-id:role/iam-role-name" }, "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }
  3. Crea una transmisión de Firehose en la cuenta A con el rol de IAM que creaste en el paso 1.

Entrega multicuenta a un destino de servicio OpenSearch

Puede utilizar las API de Amazon Data Firehose AWS CLI o las API para crear una transmisión de Firehose en una AWS cuenta con un destino de OpenSearch servicio en otra cuenta. El siguiente procedimiento muestra un ejemplo de cómo se puede crear una transmisión Firehose en la cuenta A y configurarla para que entregue datos a un destino de OpenSearch servicio propiedad de la cuenta B.

  1. Cree un rol de IAM en la cuenta A siguiendo los pasos que se describen en Conceda a Amazon Data Firehose acceso a un destino de servicio público OpenSearch .

  2. Para permitir el acceso desde el rol de IAM que creó en el paso anterior, cree una política de OpenSearch servicio en la cuenta B. El siguiente JSON es un ejemplo.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::Account-A-ID:role/firehose_delivery_role " }, "Action": "es:ESHttpGet", "Resource": [ "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_all/_settings", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_cluster/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/roletest*/_mapping/roletest", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes/*/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/roletest*/_stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/" ] } ] }
  3. Crea una transmisión de Firehose en la cuenta A con el rol de IAM que creaste en el paso 1. Al crear la transmisión Firehose, utilice las API AWS CLI o las API de Amazon Data Firehose y especifique el ClusterEndpoint campo en lugar de Servicio. DomainARN OpenSearch

nota

Para crear una transmisión de Firehose en una AWS cuenta con un destino de OpenSearch servicio en otra cuenta, debe utilizar las AWS CLI API Firehose de Amazon Data. No puede utilizarlas AWS Management Console para crear este tipo de configuración multicuenta.

Uso de etiquetas para controlar el acceso

Puede utilizar el Condition elemento (o Condition bloque) opcional en una política de IAM para ajustar el acceso a las operaciones de Amazon Data Firehose en función de las claves y los valores de las etiquetas. En las siguientes subsecciones se describe cómo hacerlo para las distintas operaciones de Amazon Data Firehose. Para obtener más información sobre el uso del elemento Condition y los operadores que puede utilizar dentro de él, consulte Elementos de política JSON de IAM: Condition.

CreateDeliveryStream

Para la operación CreateDeliveryStream, utilice la clave de condición aws:RequestTag. En el ejemplo siguiente, MyKey y MyValue representan la clave y el valor correspondiente de una etiqueta. Para obtener más información, consulte Conceptos básicos de etiquetas.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "firehose:CreateDeliveryStream", "firehose:TagDeliveryStream" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/MyKey": "MyValue" } } }] }

TagDeliveryStream

Para la operación TagDeliveryStream, utilice la clave de condición aws:TagKeys. En el ejemplo siguiente, MyKey es un ejemplo de clave de etiqueta.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "firehose:TagDeliveryStream", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "MyKey" } } } ] }

UntagDeliveryStream

Para la operación UntagDeliveryStream, utilice la clave de condición aws:TagKeys. En el ejemplo siguiente, MyKey es un ejemplo de clave de etiqueta.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "firehose:UntagDeliveryStream", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "MyKey" } } } ] }

ListDeliveryStreams

No se puede utilizar el control de acceso basado en etiquetas con ListDeliveryStreams.

Otras operaciones de Amazon Data Firehose

Para todas las operaciones de Amazon Data Firehose que no seanCreateDeliveryStream,TagDeliveryStream, y UntagDeliveryStreamListDeliveryStreams, utilice la clave de aws:RequestTag condición. En el ejemplo siguiente, MyKey y MyValue representan la clave y el valor correspondiente de una etiqueta.

ListDeliveryStreams, usa la clave de firehose:ResourceTag condición para controlar el acceso en función de las etiquetas de esa transmisión de Firehose.

En el ejemplo siguiente, MyKey y MyValue representan la clave y el valor correspondiente de una etiqueta. La política solo se aplicaría a las transmisiones de Data Firehose que tengan una etiqueta denominada MyKey con un valor de. MyValue Para obtener más información sobre cómo controlar el acceso en función de las etiquetas de los recursos, consulte Controlar el acceso a AWS los recursos mediante etiquetas en la Guía del usuario de IAM.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "firehose:DescribeDeliveryStream", "Resource": "*", "Condition": { "StringEquals": { "firehose:ResourceTag/MyKey": "MyValue" } } } ] }