

# Autorisations IAM pour Runtime AgentCore
<a name="runtime-permissions"></a>

Les autorisations IAM dont vous avez besoin pour créer un agent dans un AgentCore environnement d'exécution et les autorisations de rôle d'exécution dont un agent a besoin pour s'exécuter dans un AgentCore environnement d'exécution sont les suivantes. Vous pouvez également utiliser des politiques basées sur les ressources pour contrôler l'accès à vos ressources d'exécution.

Pour plus d'informations sur l'utilisation de politiques basées sur les ressources pour contrôler l'accès à vos ressources AgentCore d'exécution, consultez [Resource-based les politiques d'Amazon Bedrock](resource-based-policies.md). AgentCore

**Topics**
+ [Utilisez Amazon Bedrock AgentCore](#runtime-permissions-use-agentcore)
+ [Utiliser la AgentCore CLI](#runtime-permissions-cli)
+ [Autorisations utilisateur pour Amazon Bedrock Console AgentCore](#runtime-permissions-console)
+ [Rôle d'exécution pour exécuter un agent dans AgentCore Runtime](#runtime-permissions-execution)

## Utilisez Amazon Bedrock AgentCore
<a name="runtime-permissions-use-agentcore"></a>

Pour utiliser Amazon Bedrock AgentCore, vous pouvez associer la politique [BedrockAgentCoreFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/BedrockAgentCoreFullAccess.html) AWS gérée à votre utilisateur IAM ou à votre rôle IAM. Cette politique AWS gérée accorde des autorisations étendues`GetWorkloadAccessTokenForUserId`, notamment celle qui permet d'émettre des jetons d'accès à la charge de travail à l'aide de chaînes d'identification utilisateur fournies par l'appelant sans vérification du jeton IdP. Nous vous recommandons de créer une politique personnalisée avec uniquement les autorisations requises par votre application en copiant les instructions pertinentes et en limitant les ressources à votre cas d'utilisation spécifique. Pour les déploiements de production dans lesquels votre application dispose de jetons JWT, refusez explicitement `GetWorkloadAccessTokenForUserId` et accordez uniquement. `GetWorkloadAccessTokenForJWT` Pour plus d'informations, voir [Obtenir un jeton d'accès à la charge](get-workload-access-token.md) de travail. Pour utiliser la AgentCore CLI, vous avez besoin d'autorisations [supplémentaires](#runtime-permissions-cli).

## Utiliser la AgentCore CLI
<a name="runtime-permissions-cli"></a>

Pour utiliser la AgentCore CLI, associez la politique IAM suivante à votre utilisateur ou rôle IAM. Pour modifier les autorisations IAM, voir [Modifier les autorisations d'un utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html).

**Important**  
Les politiques IAM créées par la AgentCore CLI sont conçues à des fins de développement et de test. Ces autorisations accordent un accès étendu pour faciliter le prototypage rapide et ne sont pas adaptées aux environnements de production. Pour les déploiements de production, créez des politiques IAM personnalisées qui respectent le principe du moindre privilège et limitent les autorisations aux seules ressources et actions spécifiques requises par votre application Amazon AgentCore Bedrock. Pour obtenir des conseils complets sur la sécurité IAM, consultez [la section Meilleures pratiques de sécurité pour AgentCore Runtime](runtime-security-best-practices.md).

```
{
"Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "IAMRoleManagement",
            "Effect": "Allow",
            "Action": [
                "iam:CreateRole",
                "iam:DeleteRole",
                "iam:GetRole",
                "iam:PutRolePolicy",
                "iam:DeleteRolePolicy",
                "iam:AttachRolePolicy",
                "iam:DetachRolePolicy",
                "iam:TagRole",
                "iam:ListRolePolicies",
                "iam:ListAttachedRolePolicies"
            ],
            "Resource": [
                "arn:aws:iam::*:role/*BedrockAgentCore*",
                "arn:aws:iam::*:role/service-role/*BedrockAgentCore*"
            ]
        },
        {
            "Sid": "CodeBuildProjectAccess",
            "Effect": "Allow",
            "Action": [
                "codebuild:StartBuild",
                "codebuild:BatchGetBuilds",
                "codebuild:ListBuildsForProject",
                "codebuild:CreateProject",
                "codebuild:UpdateProject",
                "codebuild:BatchGetProjects"
            ],
            "Resource": [
                "arn:aws:codebuild:*:*:project/bedrock-agentcore-*",
                "arn:aws:codebuild:*:*:build/bedrock-agentcore-*"
            ]
        },
        {
            "Sid": "CodeBuildListAccess",
            "Effect": "Allow",
            "Action": [
                "codebuild:ListProjects"
            ],
            "Resource": "*"
        },
        {
            "Sid": "IAMPassRoleAccess",
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::*:role/AmazonBedrockAgentCore*",
                "arn:aws:iam::*:role/service-role/AmazonBedrockAgentCore*"
            ]
        },
        {
            "Sid": "CloudWatchLogsAccess",
            "Effect": "Allow",
            "Action": [
                "logs:GetLogEvents",
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:/aws/bedrock-agentcore/*",
                "arn:aws:logs:*:*:log-group:/aws/codebuild/*"
            ]
        },
        {
            "Sid": "S3Access",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket",
                "s3:CreateBucket",
                "s3:PutLifecycleConfiguration"
            ],
            "Resource": [
                "arn:aws:s3:::bedrock-agentcore-*",
                "arn:aws:s3:::bedrock-agentcore-*/*"
            ]
        },
        {
            "Sid": "ECRRepositoryAccess",
            "Effect": "Allow",
            "Action": [
                "ecr:CreateRepository",
                "ecr:DescribeRepositories",
                "ecr:GetRepositoryPolicy",
                "ecr:InitiateLayerUpload",
                "ecr:CompleteLayerUpload",
                "ecr:PutImage",
                "ecr:UploadLayerPart",
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage",
                "ecr:ListImages",
                "ecr:TagResource"
            ],
            "Resource": [
                "arn:aws:ecr:*:*:repository/bedrock-agentcore-*"
            ]
        },
        {
            "Sid": "ECRAuthorizationAccess",
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        }
    ]
}
```

## Autorisations utilisateur pour Amazon Bedrock Console AgentCore
<a name="runtime-permissions-console"></a>

Associez la [BedrockAgentCoreFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/BedrockAgentCoreFullAccess.html)politique au rôle de console. Ajoutez également les autorisations suivantes pour IAM si vous souhaitez que la console de service crée automatiquement le rôle d'exécution.

```
{
"Version": "2012-10-17",		 	 	 
  "Statement": [{
    "Sid": "IAMRoleAccess",
    "Effect": "Allow",
    "Action": ["iam:CreateRole"],
    "Resource": ["arn:aws:iam::*:role/service-role/AmazonBedrockAgentCoreRuntimeDefaultServiceRole-*"]
  }, {
    "Sid": "IAMPolicyAccess",
    "Effect": "Allow",
    "Action": ["iam:CreatePolicy"],
    "Resource": ["arn:aws:iam::*:policy/service-role/AmazonBedrockAgentCoreRuntimeExecutionPolicy_*"]
  }, {
    "Sid": "IAMRolePolicyAccess",
    "Effect": "Allow",
    "Action": ["iam:AttachRolePolicy"],
    "Resource": ["arn:aws:iam::*:role/service-role/AmazonBedrockAgentCoreRuntimeDefaultServiceRole-*"],
    "Condition": {
      "ArnLike": {
        "iam:PolicyARN": "arn:aws:iam::*:policy/service-role/AmazonBedrockAgentCoreRuntimeExecutionPolicy_*"
      }
    }
  }]
}
```

## Rôle d'exécution pour exécuter un agent dans AgentCore Runtime
<a name="runtime-permissions-execution"></a>

Pour exécuter un agent ou un outil dans AgentCore Runtime, vous avez besoin d'un rôle d'exécution AWS Identity and Access Management. Pour plus d'informations sur la création d'un rôle IAM, consultez la section Création d'un [rôle IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html).

### Rôle d'exécution du déploiement AgentCore direct d'Amazon Bedrock
<a name="runtime-permissions-direct-deploy-execution"></a>

Le rôle d'exécution du déploiement AgentCore direct d'Amazon Bedrock est un rôle IAM qu'Amazon Bedrock AgentCore assume pour exécuter un agent. Remplacez les éléments suivants :
+  `us-east-1`avec la AWS région que vous utilisez
+  `123456789012`avec votre identifiant AWS de compte
+  {{agentName}}avec le nom de votre agent. Vous devez choisir le nom de l'agent avant de créer le rôle et le AgentCore Runtime.

```
{
"Version": "2012-10-17",		 	 	 
  "Statement": [{
    "Effect": "Allow",
    "Action": [
      "logs:DescribeLogStreams",
      "logs:CreateLogGroup"
    ],
    "Resource": [
      "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/*"
    ]
  }, {
    "Effect": "Allow",
    "Action": [
      "logs:PutResourcePolicy"
    ],
    "Resource": [
      "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/agentName-*"
    ]
  }, {
    "Effect": "Allow",
    "Action": ["logs:DescribeLogGroups"],
    "Resource": ["arn:aws:logs:us-east-1:123456789012:log-group:*"]
  }, {
    "Effect": "Allow",
    "Action": [
      "logs:CreateLogStream",
      "logs:PutLogEvents"
    ],
    "Resource": [
      "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/*:log-stream:*"
    ]
  }, {
    "Effect": "Allow",
    "Action": [
      "xray:PutTraceSegments",
      "xray:PutTelemetryRecords",
      "xray:GetSamplingRules",
      "xray:GetSamplingTargets"
    ],
    "Resource": ["*"]
  }, {
    "Effect": "Allow",
    "Resource": "*",
    "Action": "cloudwatch:PutMetricData",
    "Condition": {
      "StringEquals": {
        "cloudwatch:namespace": "bedrock-agentcore"
      }
    }
  }, {
    "Sid": "BedrockModelInvocation",
    "Effect": "Allow",
    "Action": [
      "bedrock:InvokeModel",
      "bedrock:InvokeModelWithResponseStream"
    ],
    "Resource": [
      "arn:aws:bedrock:*::foundation-model/*",
      "arn:aws:bedrock:us-east-1:123456789012:*"
    ]
  }]
}
```

### AgentCore Rôle d'exécution du runtime
<a name="runtime-permissions-execution-role"></a>

Le rôle AgentCore d'exécution Runtime est un rôle IAM que AgentCore Runtime suppose d'exécuter un agent. Remplacez les éléments suivants :
+  `us-east-1`avec la AWS région que vous utilisez
+  `123456789012`avec votre identifiant AWS de compte
+  {{agentName}}avec le nom de votre agent. Vous devez choisir le nom de l'agent avant de créer le rôle et le AgentCore Runtime.

```
{
"Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ECRImageAccess",
            "Effect": "Allow",
            "Action": [
                "ecr:BatchGetImage",
                "ecr:GetDownloadUrlForLayer"
            ],
            "Resource": [
                "arn:aws:ecr:us-east-1:123456789012:repository/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogStreams",
                "logs:CreateLogGroup"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:PutResourcePolicy"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/agentName-*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:123456789012:log-group:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/*:log-stream:*"
            ]
        },
        {
            "Sid": "ECRTokenAccess",
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        },
        {
        "Effect": "Allow",
        "Action": [
            "xray:PutTraceSegments",
            "xray:PutTelemetryRecords",
            "xray:GetSamplingRules",
            "xray:GetSamplingTargets"
            ],
         "Resource": [ "*" ]
         },
         {
            "Effect": "Allow",
            "Resource": "*",
            "Action": "cloudwatch:PutMetricData",
            "Condition": {
                "StringEquals": {
                    "cloudwatch:namespace": "bedrock-agentcore"
                }
            }
        },
        {
            "Sid": "GetAgentAccessToken",
            "Effect": "Allow",
            "Action": [
                "bedrock-agentcore:GetWorkloadAccessToken",
                "bedrock-agentcore:GetWorkloadAccessTokenForJWT",
                "bedrock-agentcore:GetWorkloadAccessTokenForUserId"
            ],
            "Resource": [
              "arn:aws:bedrock-agentcore:us-east-1:123456789012:workload-identity-directory/default",
              "arn:aws:bedrock-agentcore:us-east-1:123456789012:workload-identity-directory/default/workload-identity/agentName-*"
            ]
        },
         {"Sid": "BedrockModelInvocation",
         "Effect": "Allow",
         "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream"
              ],
        "Resource": [
            "arn:aws:bedrock:*::foundation-model/*",
            "arn:aws:bedrock:us-east-1:123456789012:*"
        ]
        }
    ]
}
```

### AgentCore Politique de confiance en matière d'exécution
<a name="runtime-permissions-trust-policy"></a>

Le rôle AgentCore d'exécution du Runtime doit inclure la politique de confiance suivante qui permet au AgentCore Runtime d'assumer le rôle.

Dans la politique, remplacez :
+  `us-east-1`avec la AWS région que vous utilisez
+  `123456789012`avec votre identifiant AWS de compte

Pour ajouter la politique de confiance au rôle AgentCore d'exécution du Runtime, accédez à la console de AWS gestion, accédez au rôle, choisissez l'onglet **Relations de confiance**, puis choisissez **Modifier la politique de confiance**.

```
{
"Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AssumeRolePolicy",
      "Effect": "Allow",
      "Principal": {
        "Service": "bedrock-agentcore.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
            "StringEquals": {
                "aws:SourceAccount": "123456789012"
            },
            "ArnLike": {
                "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:*"
            }
       }
    }
  ]
}
```