Administrar el acceso a Amazon Braket - Amazon Braket

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Administrar el acceso a Amazon Braket

En este capítulo se describen los permisos necesarios para ejecutar Amazon Braket o para restringir el acceso de usuarios y funciones específicos. Puedes conceder (o denegar) los permisos necesarios a cualquier usuario o función de tu cuenta. Para ello, adjunta la política de Amazon Braket correspondiente a ese usuario o rol en tu cuenta, tal y como se describe en las siguientes secciones.

Como requisito previo, debes activar Amazon Braket. Para activar Braket, asegúrese de iniciar sesión como un usuario o rol que tenga (1) permisos de administrador o (2) que tenga asignada la AmazonBraketFullAccesspolítica y permisos para crear buckets de Amazon Simple Storage Service (Amazon S3).

Recursos de Amazon Braket

Braket crea un tipo de recurso: el recurso de tareas cuánticas. El nombre de recurso de Amazon (ARN) para este tipo de recurso es el siguiente:

  • Nombre del recurso: :Service AWS: :Braket

  • Régex de ARN: ARN: $ {Partition} :braket: $ {Region} :$ {Account} :quantum-task/$ {} RandomId

Cuadernos y funciones

Puede utilizar el tipo de recurso cuaderno en Braket. Una libreta es un SageMaker recurso de Amazon que Braket puede compartir. Para usar una libreta con Braket, debes especificar un rol de IAM con un nombre que comience por. AmazonBraketServiceSageMakerNotebook

Para crear un bloc de notas, debe usar un rol con permisos de administrador o que tenga asociada la siguiente política interna.

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

Para crear el rol, siga los pasos que se indican en la página Crear un bloc de notas o pida a su administrador que lo cree por usted. Asegúrese de que la AmazonBraketFullAccesspolítica esté adjunta.

Una vez que haya creado el rol, podrá reutilizarlo en todos los blocs de notas que lance en el futuro.

Acerca de la política AmazonBraketFullAccess

La AmazonBraketFullAccesspolítica concede permisos para las operaciones de Amazon Braket, incluidos los permisos para las siguientes tareas:

  • Descargar contenedores de Amazon Elastic Container Registry: para leer y descargar imágenes de contenedores que se utilizan para la función Amazon Braket Hybrid Jobs. Los contenedores deben tener el formato «arn:aws:ecr: ::repository/amazon-braket».

  • Guarde AWS CloudTrail registros: para todas las acciones de descripción, obtención y lista, además de iniciar y detener consultas, probar filtros de métricas y filtrar eventos de registro. El archivo de AWS CloudTrail registro contiene un registro de toda la API actividad de Amazon Braket que se produce en tu cuenta.

  • Utilice roles para controlar los recursos: para crear un rol vinculado a un servicio en su cuenta. El rol vinculado al servicio tiene acceso a los AWS recursos en tu nombre. Solo lo puede utilizar el servicio Amazon Braket. Además, transferir las funciones de IAM a Amazon CreateJob API Braket y crear una función y adjuntar una política relacionada con la AmazonBraketFullAccess función.

  • Cree grupos de registros, registre eventos y consulte grupos de registros para mantener los archivos de registro de uso de su cuenta: para crear, almacenar y ver información de registro sobre el uso de Amazon Braket en su cuenta. Consulte las métricas de los grupos de registros de trabajos híbridos. Utilice la ruta de Braket adecuada y permita colocar los datos de registro. Introduzca los datos métricos. CloudWatch

  • Cree y almacene datos en buckets de Amazon S3 y enumere todos los buckets: para crear buckets S3, enumere los buckets S3 de su cuenta y coloque objetos en cualquier bucket de su cuenta cuyo nombre comience por amazon-braket- y obténgalos de ellos. Estos permisos son necesarios para que Braket coloque en el depósito los archivos que contienen los resultados de las tareas cuánticas procesadas y para recuperarlos del depósito.

  • Transferir funciones de IAM: para transferir las funciones de IAM a. CreateJob API

  • Amazon SageMaker Notebook: para crear y administrar instancias de SageMaker bloc de notas relacionadas con el recurso de «arn:aws:sagemaker: ::notebook-instance/amazon-braket-».

  • Valide las cuotas de servicio: para crear SageMaker libretas y trabajos híbridos de Amazon Braket, sus recuentos de recursos no pueden superar las cuotas de su cuenta.

Contenido de la política

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

Acerca de la AmazonBraketJobsExecutionPolicy política

La AmazonBraketJobsExecutionPolicypolítica concede permisos para las funciones de ejecución utilizadas en Amazon Braket Hybrid Jobs de la siguiente manera:

  • Descargar contenedores de Amazon Elastic Container Registry: permisos para leer y descargar imágenes de contenedores que se utilizan para la función Amazon Braket Hybrid Jobs. Los contenedores deben tener el formato «arn:aws:ecr: *:*:repository/amazon-braket*».

  • Cree grupos de registros y registre eventos y consulte grupos de registros para mantener los archivos de registro de uso de su cuenta: cree, almacene y vea la información de registro sobre el uso de Amazon Braket en su cuenta. Consulte las métricas de los grupos de registros de trabajos híbridos. Utilice la ruta de Braket adecuada y permita colocar los datos de registro. Introduzca los datos métricos. CloudWatch

  • Almacene datos en buckets de Amazon S3: enumere los buckets de S3 de su cuenta, coloque objetos y obtenga objetos de cualquier bucket de su cuenta que comience por amazon-braket - en su nombre. Estos permisos son necesarios para que Braket coloque en el depósito los archivos que contienen los resultados de las tareas cuánticas procesadas y los recupere del depósito.

  • Transferir las funciones de IAM: transferir las funciones de IAM a. CreateJob API Los roles deben tener el 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"
				}
			}
		}
	]
}

Restrinja el acceso de los usuarios a determinados dispositivos

Para restringir el acceso de determinados usuarios a determinados dispositivos Braket, puedes añadir una política de denegación de permisos a una IAM función específica.

Con estos permisos, se pueden restringir las siguientes acciones:

  • CreateQuantumTask- denegar la creación de tareas cuánticas en dispositivos específicos.

  • CreateJob- denegar la creación de empleos híbridos en dispositivos específicos.

  • GetDevice- denegar la obtención de detalles de dispositivos específicos.

El siguiente ejemplo restringe el acceso a todas las QPU para el. Cuenta de AWS 123456789012

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

Para adaptar este código, sustituya el número de Amazon recurso (ARN) del dispositivo restringido por la cadena que se muestra en el ejemplo anterior. Esta cadena proporciona el valor del recurso. En Braket, un dispositivo representa una QPU o un simulador al que se puede llamar para ejecutar tareas cuánticas. Los dispositivos disponibles aparecen en la página Dispositivos. Se utilizan dos esquemas para especificar el acceso a estos dispositivos:

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

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

A continuación, se muestran ejemplos de varios tipos de acceso a dispositivos

  • Para seleccionar todas las QPU de todas las regiones: arn:aws:braket:*:*:device/qpu/*

  • Para seleccionar ÚNICAMENTE todas las QPU de la región us-west-2: arn:aws:braket:us-west-2:123456789012:device/qpu/*

  • Del mismo modo, para seleccionar ÚNICAMENTE todas las QPU de la región us-west-2 (ya que los dispositivos son un recurso de servicio, no un recurso de cliente): arn:aws:braket:us-west-2:* :device/qpu/*

  • Para restringir el acceso a todos los dispositivos de simulador bajo demanda: arn:aws:braket:* :123456789012:device/quantum-simulator/*

  • Para restringir el acceso al IonQ Harmony dispositivo en la región us-east-1: arn:aws:braket:us-east-1:123456789012:device/ionq/Harmony

  • Para restringir el acceso a los dispositivos de un proveedor determinado (por ejemplo, a Rigetti QPU los dispositivos): arn:aws:braket:* :123456789012:device/qpu/rigetti/*

  • Para restringir el acceso al TN1 dispositivo: arn:aws:braket:* :123456789012:device/quantum-simulator/amazon/tn1

Amazon Braket actualiza las políticas gestionadas AWS

En la siguiente tabla se proporcionan detalles sobre las actualizaciones de las políticas AWS gestionadas de Braket desde que este servicio comenzó a realizar un seguimiento de estos cambios.

Cambio Descripción Fecha

AmazonBraketFullAccess- Política de acceso completo a Braket

Se agregaron las GetMetricData acciones servicequota GetServiceQuota y cloudwatch, que se incluirán en la política. AmazonBraketFullAccess

.

24 de marzo de 2023

AmazonBraketFullAccess- Política de acceso completo a Braket

Objetivo ajustado por corchetes: PassRole permisos AmazonBraketFullAccess para incluir la ruta. service-role/

29 de noviembre de 2021

AmazonBraketJobsExecutionPolicy- Política de ejecución de trabajos híbridos para Amazon Braket Hybrid Jobs

Braket actualizó el ARN del rol de ejecución de trabajos híbridos para incluir service-role/ la ruta.

29 de noviembre de 2021

Braket comenzó a rastrear los cambios

Braket comenzó a realizar un seguimiento de los cambios en sus políticas AWS gestionadas.

29 de noviembre de 2021

Restrinja el acceso de los usuarios a determinadas instancias de notebook

Para restringir el acceso de determinados usuarios a instancias específicas de Braket Notebook, puedes añadir una política de denegación de permisos a un rol, usuario o grupo específico.

En el siguiente ejemplo, se utilizan variables de política para restringir de forma eficaz los permisos para iniciar, detener y acceder a determinadas instancias de bloc de notas en el Cuenta de AWS 123456789012, que se denomina según el usuario que debería tener acceso (por ejemplo, el usuario Alice tendría acceso a una instancia de bloc de notas denominadaamazon-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}*" ] } ] }

Restrinja el acceso de los usuarios a determinados buckets de S3

Para restringir el acceso de determinados usuarios a buckets específicos de Amazon S3, puede añadir una política de denegación a un rol, usuario o grupo específico.

El siguiente ejemplo restringe los permisos para recuperar y colocar objetos en un S3 depósito específico (arn:aws:s3:::amazon-braket-us-east-1-123456789012-Alice) y también restringe la lista de esos objetos.

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

Para restringir el acceso al depósito a una instancia determinada del bloc de notas, puede añadir la política anterior a la función de ejecución del bloc de notas.