아마존 브라켓에 대한 액세스 관리 - Amazon Braket

를 통해 양자 컴퓨팅의 기초를 알아보십시오! AWS Amazon Braket 디지털 학습 플랜에 등록하고 일련의 학습 과정과 디지털 평가를 완료한 후 디지털 배지를 획득하십시오.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

아마존 브라켓에 대한 액세스 관리

이 장에서는 Amazon Braket을 실행하거나 특정 사용자 및 역할의 액세스를 제한하는 데 필요한 권한을 설명합니다. 계정의 모든 사용자 또는 역할에 필요한 권한을 부여 (또는 거부) 할 수 있습니다. 이렇게 하려면 다음 섹션에 설명된 대로 계정의 해당 사용자 또는 역할에 적절한 Amazon Braket 정책을 연결하십시오.

사전 요구 사항으로 Amazon Braket을 활성화해야 합니다. Braket을 활성화하려면 (1) 관리자 권한이 있거나 (2) AmazonBraketFullAccess정책이 할당되고 Amazon Simple Storage Service (Amazon S3) 버킷을 생성할 권한이 있는 사용자 또는 역할로 로그인해야 합니다.

아마존 브라켓 리소스

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정책이 첨부되어 있는지 확인하십시오.

역할을 생성한 후에는 향후 시작하는 모든 노트북에 해당 역할을 재사용할 수 있습니다.

정책 정보 AmazonBraketFullAccess

AmazonBraketFullAccess정책은 다음 작업에 대한 권한을 포함하여 Amazon Braket 작업에 대한 권한을 부여합니다.

  • Amazon Elastic 컨테이너 레지스트리에서 컨테이너 다운로드 — Amazon Braket Hybrid Jobs 기능에 사용되는 컨테이너 이미지를 읽고 다운로드하려면 컨테이너는 “arn:aws:ecr: ::리포지토리/아마존 브라켓” 형식을 준수해야 합니다.

  • AWS CloudTrail 로그 보관 — 쿼리 시작 및 중지, 지표 필터 테스트, 로그 이벤트 필터링 외에도 모든 설명, 가져오기나열 작업에 대해 기록합니다. AWS CloudTrail 로그 파일에는 계정에서 발생하는 모든 Amazon Braket API 활동 기록이 들어 있습니다.

  • 역할을 활용하여 리소스를 제어 — 계정에서 서비스 연결 역할을 생성합니다. 서비스 연결 역할은 사용자를 대신하여 AWS 리소스에 액세스할 수 있습니다. Amazon Braket 서비스에서만 사용할 수 있습니다. 또한 Amazon CreateJob API Braket에 IAM 역할을 전달하고 역할을 생성하고 범위가 지정된 정책을 역할에 연결할 AmazonBraketFullAccess 수 있습니다.

  • 계정에 대한 사용 로그 파일을 유지 관리하기 위해 로그 그룹, 로그 이벤트 및 쿼리 로그 그룹을 생성합니다. 계정에서 Amazon Braket 사용에 대한 로깅 정보를 생성, 저장 및 확인합니다. 하이브리드 작업 로그 그룹의 쿼리 지표 적절한 Braket 경로를 포함하고 로그 데이터 입력을 허용하십시오. 메트릭 데이터를 입력하세요. CloudWatch

  • Amazon S3 버킷에 데이터 생성 및 저장, 모든 버킷 나열 - S3 버킷을 생성하려면 계정의 S3 버킷을 나열하고, 이름이 amazon-braket-로 시작하는 계정 내 모든 버킷에 객체를 넣고 객체를 가져옵니다. Braket이 처리된 양자 작업의 결과가 포함된 파일을 버킷에 넣고 버킷에서 검색하려면 이러한 권한이 필요합니다.

  • IAM 역할 전달 - IAM 역할을 에 전달합니다. CreateJob API

  • Amazon SageMaker Notebook — “arn:aws:sagemaker: SageMaker ::노트북 인스턴스/amazon-braket-”의 리소스로 범위가 지정된 노트북 인스턴스를 생성하고 관리합니다.

  • 서비스 할당량 확인 — SageMaker 노트북 및 Amazon Braket Hybrid 작업을 생성하려면 리소스 수가 계정에 대한 할당량을 초과할 수 없습니다.

정책 내용

{
    "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 Elastic 컨테이너 레지스트리에서 컨테이너 다운로드 - Amazon Braket 하이브리드 작업 기능에 사용되는 컨테이너 이미지를 읽고 다운로드할 수 있는 권한입니다. 컨테이너는 “arn:aws:ecr: *:*:리포지토리/아마존 브라켓*” 형식을 준수해야 합니다.

  • 계정에 대한 사용 로그 파일을 유지 관리하기 위해 로그 그룹과 로그 이벤트 및 쿼리 로그 그룹을 생성합니다. 계정에서 Amazon Braket 사용에 대한 로깅 정보를 생성, 저장 및 확인합니다. 하이브리드 작업 로그 그룹의 쿼리 지표 적절한 Braket 경로를 포함하고 로그 데이터 입력을 허용하십시오. 메트릭 데이터를 입력하세요. CloudWatch

  • Amazon S3 버킷에 데이터 저장 — 계정에 있는 S3 버킷을 나열하고, 이름에 amazon-braket-로 시작하는 계정 내 모든 버킷에 객체를 넣고, 객체를 가져옵니다. Braket이 처리된 양자 작업의 결과가 포함된 파일을 버킷에 넣고 버킷에서 해당 파일을 검색하려면 이러한 권한이 필요합니다.

  • IAM 역할 전달 — IAM 역할을 에 전달합니다. CreateJob API 역할은 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"
				}
			}
		}
	]
}

특정 디바이스에 대한 사용자 액세스를 제한하세요

특정 사용자의 액세스를 특정 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/*

  • us-west-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

관리형 정책에 대한 AWS Amazon Braket 업데이트

다음 표에는 이 서비스가 이러한 변경 사항을 추적하기 시작한 이후 Braket의 AWS 관리형 정책 업데이트에 대한 세부 정보가 나와 있습니다.

변경 사항 설명 날짜

AmazonBraketFullAccess- Braket에 대한 전체 액세스 정책

정책에 포함할 서비스 할당량: GetServiceQuotacloudwatch: GetMetricData 작업을 추가했습니다. AmazonBraketFullAccess

.

2023년 3월 24일

AmazonBraketFullAccess- Braket에 대한 전체 액세스 정책

브라켓 조정 iam: 경로를 포함할 AmazonBraketFullAccess 수 있는 PassRole 권한 service-role/

2021년 11월 29일

AmazonBraketJobsExecutionPolicy- 브래킷 하이브리드 작업에 대한 Amazon 하이브리드 작업 실행 정책

Braket은 경로를 service-role/ 포함하도록 하이브리드 작업 실행 역할 ARN을 업데이트했습니다.

2021년 11월 29일

Braket은 변경 사항을 추적하기 시작했습니다.

Braket은 AWS 관리형 정책의 변경 사항을 추적하기 시작했습니다.

2021년 11월 29일

특정 노트북 인스턴스에 대한 사용자 액세스를 제한합니다.

특정 사용자의 액세스를 특정 Braket 노트북 인스턴스로 제한하려면 특정 역할, 사용자 또는 그룹에 거부 권한 정책을 추가할 수 있습니다.

다음 예제에서는 정책 변수를 사용하여 에서 특정 노트북 인스턴스를 시작, 중지 및 액세스할 수 있는 권한을 효율적으로 제한합니다. 액세스 권한이 있어야 하는 사용자에 따라 이름이 지정됩니다 (예: 사용자는 Alice 이름이 지정된 amazon-braket-Alice 노트북 인스턴스에 액세스할 수 있음). AWS 계정 123456789012

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

특정 노트북 인스턴스의 버킷 액세스를 제한하려면 노트북 실행 역할에 이전 정책을 추가할 수 있습니다.