

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 管理对 Amazon Braket 的访问权限
<a name="braket-manage-access"></a>

本章介绍运行 Amazon Braket 或限制特定用户和角色访问所需的权限。您可以向账户中的任何用户或角色授予（或拒绝）所需的权限。为此，请将相应的 Amazon Braket 策略附加到您账户中的该用户或角色，如以下各节所述。

作为先决条件，您必须[启用 Amazon Braket](https://docs.aws.amazon.com/braket/latest/developerguide/braket-enable-overview.html)。要启用 Braket，请务必以拥有 (1) 管理员权限或 (2) 已分配**AmazonBraketFullAccess**策略并有权创建亚马逊简单存储服务 (Amazon S3) 存储桶的用户或角色登录。

**Topics**
+ [Amazon Braket 资源](#resources)
+ [Notebook 和角色](#notebooks-and-roles)
+ [AWS 亚马逊 Braket 的托管政策](security-iam-aws-managed-policies.md)
+ [限制用户访问某些设备](restrict-access.md)
+ [限制用户访问某些 Notebook 实例](restrict-access-notebook-instances.md)
+ [限制用户访问某些 S3 存储桶](restrict-access-s3-buckets.md)

## Amazon Braket 资源
<a name="resources"></a>

 Braket 创建了一种资源：*量子任务*资源。此 AWS 资源类型的资源名称 (ARN) 如下所示：
+  **资源名称：***AWS::Service::Braket* 
+  **ARN Regex：arn：\$1 \$1Partition\$1: b** *raket：\$1 \$1Region\$1: \$1 \$1Region\$1: \$1 \$1Account\$1: quantum-task/\$1 \$1\$1 RandomId* 

## Notebook 和角色
<a name="notebooks-and-roles"></a>

您可以在 Braket 中使用 Notebook 资源类型。笔记本是 Braket 能够共享的 SageMaker Amazon 人工智能资源。要将 Notebook 与 Braket 配合使用，必须指定名称以 `AmazonBraketServiceSageMakerNotebook` 开头的 IAM 角色。

要创建 Notebook，必须使用具有管理员权限或附加了以下内联策略的角色。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CreateTheRole",
      "Effect": "Allow",
      "Action": "iam:CreateRole",
      "Resource": "arn:aws:iam::*:role/service-role/AmazonBraketServiceSageMakerNotebookRole*"
    },
    {
      "Sid": "CreateThePolicy",
      "Effect": "Allow",
      "Action": "iam:CreatePolicy",
      "Resource": [
        "arn:aws:iam::*:policy/service-role/AmazonBraketServiceSageMakerNotebookAccess*",
        "arn:aws:iam::*:policy/service-role/AmazonBraketServiceSageMakerNotebookRole*"
      ]
    },
    {
      "Sid": "AttachTheRolePolicy",
      "Effect": "Allow",
      "Action": "iam:AttachRolePolicy",
      "Resource": "arn:aws:iam::*:role/service-role/AmazonBraketServiceSageMakerNotebookRole*",
      "Condition": {
        "ArnLike": {
          "iam:PolicyARN": [
            "arn:aws:iam::aws:policy/AmazonBraketFullAccess",
            "arn:aws:iam::*:policy/service-role/AmazonBraketServiceSageMakerNotebookAccess*",
            "arn:aws:iam::*:policy/service-role/AmazonBraketServiceSageMakerNotebookRole*"
          ]
        }
      }
    }
  ]
}
```

------

要创建该角色，请按照“[创建 Notebook ](https://docs.aws.amazon.com/braket/latest/developerguide/braket-get-started-create-notebook.html)”页面中给出的步骤进行操作，或者让管理员为您创建该角色。确保已附上该**AmazonBraketFullAccess**政策。

创建角色后，您可以将该角色重复用于将来启动的所有 Notebook。

# AWS 亚马逊 Braket 的托管政策
<a name="security-iam-aws-managed-policies"></a>

 AWS 托管策略是由创建和管理的独立策略 AWS。 AWS 托管策略旨在为许多常见用例提供权限，以便您可以开始为用户、组和角色分配权限。

请记住， AWS 托管策略可能不会为您的特定用例授予最低权限权限，因为它们可供所有 AWS 客户使用。我们建议通过定义特定于使用案例的[客户管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)来进一步减少权限。

您无法更改 AWS 托管策略中定义的权限。如果 AWS 更新 AWS 托管策略中定义的权限，则更新会影响该策略所关联的所有委托人身份（用户、组和角色）。 AWS 最有可能在启动新的 API 或现有服务可以使用新 AWS 服务 的 API 操作时更新 AWS 托管策略。

有关更多信息，请参阅《IAM 用户指南》**中的 [AWS 托管式策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

**Topics**
+ [AWS 托管策略： AmazonBraketFullAccess](#about-amazonbraketfullaccess)
+ [AWS 托管策略： AmazonBraketJobsExecutionPolicy](#about-amazonbraketjobsexecution)
+ [AWS 托管策略： AmazonBraketServiceRolePolicy](#about-amazonbraketservicerolepolicy)
+ [Amazon Braket 更新了托管 AWS 政策](#braket-aws-managed-policy-updates)

## AWS 托管策略： AmazonBraketFullAccess
<a name="about-amazonbraketfullaccess"></a>

该**AmazonBraketFullAccess**政策授予 Amazon Braket 操作权限，包括执行以下任务的权限：
+  **从 Amazon Elastic Container Registry 下载容器**：读取和下载用于 Amazon Braket Hybrid Jobs 功能的容器映像。容器必须符合“arn:aws:ecr:::repository/amazon-braket”的格式。
+  **保留 AWS CloudTrail 日志**-除了启动和停止查询、测试指标筛选器和筛选日志事件外，还适用于所有*描述*、*获取*和*列*出操作。该 AWS CloudTrail 日志文件包含您的账户中发生的所有 Amazon Braket API 活动的记录。
+  **利用角色控制资源**：在您的账户中创建服务相关角色。服务相关角色可以代表您访问 AWS 资源。它只能由 Amazon Braket 服务使用。此外，还可以将 IAM 角色传递给 Amazon Braket `CreateJob`API，创建角色并将范围限定为的策略附加 AmazonBraketFullAccess 到该角色。
+  **创建日志组、日志事件和查询日志组，以维护您账户的使用情况日志文件**：创建、存储和查看账户中有关 Amazon Braket 使用情况的日志信息。查询混合作业日志组的指标。包含正确的 Braket 路径并允许放置日志数据。将指标数据放入 CloudWatch。
+  **在 Amazon S3 存储桶中创建和存储数据，并列出所有存储桶**：要创建 S3 存储桶，请列出您账户中的 S3 存储桶，然后将对象放入账户中名称以 *amazon-braket-* 开头的任何存储桶并从中获取对象。Braket 需要这些权限才能将包含已处理量子任务结果的文件放入存储桶并从存储桶中检索这些文件。
+  **传递 IAM 角色**：将 IAM 角色传递给 `CreateJob` API。
+  **Amazon SageMaker AI Notebook** — 创建和管理范围为 “arn: aws: sagemaker:: notebook-instance/amazon-braket-” 中资源的SageMaker笔记本实例。
+  **验证服务配额** — 要创建 SageMaker AI 笔记本和 Amazon Braket Hybrid 任务，您的资源数量不能超过账户[的配额](braket-quotas.md)。
+  **查看产品定价**：在提交工作负载之前，请查看并计划量子硬件成本。

要查看此策略的权限，请参阅 *AWS 托管策略参考[AmazonBraketFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBraketFullAccess.html)*中的。

## AWS 托管策略： AmazonBraketJobsExecutionPolicy
<a name="about-amazonbraketjobsexecution"></a>

该**AmazonBraketJobsExecutionPolicy**策略授予在 Amazon Braket 混合任务中使用的执行角色的权限，如下所示：
+  **从 Amazon Elastic Container Registry **下载容器：读取和下载用于 Amazon Braket Hybrid Jobs 功能的容器映像的权限。容器必须符合“arn:aws:ecr:\$1:\$1:repository/amazon-braket\$1”格式。
+  **创建日志组、日志事件和查询日志组，以便维护您账户的使用情况日志文件**：在您的账户中创建、存储和查看有关 Amazon Braket 使用情况的日志信息。查询混合作业日志组的指标。包含正确的 Braket 路径并允许放置日志数据。将指标数据放入 CloudWatch。
+  **将数据存储在 Amazon S3 存储桶中**：列出您账户中的 S3 存储桶，将对象放入账户名称中以 *amazon-braket-*开头的任何存储桶并从中获取对象。Braket 需要这些权限才能将包含已处理量子任务结果的文件放入存储桶并从存储桶中检索这些文件。
+  **传递 IAM 角色** — 将 IAM 角色传递给 CreateJob API。角色必须符合 arn:aws:iam::\$1:role/service-role/AmazonBraketJobsExecutionRole\$1 的格式。

要查看此策略的权限，请参阅 *AWS 托管策略参考[AmazonBraketJobsExecutionPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBraketJobsExecutionPolicy.html)*中的。

## AWS 托管策略： AmazonBraketServiceRolePolicy
<a name="about-amazonbraketservicerolepolicy"></a>

该**AmazonBraketServiceRolePolicy**政策授予 Amazon Braket 操作权限，包括执行以下任务的权限：
+  **Amazon S3**：列出您账户中的存储桶，以及将对象放入账户中、名称以 `amazon-braket-` 开头的任何存储桶并从中获取对象的权限。
+  **Amazon Lo CloudWatch gs** — 列出和创建日志组、创建关联日志流以及将事件放入为 Amazon Braket 创建的日志组的权限。

有关服务相关角色的更多信息，请参阅[和 Amazon Braket 服务相关的角色](braket-slr.md)。

要查看此策略的权限，请参阅 *AWS 托管策略参考[AmazonBraketServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBraketServiceRolePolicy.html)*中的。

## Amazon Braket 更新了托管 AWS 政策
<a name="braket-aws-managed-policy-updates"></a>

下表详细介绍了 Amazon Braket AWS 托管政策自该服务开始跟踪这些更改之时起的更新。


|  **更改**  |  **描述**  |  **日期**  | 
| --- | --- | --- | 
|   [ AmazonBraketServiceRolePolicy](#about-amazonbraketservicerolepolicy)-资源管理政策  |   **在 Amazon S3 中添加了 “a ResourceAccount ws:”: “\$1 \$1aws:PrincipalAccount\$1”** 条件范围并 CloudWatch 记录操作。  |  2025 年 7 月 11 日  | 
|   [AmazonBraketFullAccess](#about-amazonbraketfullaccess)-Braket 的完全访问政策   |   添加了 **“定价：GetProducts”** 操作。  |  2025 年 4 月 14 日  | 
|   [AmazonBraketFullAccess](#about-amazonbraketfullaccess)-Braket 的完全访问政策   |   **在 S3 操作中添加ResourceAccount了 “aws:”: “\$1 \$1aws:PrincipalAccount\$1”** 条件范围。  |  2025 年 3 月 7 日  | 
|   [AmazonBraketFullAccess](#about-amazonbraketfullaccess)-Braket 的完全访问政策   |  添加了 s **ervicequotas: GetServiceQuota 和 **cloudwatch**: 操作**。GetMetricData  |  2023 年 3 月 24 日  | 
|   [AmazonBraketFullAccess](#about-amazonbraketfullaccess)-Braket 的完全访问政策   |  添加了 **s3: ListAllMyBuckets** 权限以查看和检查已使用的 Amazon S3 存储桶。  |  2022 年 3 月 31 日  | 
|   [AmazonBraketFullAccess](#about-amazonbraketfullaccess)-Braket 的完全访问政策   |   Braket 调整了 ia PassRole m: 包含`service-role/`路径的权限。 AmazonBraketFullAccess   |  2021 年 11 月 29 日  | 
|   [AmazonBraketJobsExecutionPolicy](#about-amazonbraketjobsexecution)-Amazon Braket Hybrid Jobs 的混合作业执行政策  |   Braket 更新了混合作业执行角色 ARN，使其包含 `service-role/` 路径。  |  2021 年 11 月 29 日  | 
|   Braket 已开启跟踪更改  |   Braket 开始跟踪其 AWS 托管策略的变更。  |  2021 年 11 月 29 日  | 

# 限制用户访问某些设备
<a name="restrict-access"></a>

要限制用户访问某些 Braket 设备，您可以向特定 IAM 角色添加*拒绝权限*策略。

可以限制以下操作：
+ `CreateQuantumTask`：拒绝在指定设备上创建量子任务。
+ `CreateJob`：拒绝在指定设备上创建混合作业。
+ `GetDevice`：拒绝获取指定设备的详细信息。

以下示例限制了所有 QPUs 人的访问权限。 AWS 账户 `123456789012`

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
    "Effect": "Deny",
    "Action": [
      "braket:CreateQuantumTask",
      "braket:CreateJob",
      "braket:GetDevice"
    ],
    "Resource": [
    "arn:aws:braket:*:*:device/qpu/*"
    ],
    "Condition": {
             "StringEquals": {
                 "aws:PrincipalAccount": "123456789012"
             }
      }
    }
  ]
}
```

------

**注意**  
从策略中排除该 `braket:GetDevice` 操作，以启用用户通过 Braket 控制台对设备属性（例如设备可用性、校准数据和定价）的读取权限。

要改编此代码，请用受限设备的 Amazon 资源号（ARN）代替上一个示例中显示的字符串。此字符串提供**资源**值。在 Braket 中，设备代表一个 QPU 或模拟器，您可以调用它来运行量子任务。可用设备列在[设备页面](https://docs.aws.amazon.com/braket/latest/developerguide/braket-devices.html)上。有两个架构用于指定对这些设备的访问权限：
+  `arn:aws:braket:<region>:*:device/qpu/<provider>/<device_id>` 
+  `arn:aws:braket:<region>:*:device/quantum-simulator/<provider>/<device_id>` 

 **以下是各种设备访问类型的示例** 
+ 要在所有区域中选择 QPUs 全部，请执行以下操作：`arn:aws:braket:*:*:device/qpu/*`
+ 要仅选择 us-west-2 区域 QPUs 中的所有内容，请执行以下操作：`arn:aws:braket:us-west-2:*:device/qpu/*`
+ 同样，要仅选择 us-west-2 区域 QPUs 中的所有内容（因为设备是一种服务资源，而不是客户资源），请执行以下操作：`arn:aws:braket:us-west-2:*:device/qpu/*`
+ 要限制对所有按需模拟器设备的访问权限，请执行以下操作：`arn:aws:braket:*:*:device/quantum-simulator/*`
+ 要限制特定提供商对设备的访问权限（例如 Rigetti QPU 设备），请执行以下操作：`arn:aws:braket:*:*:device/qpu/rigetti/*`
+ 要限制对 TN1 设备的访问，请执行以下操作：`arn:aws:braket:*:*:device/quantum-simulator/amazon/tn1`
+ 要限制对所有 `Create` 操作的访问，请执行以下操作：`braket:Create*`

# 限制用户访问某些 Notebook 实例
<a name="restrict-access-notebook-instances"></a>

要限制某些用户对特定 Braket Notebook 实例的访问，您可以向特定角色、用户或组添加*拒绝权限*策略。

以下示例使用[策略变量](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html)有效地限制启动、停止和访问中特定笔记本实例的权限 AWS 账户 `123456789012`，该实例根据应具有访问权限的用户命名（例如，用户`Alice`将有权访问名为的笔记本实例`amazon-braket-Alice`）。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyCreateDeleteUpdateNotebookInstances",
      "Effect": "Deny",
      "Action": [
        "sagemaker:CreateNotebookInstance",
        "sagemaker:DeleteNotebookInstance",
        "sagemaker:UpdateNotebookInstance",
        "sagemaker:CreateNotebookInstanceLifecycleConfig",
        "sagemaker:DeleteNotebookInstanceLifecycleConfig",
        "sagemaker:UpdateNotebookInstanceLifecycleConfig"
      ],
      "Resource": "*"
    },
    {
      "Sid": "DenyDescribeStartStopNotebookInstances",
      "Effect": "Deny",
      "Action": [
        "sagemaker:DescribeNotebookInstance",
        "sagemaker:StartNotebookInstance",
        "sagemaker:StopNotebookInstance"
      ],
      "NotResource": [
        "arn:aws:sagemaker:*:123456789012:notebook-instance/amazon-braket-${aws:username}"
      ]
    },
    {
      "Sid": "DenyNotebookInstanceUrl",
      "Effect": "Deny",
      "Action": [
        "sagemaker:CreatePresignedNotebookInstanceUrl"
      ],
      "NotResource": [
        "arn:aws:sagemaker:*:123456789012:notebook-instance/amazon-braket-${aws:username}*"
      ]
    }
  ]
}
```

------

# 限制用户访问某些 S3 存储桶
<a name="restrict-access-s3-buckets"></a>

要限制某些用户访问特定 Amazon S3 存储桶，您可以向特定角色、用户或组添加拒绝策略。

以下示例限制了检索对象并将其放入特定 S3 存储桶 (`arn:aws:s3:::amazon-braket-us-east-1-123456789012-Alice`) 的权限，还限制了这些对象的列表。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "s3:ListBucket"
      ],
      "NotResource": [
        "arn:aws:s3:::amazon-braket-us-east-1-123456789012-Alice"
      ]
    },
    {
      "Effect": "Deny",
      "Action": [
        "s3:GetObject"
      ],
      "NotResource": [
        "arn:aws:s3:::amazon-braket-us-east-1-123456789012-Alice/*"
      ]
    }
  ]
}
```

------

要限制某个 Notebook 实例对存储桶的访问，您可以将上述策略添加到 Notebook 执行角色中。