Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Contoh kebijakan berbasis sumber daya untuk Glue AWS
Bagian ini berisi contoh kebijakan berbasis sumber daya, termasuk kebijakan yang memberikan akses lintas akun.
Contoh menggunakan AWS Command Line Interface (AWS CLI) untuk berinteraksi dengan operasi API AWS Glue layanan. Anda dapat melakukan operasi yang sama di AWS Glue konsol atau menggunakan salah satu AWS SDK.
penting
Dengan mengubah kebijakan AWS Glue sumber daya, Anda mungkin secara tidak sengaja mencabut izin untuk AWS Glue pengguna yang ada di akun Anda dan menyebabkan gangguan yang tidak terduga. Coba contoh-contoh ini hanya di akun pengembangan atau pengujian, dan pastikan bahwa mereka tidak merusak alur kerja yang ada sebelum Anda melakukan perubahan.
Topik
Pertimbangan untuk menggunakan kebijakan berbasis sumber daya dengan Glue AWS
catatan
Kebijakan IAM dan kebijakan AWS Glue sumber daya membutuhkan beberapa detik untuk disebarkan. Setelah Anda melampirkan sebuah kebijakan baru, Anda mungkin memperhatikan bahwa kebijakan lama masih berlaku sampai kebijakan baru telah disebarkan melalui sistem.
Anda menggunakan sebuah dokumen kebijakan yang ditulis dalam format JSON untuk membuat atau memodifikasi sebuah kebijakan sumber daya. Sintaks kebijakan sama dengan kebijakan IAM berbasis identitas (lihat referensi kebijakan IAM JSON), dengan pengecualian berikut:
-
Sebuah
"Principal"
atau blok"NotPrincipal"
untuk setiap pernyataan kebijakan. -
"Principal"
Atau"NotPrincipal"
harus mengidentifikasi prinsip-prinsip yang ada yang valid. Pola wildcard (sepertiarn:aws:iam::
) tidak diperbolehkan.account-id
:user/* -
"Resource"
Blok dalam kebijakan mengharuskan semua ARN resource untuk mencocokkan sintaks ekspresi reguler berikut (di mana yang pertama%s
adalahregion
, dan yang kedua%s
adalahaccount-id
):*arn:aws:glue:%s:%s:(\*|[a-zA-Z\*]+\/?.*)
Misalnya,
arn:aws:glue:us-west-2:
danaccount-id
:*arn:aws:glue:us-west-2:
keduanya diperbolehkan, namunaccount-id
:database/default*
tidak diperbolehkan. -
Tidak seperti kebijakan berbasis identitas, kebijakan AWS Glue sumber daya hanya boleh berisi Nama Sumber Daya Amazon (ARN) sumber daya yang termasuk dalam katalog tempat kebijakan dilampirkan. ARN tersebut selalu dimulai dengan
arn:aws:glue:
. -
Kebijakan tidak dapat menyebabkan identitas yang membuatnya terkunci dari pembuatan atau modifikasi kebijakan lebih lanjut.
-
Dokumen JSON sumber daya kebijakan tidak dapat melebihi ukuran 10 KB.
Menggunakan kebijakan sumber daya untuk mengontrol akses di akun yang sama
Dalam contoh ini, pengguna admin di akun A menciptakan sebuah kebijakan sumber daya yang memberikan pengguna IAM Alice
di Akun A akses penuh ke katalog. Alice tidak memiliki kebijakan IAM terlampir.
Untuk melakukan ini, pengguna admin menjalankan AWS CLI perintah berikut.
# Run as admin of Account A $ aws glue put-resource-policy --profile
administrator-name
--region us-west-2 --policy-in-json '{ "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::account-A-id
:user/Alice" ] }, "Effect": "Allow", "Action": [ "glue:*" ], "Resource": [ "arn:aws:glue:us-west-2:account-A-id
:*" ] } ] }'
Alih-alih memasukkan dokumen kebijakan JSON sebagai bagian dari perintah AWS CLI, Anda dapat menyimpan dokumen kebijakan dalam file dan kemudian me-referensi path file dalam perintah AWS CLI tersebut, yang menggunakan prefiks file://
. Berikut ini adalah contoh bagaimana Anda dapat melakukan hal itu.
$ echo '{ "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::
account-A-id
:user/Alice" ] }, "Effect": "Allow", "Action": [ "glue:*" ], "Resource": [ "arn:aws:glue:us-west-2:account-A-id
:*" ] } ] }' > /temp/policy.json $ aws glue put-resource-policy --profile admin1 \ --region us-west-2 --policy-in-json file:///temp/policy.json
Setelah kebijakan sumber daya ini disebarkan, Alice dapat mengakses semua AWS Glue sumber daya di Akun A, sebagai berikut.
# Run as user Alice $ aws glue create-database --profile alice --region us-west-2 --database-input '{ "Name": "new_database", "Description": "A new database created by Alice", "LocationUri": "s3://my-bucket" }' $ aws glue get-table --profile alice --region us-west-2 --database-name "default" --table-name "tbl1"}
Menanggapi get-table
panggilan Alice, AWS Glue layanan mengembalikan yang berikut ini.
{ "Table": { "Name": "tbl1", "PartitionKeys": [], "StorageDescriptor": { ...... }, ...... } }