Utilisation des stratégies basées sur une identité (Politiques IAM) pour - Manuel du développeur des applications Amazon Kinesis Data Analytics pour SQL

Pour les nouveaux projets, nous vous recommandons d’utiliser le nouveau service géré pour Apache Flink Studio plutôt que les applications Kinesis Data Analytics pour SQL. Le service géré pour Apache Flink Studio allie facilité d’utilisation et capacités analytiques avancées, ce qui vous permet de créer des applications sophistiquées de traitement des flux en quelques minutes.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation des stratégies basées sur une identité (Politiques IAM) pour

Les exemples suivants de stratégies basées sur les identités illustrent comment un administrateur de compte peut attacher des stratégies d’autorisation à des identités IAM (autrement dit, des utilisateurs, des groupes et des rôles) et ainsi accorder des autorisations pour effectuer des opérations sur les ressources.

Important

Nous vous recommandons tout d'abord d'examiner les rubriques de présentation qui détaillent les concepts de base et les options disponibles pour gérer l'accès à vos ressources . Pour plus d’informations, consultez Présentation de la gestion des autorisations d'accès à vos ressources .

Un exemple de politique d’autorisation est exposé ci-dessous.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1473028104000", "Effect": "Allow", "Action": [ "kinesisanalytics:CreateApplication" ], "Resource": [ "*" ] } ] }

La stratégie comporte une instruction :

  • La première instruction accorde les autorisations pour une action (kinesisanalytics:CreateApplication) au niveau d’une ressource en utilisant l’Amazon Resource Name (ARN) de l’application. Dans ce cas, l'ARN spécifie un caractère générique (*) pour indiquer que l'autorisation est accordée pour n'importe quelle ressource.

Pour visualiser un tableau répertoriant toutes les opérations d’API et les ressources auxquelles elles s’appliquent, voir Autorisations d’API : référence des actions, des autorisations et des ressources.

Autorisations requises pour utiliser la console

Pour qu'un utilisateur puisse utiliser la console , vous devez lui accorder les autorisations nécessaires. Par exemple, si vous voulez autoriser l'utilisateur à créer une application, vous devez lui accorder des autorisations qui lui montrent les sources de streaming dans le compte pour qu'il puisse configurer l'entrée et la sortie au niveau de la console.

Nous vous recommandons la procédure suivante :

Stratégies (prédéfinies) gérées par Amazon pour

AWS répond à de nombreux cas d'utilisation courants en fournissant des politiques IAM autonomes créées et administrées par. AWS Ces stratégies gérées par Amazon octroient les autorisations requises dans les cas d’utilisation courants, afin de vous épargner les réflexions sur les autorisations requises. Pour plus d’informations, consultez Stratégies gérées par Amazon dans le Guide de l’utilisateur IAM.

Les stratégies gérées par Amazon suivantes, que vous pouvez attacher aux utilisateurs de votre compte, sont propres à :

  • AmazonKinesisAnalyticsReadOnly : accorde des autorisations pour des actions qui permettent à un utilisateur de répertorier les applications et de vérifier la configuration d’entrée/sortie. Il accorde également des autorisations qui permettent à un utilisateur de consulter la liste des flux Kinesis et des flux de diffusion Firehose. Comme l'application est en cours d'exécution, l'utilisateur peut afficher les données source et les résultats des analyses en temps réel sur la console.

     

  • AmazonKinesisAnalyticsFullAccess : accorde les autorisations pour toutes les actions et toutes les autres autorisations qui permettent à l’utilisateur de créer et gérer des applications. Toutefois, notez les points suivants :

     

    • Ces autorisations ne sont pas suffisantes si l'utilisateur souhaite créer un nouveau rôle IAM dans la console (ces autorisations permettent à l'utilisateur de sélectionner un rôle existant). Si vous souhaitez que l’utilisateur puisse créer un rôle IAM dans la console, ajoutez la stratégie gérée par Amazon IAMFullAccess.

       

    • Un utilisateur doit avoir l’autorisation pour l’action iam:PassRole afin de spécifier un rôle IAM lors de la configuration d’une application. Cette stratégie gérée par Amazon accorde à l’utilisateur l’autorisation pour l’action iam:PassRole uniquement sur les rôles IAM qui commencent par le préfixe service-role/kinesis-analytics.

      Si l’utilisateur souhaite configurer l’application avec un rôle qui n’a pas ce préfixe, vous devez d’abord accorder explicitement l’autorisation utilisateur pour l’action iam:PassRole sur le rôle spécifique.

Vous pouvez également créer vos propres politiques IAM personnalisées afin d'accorder des autorisations pour les actions et les ressources . Vous pouvez attacher ces stratégies personnalisées aux utilisateurs ou groupes qui nécessitent ces autorisations.

Exemples de politiques gérées par le client

Cette section fournit un ensemble d'exemples de stratégies que vous pouvez associer à un utilisateur. Si vous créez des stratégies pour la première fois, nous vous recommandons de commencer par créer un utilisateur dans votre compte, puis de lui associer les stratégies dans l'ordre décrit dans les étapes de cette section. Vous pouvez alors utiliser la console pour vérifier les effets de chaque stratégie lorsque vous l'attachez à l'utilisateur.

Au départ, l'utilisateur ne dispose pas des autorisations requises et ne peut donc exécuter aucune action dans la console. À mesure que vous lui associez des stratégies, vous pouvez vérifier que l'utilisateur peut exécuter diverses actions dans la console. 

Nous vous recommandons d'utiliser deux fenêtres de navigateur. Dans une fenêtre, créez l'utilisateur et accordez des autorisations. Dans l'autre, connectez-vous à l' AWS Management Console aide des informations d'identification de l'utilisateur et vérifiez les autorisations que vous leur accordez.

Pour des exemples qui illustrent comment créer un rôle IAM que vous pouvez utiliser comme rôle d’exécution pour votre application, consultez Création de rôles IAM dans le Guide de l’utilisateur IAM.

Étape 1 : Création d'un utilisateur IAM

Vous devez d’abord créer un utilisateur, l’ajouter à un groupe IAM possédant des autorisations d’administration, puis lui attribuer ces autorisations. Vous pouvez ensuite accéder à AWS l'aide d'une URL spéciale et des informations d'identification de cet utilisateur.

Pour obtenir des instructions, veuillez consulter Création de votre premier groupe d'utilisateurs et d'administrateurs IAM dans le Guide de l'utilisateur IAM.

Étape 2 : Octroyer des autorisations à l’utilisateur pour des actions qui sont pas spécifiques à

Tout d'abord, nous devons accorder une autorisation à l'utilisateur pour toutes les actions qui ne sont pas spécifiques à et dont l'utilisateur aura besoin lorsqu'il utilise des applications . Il s'agit notamment des autorisations pour travailler avec les flux (actions Amazon Kinesis Data Streams, actions Amazon Data Firehose) et des autorisations pour les actions. CloudWatch Attachez la stratégie suivante à l'utilisateur.

Vous devez mettre à jour la stratégie en fournissant un nom de rôle IAM pour lequel vous voulez accorder l'autorisation iam:PassRole ou spécifier un caractère générique (*) indiquant tous les rôles IAM. Il ne s'agit pas d'une pratique sécurisée ; cependant, vous pouvez ne pas disposer d'un rôle IAM créé lors de ce test.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:ListStreams", "kinesis:PutRecord", "kinesis:PutRecords" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "firehose:DescribeDeliveryStream", "firehose:ListDeliveryStreams" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics" ], "Resource": "*" }, { "Effect": "Allow", "Action": "logs:GetLogEvents", "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:ListPolicyVersions", "iam:ListRoles" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/service-role/role-name" } ] }

Étape 3 : Permettre à l'utilisateur d'afficher une liste d'applications et de voir des détails

La stratégie suivante accorde à un utilisateur les autorisations suivantes :

  • L'autorisation pour l'action kinesisanalytics:ListApplications permettant à l'utilisateur d'afficher la liste des applications. Notez qu'il s'agit d'un appel d'API de niveau service ; vous spécifiez donc « * » comme valeur de Resource.

  • L'autorisation pour l'action kinesisanalytics:DescribeApplication pour pouvoir obtenir des informations sur les applications.

Ajoutez cette stratégie à l'utilisateur.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesisanalytics:ListApplications" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "kinesisanalytics:DescribeApplication" ], "Resource": "arn:aws:kinesisanalytics:aws-region:aws-account-id:application/*" } ] }

Vérifiez ces autorisations en vous connectant à la console à l’aide des informations d’identification de l’utilisateur.

Étape 4 : Permettre à l'utilisateur de démarrer une application spécifique

Si vous voulez que l'utilisateur puisse démarrer l'une des applications existantes, vous pouvez lui attacher la stratégie suivante. Elle fournit l'autorisation pour l'action kinesisanalytics:StartApplication. Vous devez mettre à jour la politique en fournissant votre identifiant de compte, votre AWS région et le nom de l'application.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesisanalytics:StartApplication" ], "Resource": "arn:aws:kinesisanalytics:aws-region:aws-account-id:application/application-name" } ] }

Étape 5 : Permettre à l'utilisateur de créer une application

Si vous voulez que l'utilisateur puisse créer une application , vous pouvez ensuite lui attacher la stratégie suivante. Vous devez mettre à jour la politique et fournir une AWS région, votre identifiant de compte et soit un nom d'application spécifique que vous souhaitez que l'utilisateur crée, soit un « * » afin que l'utilisateur puisse spécifier n'importe quel nom d'application (et ainsi créer plusieurs applications).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1473028104000", "Effect": "Allow", "Action": [ "kinesisanalytics:CreateApplication" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "kinesisanalytics:StartApplication", "kinesisanalytics:UpdateApplication", "kinesisanalytics:AddApplicationInput", "kinesisanalytics:AddApplicationOutput" ], "Resource": "arn:aws:kinesisanalytics:aws-region:aws-account-id:application/application-name" } ] }

Étape 6 : Autoriser l’application à utiliser le prétraitement Lambda

Si vous voulez que l’application puisse utiliser le prétraitement Lambda, attachez la stratégie suivante au rôle.

{ "Sid": "UseLambdaFunction", "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": "<FunctionARN>" }