Gestione dell'accesso ad Amazon Braket - Amazon Braket

Impara le basi dell'informatica quantistica con! AWS Iscriviti all'Amazon Braket Digital Learning Plan e ottieni il tuo badge digitale dopo aver completato una serie di corsi di apprendimento e una valutazione digitale.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Gestione dell'accesso ad Amazon Braket

Questo capitolo descrive le autorizzazioni necessarie per eseguire Amazon Braket o per limitare l'accesso di utenti e ruoli specifici. Puoi concedere (o negare) le autorizzazioni richieste a qualsiasi utente o ruolo del tuo account. A tale scopo, allega la policy Amazon Braket appropriata a quell'utente o ruolo nel tuo account, come descritto nelle sezioni seguenti.

Come prerequisito, devi abilitare Amazon Braket. Per abilitare Braket, assicurati di accedere come utente o ruolo con (1) autorizzazioni di amministratore o (2) che disponga della AmazonBraketFullAccesspolicy e delle autorizzazioni per creare bucket Amazon Simple Storage Service (Amazon S3).

Risorse Amazon Braket

Braket crea un tipo di risorsa: la risorsa quantum-task. L'Amazon Resource Name (ARN) per questo tipo di risorsa è il seguente:

  • Nome risorsa:: :Service AWS: :Braket

  • ARN Regex: arn: $ {Partition} :braket: $ {Region} :$ {Account} :quantum-task/$ {} RandomId

Notebook e ruoli

È possibile utilizzare il tipo di risorsa notebook in Braket. Un notebook è una SageMaker risorsa Amazon che Braket è in grado di condividere. Per utilizzare un notebook con Braket, devi specificare un ruolo IAM con un nome che inizia con. AmazonBraketServiceSageMakerNotebook

Per creare un notebook, è necessario utilizzare un ruolo con autorizzazioni di amministratore o a cui sia associata la seguente politica in linea.

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

Per creare il ruolo, segui i passaggi indicati nella pagina Crea un taccuino o chiedi all'amministratore di crearlo per te. Assicurati che la AmazonBraketFullAccesspolicy sia allegata.

Dopo aver creato il ruolo, puoi riutilizzarlo per tutti i notebook che lancerai in futuro.

Informazioni sulla AmazonBraketFullAccess politica

La AmazonBraketFullAccesspolicy concede le autorizzazioni per le operazioni di Amazon Braket, incluse le autorizzazioni per le seguenti attività:

  • Scarica contenitori da Amazon Elastic Container Registry: per leggere e scaricare immagini di container utilizzate per la funzionalità Amazon Braket Hybrid Jobs. I contenitori devono essere conformi al formato «arn:aws:ecr: :repository/amazon-braket».

  • Conserva AWS CloudTrail i log: per tutte le azioni di descrizione, recupero ed elenco, oltre all'avvio e all'interruzione delle query, al test dei filtri delle metriche e al filtraggio degli eventi di registro. Il file di AWS CloudTrail registro contiene un record di tutte le API attività di Amazon Braket che si verificano nel tuo account.

  • Utilizza i ruoli per controllare le risorse: per creare un ruolo collegato al servizio nel tuo account. Il ruolo collegato al servizio ha accesso alle risorse per AWS tuo conto. Può essere utilizzato solo dal servizio Amazon Braket. Inoltre, per trasferire i ruoli IAM ad Amazon Braket CreateJob API e creare un ruolo e allegare una policy mirata AmazonBraketFullAccess al ruolo.

  • Crea gruppi di log, eventi di log e gruppi di log di query per gestire i file di log di utilizzo per il tuo account: per creare, archiviare e visualizzare informazioni di registrazione sull'utilizzo di Amazon Braket nel tuo account. Interroga le metriche sui gruppi di log dei lavori ibridi. Comprende il percorso Braket corretto e consenti l'inserimento dei dati di registro. Inserisci i dati metrici. CloudWatch

  • Crea e archivia dati nei bucket Amazon S3 ed elenca tutti i bucket — Per creare bucket S3, elenca i bucket S3 nel tuo account e inserisci oggetti e ottieni oggetti da qualsiasi bucket del tuo account il cui nome inizia con amazon-braket-. Queste autorizzazioni sono necessarie per consentire a Braket di inserire i file contenenti i risultati di attività quantistiche elaborate nel bucket e di recuperarli dal bucket.

  • Passa i ruoli IAM: per passare i ruoli IAM a. CreateJob API

  • Amazon SageMaker Notebook: per creare e gestire istanze di SageMaker notebook limitate alla risorsa da «arn:aws:sagemaker: ::notebook-instance/amazon-braket-».

  • Convalida delle quote di servizio: per creare SageMaker notebook e lavori Amazon Braket Hybrid, il numero di risorse non può superare le quote del tuo account.

Contenuto della politica

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

Informazioni sulla AmazonBraketJobsExecutionPolicy politica

La AmazonBraketJobsExecutionPolicypolicy concede le autorizzazioni per i ruoli di esecuzione utilizzati in Amazon Braket Hybrid Jobs come segue:

  • Scarica contenitori da Amazon Elastic Container Registry - Autorizzazioni per leggere e scaricare immagini di container utilizzate per la funzionalità Amazon Braket Hybrid Jobs. I contenitori devono essere conformi al formato «arn:aws:ecr: *:*:repository/amazon-braket*».

  • Crea gruppi di log ed eventi di log e interroga gruppi di log per gestire i file di log di utilizzo per il tuo account: crea, archivia e visualizza le informazioni di registrazione sull'utilizzo di Amazon Braket nel tuo account. Esegui query sui gruppi di log dei lavori ibridi. Comprende il percorso Braket corretto e consenti l'inserimento dei dati di registro. Inserisci i dati metrici. CloudWatch

  • Archivia i dati in bucket Amazon S3: elenca i bucket S3 nel tuo account, inserisci oggetti e ottieni oggetti da qualsiasi bucket del tuo account che inizia con amazon-braket- nel nome. Queste autorizzazioni sono necessarie per consentire a Braket di inserire i file contenenti i risultati di attività quantistiche elaborate nel bucket e di recuperarli dal bucket.

  • Passa i ruoli IAM: trasferimento dei ruoli IAM a. CreateJob API I ruoli devono essere conformi al formato arn:aws: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"
				}
			}
		}
	]
}

Limita l'accesso degli utenti a determinati dispositivi

Per limitare l'accesso di determinati utenti a determinati dispositivi Braket, puoi aggiungere una politica di negazione delle autorizzazioni a un ruolo specifico. IAM

Le seguenti azioni possono essere limitate con tali autorizzazioni:

  • CreateQuantumTask- per negare la creazione di attività quantistiche su dispositivi specifici.

  • CreateJob- negare la creazione di posti di lavoro ibridi su dispositivi specifici.

  • GetDevice- negare di ottenere dettagli su dispositivi specifici.

L'esempio seguente limita l'accesso a tutte le QPU per. Account AWS 123456789012

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

Per adattare questo codice, sostituite il Amazon Resource Number (ARN) del dispositivo con restrizioni alla stringa mostrata nell'esempio precedente. Questa stringa fornisce il valore Resource. In Braket, un dispositivo rappresenta una QPU o un simulatore che è possibile chiamare per eseguire attività quantistiche. I dispositivi disponibili sono elencati nella pagina Dispositivi. Esistono due schemi utilizzati per specificare l'accesso a questi dispositivi:

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

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

Di seguito sono riportati alcuni esempi di vari tipi di accesso ai dispositivi

  • Per selezionare tutte le QPU in tutte le regioni: arn:aws:braket:*:*:device/qpu/*

  • Per selezionare SOLO tutte le QPU nella regione us-west-2: arn:aws:braket:us-west-2:123456789012:device/qpu/*

  • Equivalentemente, per selezionare SOLO tutte le QPU nella regione us-west-2 (poiché i dispositivi sono una risorsa di servizio, non una risorsa per i clienti): arn:aws:braket:us-west-2:* :device/qpu/*

  • Per limitare l'accesso a tutti i dispositivi di simulazione su richiesta: arn:aws:braket:* :123456789012:device/quantum-simulator/*

  • Per limitare l'accesso al IonQ Harmony dispositivo nella regione us-east-1: arn:aws:braket:us-east-1:123456789012:device/ionq/Harmony

  • Per limitare l'accesso ai dispositivi di un determinato provider (ad esempio, ai Rigetti QPU dispositivi): arn:aws:braket:* :123456789012:device/qpu/rigetti/*

  • Per limitare l'accesso al TN1 dispositivo: arn:aws:braket:* :123456789012:device/quantum-simulator/amazon/tn1

Amazon Braket si aggiorna alle AWS politiche gestite

La tabella seguente fornisce dettagli sugli aggiornamenti alle politiche AWS gestite per Braket da quando questo servizio ha iniziato a tenere traccia di queste modifiche.

Modifica Descrizione Data

AmazonBraketFullAccess- Politica di accesso completo per Braket

Sono state aggiunte le azioni servicequotas: GetServiceQuota e cloudwatch: da includere nella GetMetricData policy. AmazonBraketFullAccess

.

24 marzo 2023

AmazonBraketFullAccess- Politica di accesso completo per Braket

Braket adjusted iam: PassRole autorizzazioni AmazonBraketFullAccess per includere il percorso. service-role/

29 novembre 2021

AmazonBraketJobsExecutionPolicy- Politica di esecuzione dei lavori ibridi per Amazon Braket Hybrid Jobs

Braket ha aggiornato l'ARN del ruolo di esecuzione dei lavori ibridi per includere service-role/ il percorso.

29 novembre 2021

Braket ha iniziato a tracciare le modifiche

Braket ha iniziato a tenere traccia delle modifiche per le sue politiche AWS gestite.

29 novembre 2021

Limita l'accesso degli utenti a determinate istanze del notebook

Per limitare l'accesso di determinati utenti a istanze specifiche del notebook Braket, puoi aggiungere una politica di negazione delle autorizzazioni a un ruolo, utente o gruppo specifico.

L'esempio seguente utilizza variabili di policy per limitare in modo efficiente le autorizzazioni di avvio, arresto e accesso a istanze di notebook specifiche in Account AWS 123456789012, denominate in base all'utente che dovrebbe avere accesso (ad esempio, l'utente Alice avrebbe accesso a un'istanza del notebook denominata). 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}*" ] } ] }

Limita l'accesso degli utenti a determinati bucket S3

Per limitare l'accesso di determinati utenti a specifici bucket Amazon S3, puoi aggiungere una politica di rifiuto a un ruolo, utente o gruppo specifico.

L'esempio seguente limita le autorizzazioni per recuperare e posizionare oggetti in un S3 bucket specifico (arn:aws:s3:::amazon-braket-us-east-1-123456789012-Alice) e limita anche l'elenco di tali oggetti.

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

Per limitare l'accesso al bucket per una determinata istanza di notebook, è possibile aggiungere la politica precedente al ruolo di esecuzione del notebook.