管理對 Amazon Braket 的訪問 - Amazon Braket

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

管理對 Amazon Braket 的訪問

本章說明執行 Amazon Braket 或限制特定使用者和角色存取所需的權限。您可以授予 (或拒絕) 必要的權限給您帳戶中的任何使用者或角色。若要這麼做,請將適當的 Amazon Braket 政策附加到帳戶中的該使用者或角色,如以下各節所述。

作為先決條件,您必須啟用 Amazon Braket。若要啟用 Braket,請務必以具有 (1) 管理員許可或 (2) 的使用者或角色登入,或 (2) 已指派AmazonBraketFullAccess政策,並具有建立 Amazon Simple Storage Service (Amazon S3) 貯體的權限。

Amazon Braket 資源

Braket 創建一種類型的資源:子任務資源。此資源類型的 Amazon 資源名稱 (ARN) 如下所示:

  • 資源名稱::AWS: 服務:: 文字

  • ARN 正則表達式:ARN:$ {分區}:口袋:$ {區域}:$ {帳戶}:量子任務/$ {} RandomId

筆記本和角色

您可以在布拉基特中使用記事博資源類型。筆記本是 Braket 能夠共享的 Amazon SageMaker 資源。若要搭配 Braket 使用筆記本,您必須指定名稱開頭為的 IAM 角色。AmazonBraketServiceSageMakerNotebook

若要建立筆記本,您必須使用具有管理員權限或附加下列內嵌原則的角色。

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

若要建立角色,請遵循 [建立記事本] 頁面中提供的步驟,或讓管理員為您建立角色。確定已附加AmazonBraketFullAccess原則。

建立角色之後,您可以在 future 啟動的所有記事本中重複使用該角色。

關於本 AmazonBraketFullAccess政策

AmazonBraketFullAccess政策授予 Amazon Braket 操作的許可,包括這些任務的許可:

  • 從 Amazon 彈性容器登錄下載容器 — 讀取和下載用於 Amazon Braket 混合任務功能的容器映像。容器必須符合格式「arn: awn:: ecr:: 存儲庫/亞馬遜字符」。

  • 保留 AWS CloudTrail 記錄 — 除了啟動和停止查詢、測試指標篩選器和篩選記錄事件之外的所有描述得和出動作。 AWS CloudTrail 日誌檔包含您帳戶中發生的所有 Amazon Braket API 活動的記錄。

  • 利用角色來控制資源 — 在您的帳戶中建立服務連結角色。服務連結角色可以代表您存取 AWS 資源。它只能由 Amazon Braket 服務使用。此外,將 IAM 角色傳遞給 Amazon Braket,CreateJobAPI並建立角色並將範圍內的政策附加 AmazonBraketFullAccess 到該角色。

  • 建立日誌群組、日誌事件和查詢日誌群組以維護帳戶的使用日誌檔 — 建立、存放和檢視有關帳戶中 Amazon Braket 使用情況的記錄資訊。在混合式工作記錄群組上查詢量度。包括正確的 Braket 路徑,並允許把日誌數據。將指標資料放入 CloudWatch。

  • 在 Amazon S3 儲存貯體中建立和存放資料,並列出所有儲存貯體 — 若要建立 S3 儲存貯體,請在帳戶中列出 S3 儲存貯體,然後將物件放入帳戶中名稱以 amazon-bra ket-開頭的任何儲存貯體並從其中取得物件。Braket 需要這些權限才能將包含已處理量子任務結果的文件放入存儲桶並從存儲桶中檢索它們。

  • 傳遞 IAM 角色 — 將 IAM 角色傳遞給 CreateJobAPI.

  • Amazon SageMaker 筆記本 — 創建和管理範圍為「arn: aws: SAGEMAKER:: SageMaker 筆記本-實例/亞馬遜-braket-」的範圍內的筆記本實例。

  • 驗證服務配額 — 若要建立 SageMaker筆記本和 Amazon Braket 混合任務,您的資源數量不得超過帳戶的配額

政策內容

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket",
                "s3:CreateBucket",
                "s3:PutBucketPublicAccessBlock",
                "s3:PutBucketPolicy"
            ],
            "Resource": "arn:aws:s3:::amazon-braket-*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "servicequotas:GetServiceQuota",
                "cloudwatch:GetMetricData"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage",
                "ecr:BatchCheckLayerAvailability"
            ],
            "Resource": "arn:aws:ecr:*:*:repository/amazon-braket*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:Describe*",
                "logs:Get*",
                "logs:List*",
                "logs:StartQuery",
                "logs:StopQuery",
                "logs:TestMetricFilter",
                "logs:FilterLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:log-group:/aws/braket*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:ListRoles",
                "iam:ListRolePolicies",
                "iam:GetRole",
                "iam:GetRolePolicy",
                "iam:ListAttachedRolePolicies"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:ListNotebookInstances"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreatePresignedNotebookInstanceUrl",
                "sagemaker:CreateNotebookInstance",
                "sagemaker:DeleteNotebookInstance",
                "sagemaker:DescribeNotebookInstance",
                "sagemaker:StartNotebookInstance",
                "sagemaker:StopNotebookInstance",
                "sagemaker:UpdateNotebookInstance",
                "sagemaker:ListTags",
                "sagemaker:AddTags",
                "sagemaker:DeleteTags"
            ],
            "Resource": "arn:aws:sagemaker:*:*:notebook-instance/amazon-braket-*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:DescribeNotebookInstanceLifecycleConfig",
                "sagemaker:CreateNotebookInstanceLifecycleConfig",
                "sagemaker:DeleteNotebookInstanceLifecycleConfig",
                "sagemaker:ListNotebookInstanceLifecycleConfigs",
                "sagemaker:UpdateNotebookInstanceLifecycleConfig"
            ],
            "Resource": "arn:aws:sagemaker:*:*:notebook-instance-lifecycle-config/amazon-braket-*"
        },
        {
            "Effect": "Allow",
            "Action": "braket:*",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::*:role/aws-service-role/braket.amazonaws.com/AWSServiceRoleForAmazonBraket*",
            "Condition": {
                "StringEquals": {
                    "iam:AWSServiceName": "braket.amazonaws.com"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "arn:aws:iam::*:role/service-role/AmazonBraketServiceSageMakerNotebookRole*",
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": [
                        "sagemaker.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "arn:aws:iam::*:role/service-role/AmazonBraketJobsExecutionRole*",
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": [
                        "braket.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:GetQueryResults"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:PutLogEvents",
                "logs:CreateLogStream",
                "logs:CreateLogGroup"
            ],
            "Resource": "arn:aws:logs:*:*:log-group:/aws/braket*"
        },
        {
            "Effect": "Allow",
            "Action": "cloudwatch:PutMetricData",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "cloudwatch:namespace": "/aws/braket"
                }
            }
        }
    ]
}

關於本 AmazonBraketJobsExecutionPolicy政策

AmazonBraketJobsExecutionPolicy政策授予 Amazon Braket 混合任務中使用的執行角色的許可,如下所示:

  • 從 Amazon 彈性容器登錄下載容器-讀取和下載用於 Amazon Braket 混合任務功能之容器映像的許可。容器必須符合格式「arn: awn: ecr: *: *: 儲存庫/亞馬遜胸罩 *」。

  • 建立日誌群組、日誌事件以及查詢日誌群組,以維護帳戶的使用日誌檔 — 建立、存放和檢視帳戶中 Amazon Braket 使用情況的記錄資訊。在混合式工作記錄群組上查詢量度。包括正確的 Braket 路徑,並允許把日誌數據。將指標資料放入 CloudWatch。

  • 資料存放在 Amazon S3 儲存貯體 — 列出帳戶中的 S3 儲存貯體、將物件放入帳戶中任何以 amazon-braket 開頭的儲存貯體,並從其名稱中取得物件。Braket 需要這些權限才能將包含已處理量子任務結果的文件放入存儲桶中,並從存儲桶中檢索它們。

  • 遞 IAM 角色 — 將 IAM 角色傳遞給 CreateJob API. 角色必須符合格式的 arn: aw:iam:: *。:role/service-role/AmazonBraketJobsExecutionRole

	"Version": "2012-10-17",
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"s3:GetObject",
				"s3:PutObject",
				"s3:ListBucket",
				"s3:CreateBucket",
				"s3:PutBucketPublicAccessBlock",
				"s3:PutBucketPolicy"
			],
			"Resource": "arn:aws:s3:::amazon-braket-*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"ecr:GetDownloadUrlForLayer",
				"ecr:BatchGetImage",
				"ecr:BatchCheckLayerAvailability"
			],
			"Resource": "arn:aws:ecr:*:*:repository/amazon-braket*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"ecr:GetAuthorizationToken"
			],
			"Resource": "*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"braket:CancelJob",
				"braket:CancelQuantumTask",
				"braket:CreateJob",
				"braket:CreateQuantumTask",
				"braket:GetDevice",
				"braket:GetJob",
				"braket:GetQuantumTask",
				"braket:SearchDevices",
				"braket:SearchJobs",
				"braket:SearchQuantumTasks",
				"braket:ListTagsForResource",
				"braket:TagResource",
				"braket:UntagResource"
			],
			"Resource": "*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"iam:PassRole"
			],
			"Resource": "arn:aws:iam::*:role/service-role/AmazonBraketJobsExecutionRole*",
			"Condition": {
				"StringLike": {
					"iam:PassedToService": [
						"braket.amazonaws.com"
					]
				}
			}
		},
		{
			"Effect": "Allow",
			"Action": [
				"iam:ListRoles"
			],
			"Resource": "arn:aws:iam::*:role/*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"logs:GetQueryResults"
			],
			"Resource": [
				"arn:aws:logs:*:*:log-group:*"
			]
		},
		{
			"Effect": "Allow",
			"Action": [
				"logs:PutLogEvents",
				"logs:CreateLogStream",
				"logs:CreateLogGroup",
				"logs:GetLogEvents",
				"logs:DescribeLogStreams",
				"logs:StartQuery",
				"logs:StopQuery"
			],
			"Resource": "arn:aws:logs:*:*:log-group:/aws/braket*"
		},
		{
			"Effect": "Allow",
			"Action": "cloudwatch:PutMetricData",
			"Resource": "*",
			"Condition": {
				"StringEquals": {
					"cloudwatch:namespace": "/aws/braket"
				}
			}
		}
	]
}

限制使用者存取特定裝置

若要限制某些使用者存取特定 Braket 裝置,您可以將拒絕權限原則新增至特定IAM角色。

使用此類權限可以限制下列動作:

  • CreateQuantumTask-拒絕在指定裝置上建立量子任務。

  • CreateJob-拒絕在指定裝置上建立混合工作。

  • GetDevice-拒絕取得指定裝置的詳細資料。

下列範例會限制對的所有 QPU 的存取。 AWS 帳戶 123456789012

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

若要調整此程式碼,請將受限裝置的Amazon資源編號 (ARN) 替換為上一個範例中顯示的字串。此字串提供資值。在 Braket 中,一個設備代表一個 QPU 或模擬器,你可以調用它來運行量子任務。可用的裝置會列在「裝置」頁面上。有兩種結構描述可用來指定對這些裝置的存取權:

  • arn:aws:braket:<region>:<account id>:device/qpu/<provider>/<device_id>

  • arn:aws:braket:<region>:<account id>:device/quantum-simulator/<provider>/<device_id>

以下是各種類型設備訪問的示例

  • 若要選取所有區域中的所有 QPU:arn:aws:braket:*:*:device/qpu/*

  • 若要僅選取美國-西部 -2 區域中的所有 QPU,請執行下列動作:arn:aws:braket:us-west-2:123456789012:device/qpu/*

  • 同樣地,若要僅選取 us-west-2 區域中的所有 QPU (因為裝置是服務資源,而非客戶資源):arn:aws:braket:us-west-2:* :device/qpu/*

  • 若要限制對所有隨選模擬器裝置的存取:arn:aws:braket:* :123456789012:device/quantum-simulator/*

  • 若要限制 us-east-1 區域中IonQ Harmony裝置的存取,請執行下列動作:arn:aws:braket:us-east-1:123456789012:device/ionq/Harmony

  • 若要限制存取特定供應商的裝置 (例如,RigettiQPU裝置):arn:aws:braket:* :123456789012:device/qpu/rigetti/*

  • 若要限制對TN1裝置的存取:arn:aws:braket:* :123456789012:device/quantum-simulator/amazon/tn1

Amazon Braket AWS 管理政策的更新

下表提供有關 Braket AWS 受管理原則的更新詳細資訊,因為此服務開始追蹤這些變更。

變更 Description 日期

AmazonBraketFullAccess-布拉克特的完整訪問政策

已新增服務GetServiceQuota與雲觀察:要包含在政策中的GetMetricData動作。AmazonBraketFullAccess

.

2023 年 3 月 24 日

AmazonBraketFullAccess-布拉克特的完整訪問政策

布拉克特調整 iam:PassRole 許 AmazonBraketFullAccess 可包括service-role/路徑。

2021 年 11 月 29 日

AmazonBraketJobsExecutionPolicy-Amazon Braket 混合式工作的混合作業執行政策

Braket 更新了混合作業執行角色 ARN 以包含路徑。service-role/

2021 年 11 月 29 日

布拉克特開始跟踪更改

Braket 開始追蹤其 AWS 受管理政策的變更。

2021 年 11 月 29 日

限制使用者對特定筆記本執行個體

若要限制特定使用者存取特定 Braket 筆記本執行個體,您可以將拒絕權限原則新增至特定角色、使用者或群組。

下列範例使用原則變數來有效地限制啟動、停止和存取中特定筆記本執行個體的權限 AWS 帳戶 123456789012,這些執行個體是根據應具有存取權的使用者命名 (例如,使用者Alice可以存取名為的筆記本執行個體amazon-braket-Alice)。

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

限制使用者存取特定 S3 儲存貯體

若要限制特定使用者存取特定 Amazon S3 儲存貯體,您可以向特定角色、使用者或群組新增拒絕政策。

下列範例會限制擷取物件並將物件放入特定S3值區 (arn:aws:s3:::amazon-braket-us-east-1-123456789012-Alice) 的權限,並限制這些物件的清單。

{ "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/*" ] } ] }

若要限制特定筆記本執行個體對值區的存取,您可以將上述原則新增至筆記本執行角色。