Mengelola akses ke Amazon Braket - Amazon Braket

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengelola akses ke Amazon Braket

Bab ini menjelaskan izin yang diperlukan untuk menjalankan Amazon Braket, atau untuk membatasi akses pengguna dan peran tertentu. Anda dapat memberikan (atau menolak) izin yang diperlukan untuk setiap pengguna atau peran di akun Anda. Untuk melakukannya, lampirkan kebijakan Amazon Braket yang sesuai ke pengguna atau peran tersebut di akun Anda seperti yang dijelaskan di bagian berikut.

Sebagai prasyarat, Anda harus Mengaktifkan Amazon Braket. Untuk mengaktifkan Braket, pastikan untuk masuk sebagai pengguna atau peran yang memiliki (1) izin administrator atau (2) ditetapkan AmazonBraketFullAccesskebijakan dan memiliki izin untuk membuat bucket Amazon Simple Storage Service (Amazon S3).

Sumber daya Amazon Braket

Braket menciptakan satu jenis sumber daya: sumber daya tugas kuantum. Nama Sumber Daya Amazon (ARN) untuk jenis sumber daya ini adalah sebagai berikut:

  • Nama Sumber Daya:: :Service AWS: :Braket

  • ARN Regex: arn: $ {Partition} :braket: $ {Wilayah} :$ {Akun} :quantum-task/$ {} RandomId

Notebook dan peran

Anda dapat menggunakan jenis sumber daya noteboook di Braket. Notebook adalah SageMaker sumber daya Amazon yang dapat dibagikan oleh Braket. Untuk menggunakan notebook dengan Braket, Anda harus menentukan peran IAM dengan nama yang dimulai dengan. AmazonBraketServiceSageMakerNotebook

Untuk membuat buku catatan, Anda harus menggunakan peran dengan izin admin atau yang memiliki kebijakan sebaris berikut yang dilampirkan padanya.

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

Untuk membuat peran, ikuti langkah-langkah yang diberikan di halaman Buat buku catatan atau minta administrator membuatnya untuk Anda. Pastikan bahwa AmazonBraketFullAccesskebijakan tersebut terlampir.

Setelah membuat peran, Anda dapat menggunakan kembali peran tersebut untuk semua notebook yang diluncurkan di masa mendatang.

Tentang AmazonBraketFullAccess kebijakan

AmazonBraketFullAccessKebijakan ini memberikan izin untuk operasi Amazon Braket, termasuk izin untuk tugas ini:

  • Unduh kontainer dari Amazon Elastic Container Registry — Untuk membaca dan mengunduh gambar kontainer yang digunakan untuk fitur Amazon Braket Hybrid Jobs. Wadah harus sesuai dengan format “arn:aws:ecr: ::repository/amazon-braket”.

  • Simpan AWS CloudTrail log — Untuk semua tindakan deskripsikan, dapatkan, dan daftar selain memulai dan menghentikan kueri, menguji filter metrik, dan memfilter peristiwa log. File AWS CloudTrail log berisi catatan semua API aktivitas Amazon Braket yang terjadi di akun Anda.

  • Memanfaatkan peran untuk mengontrol sumber daya — Untuk membuat peran terkait layanan di akun Anda. Peran terkait layanan memiliki akses ke AWS sumber daya atas nama Anda. Ini hanya bisa digunakan oleh layanan Amazon Braket. Juga, untuk meneruskan peran IAM ke Amazon CreateJob API Braket dan untuk membuat peran dan melampirkan kebijakan yang dicakup AmazonBraketFullAccess ke peran tersebut.

  • Buat grup log, peristiwa log, dan grup log kueri untuk mempertahankan file log penggunaan untuk akun Anda — Untuk membuat, menyimpan, dan melihat informasi pencatatan tentang penggunaan Amazon Braket di akun Anda. Metrik kueri pada grup log pekerjaan hibrida. Mencakup jalur Braket yang tepat dan memungkinkan menempatkan data log. Masukkan data metrik CloudWatch.

  • Buat dan simpan data di bucket Amazon S3, dan daftarkan semua bucket — Untuk membuat bucket S3, daftarkan bucket S3 di akun Anda, lalu masukkan objek ke dalam dan dapatkan objek dari bucket apa pun di akun Anda yang namanya dimulai dengan amazon-braket-. Izin ini diperlukan untuk Braket untuk menempatkan file yang berisi hasil dari tugas kuantum yang diproses ke dalam bucket dan mengambilnya dari bucket.

  • Lulus peran IAM — Untuk meneruskan peran IAM ke. CreateJob API

  • Amazon SageMaker Notebook - Untuk membuat dan mengelola instance SageMaker notebook yang dicakup ke sumber daya dari “arn:aws:sagemaker: ::notebook-instance/amazon-braket-”.

  • Validasi kuota layanan — Untuk membuat SageMaker notebook dan pekerjaan Amazon Braket Hybrid, jumlah sumber daya Anda tidak dapat melebihi kuota untuk akun Anda.

Isi kebijakan

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

Tentang AmazonBraketJobsExecutionPolicy kebijakan

AmazonBraketJobsExecutionPolicyKebijakan ini memberikan izin untuk peran eksekusi yang digunakan dalam Pekerjaan Hibrid Amazon Braket sebagai berikut:

  • Unduh wadah dari Amazon Elastic Container Registry - Izin untuk membaca dan mengunduh gambar kontainer yang digunakan untuk fitur Pekerjaan Hibrida Amazon Braket. Wadah harus sesuai dengan format “arn:aws:ecr: *:*:repository/amazon-braket*”.

  • Buat grup log dan peristiwa log dan grup log kueri untuk mempertahankan file log penggunaan untuk akun Anda — Buat, simpan, dan lihat informasi pencatatan tentang penggunaan Amazon Braket di akun Anda. Metrik kueri pada grup log pekerjaan hibrida. Mencakup jalur Braket yang tepat dan memungkinkan menempatkan data log. Masukkan data metrik CloudWatch.

  • Simpan data di bucket Amazon S3 — Cantumkan bucket S3 di akun Anda, masukkan objek ke dalam dan dapatkan objek dari bucket apa pun di akun Anda yang dimulai dengan amazon-braket - dalam namanya. Izin ini diperlukan untuk Braket untuk menempatkan file yang berisi hasil dari tugas kuantum yang diproses ke dalam bucket, dan untuk mengambilnya dari bucket.

  • Lulus peran IAM — Melewati peran IAM ke. CreateJob API Peran harus sesuai dengan format 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"
				}
			}
		}
	]
}

Batasi akses pengguna ke perangkat tertentu

Untuk membatasi akses pengguna tertentu ke perangkat Braket tertentu, Anda dapat menambahkan kebijakan penolakan izin ke peran tertentu. IAM

Tindakan berikut dapat dibatasi dengan izin tersebut:

  • CreateQuantumTask- untuk menolak pembuatan tugas kuantum pada perangkat tertentu.

  • CreateJob- untuk menolak penciptaan lapangan kerja hybrid pada perangkat tertentu.

  • GetDevice- untuk menolak mendapatkan detail perangkat yang ditentukan.

Contoh berikut membatasi akses ke semua QPU untuk. Akun AWS 123456789012

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

Untuk mengadaptasi kode ini, gantikan Amazon Resource Number (ARN) dari perangkat terbatas untuk string yang ditunjukkan pada contoh sebelumnya. String ini memberikan nilai Resource. Di Braket, perangkat mewakili QPU atau simulator yang dapat Anda panggil untuk menjalankan tugas kuantum. Perangkat yang tersedia tercantum di halaman Perangkat. Ada dua skema yang digunakan untuk menentukan akses ke perangkat ini:

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

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

Berikut adalah contoh untuk berbagai jenis akses perangkat

  • Untuk memilih semua QPU di semua wilayah: arn:aws:braket:*:*:device/qpu/*

  • Untuk memilih semua QPU di wilayah us-barat-2 SAJA: arn:aws:braket:us-west-2:123456789012:device/qpu/*

  • Secara setara, untuk memilih semua QPU di wilayah us-barat-2 SAJA (karena perangkat adalah sumber daya layanan, bukan sumber daya pelanggan): arn:aws:braket:us-west-2:* :device/qpu/*

  • Untuk membatasi akses ke semua perangkat simulator sesuai permintaan: arn:aws:braket:* :123456789012:device/quantum-simulator/*

  • Untuk membatasi akses ke IonQ Harmony perangkat di wilayah us-east-1: arn:aws:braket:us-east-1:123456789012:device/ionq/Harmony

  • Untuk membatasi akses ke perangkat dari penyedia tertentu (misalnya, ke Rigetti QPU perangkat): arn:aws:braket:* :123456789012:device/qpu/rigetti/*

  • Untuk membatasi akses ke TN1 perangkat: arn:aws:braket:* :123456789012:device/quantum-simulator/amazon/tn1

Amazon Braket memperbarui kebijakan terkelola AWS

Tabel berikut memberikan rincian tentang pembaruan kebijakan AWS terkelola untuk Braket sejak layanan ini mulai melacak perubahan ini.

Ubah Deskripsi Tanggal

AmazonBraketFullAccess- Kebijakan akses penuh untuk Braket

Menambahkan GetMetricData tindakan servicequotas: GetServiceQuota dan cloudwatch: untuk disertakan dalam kebijakan. AmazonBraketFullAccess

.

24 Maret 2023

AmazonBraketFullAccess- Kebijakan akses penuh untuk Braket

Braket disesuaikan iam: PassRole izin AmazonBraketFullAccess untuk menyertakan jalur. service-role/

29 November 2021

AmazonBraketJobsExecutionPolicy- Kebijakan eksekusi pekerjaan Hybrid untuk Amazon Braket Hybrid Jobs

Braket memperbarui peran eksekusi pekerjaan hybrid ARN untuk memasukkan service-role/ jalur.

29 November 2021

Braket mulai melacak perubahan

Braket mulai melacak perubahan untuk kebijakan AWS terkelolanya.

29 November 2021

Batasi akses pengguna ke instance notebook tertentu

Untuk membatasi akses bagi pengguna tertentu ke instance notebook Braket tertentu, Anda dapat menambahkan kebijakan penolakan izin ke peran, pengguna, atau grup tertentu.

Contoh berikut menggunakan variabel kebijakan untuk secara efisien membatasi izin untuk memulai, menghentikan, dan mengakses instance notebook tertentu di Akun AWS 123456789012, yang dinamai sesuai dengan pengguna yang seharusnya memiliki akses (misalnya, pengguna Alice akan memiliki akses ke instance notebook bernama). 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}*" ] } ] }

Batasi akses pengguna ke bucket S3 tertentu

Untuk membatasi akses pengguna tertentu ke bucket Amazon S3 tertentu, Anda dapat menambahkan kebijakan penolakan ke peran, pengguna, atau grup tertentu.

Contoh berikut membatasi izin untuk mengambil dan menempatkan objek ke dalam S3 bucket (arn:aws:s3:::amazon-braket-us-east-1-123456789012-Alice) tertentu dan juga membatasi daftar objek tersebut.

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

Untuk membatasi akses ke bucket untuk instance notebook tertentu, Anda dapat menambahkan kebijakan sebelumnya ke peran eksekusi notebook.