Contoh kebijakan berbasis sumber daya untuk Glue AWS - AWS Glue

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.

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 (seperti arn:aws:iam::account-id:user/*) tidak diperbolehkan.

  • "Resource"Blok dalam kebijakan mengharuskan semua ARN resource untuk mencocokkan sintaks ekspresi reguler berikut (di mana yang pertama %s adalah region, dan yang kedua %s adalah account-id):

    *arn:aws:glue:%s:%s:(\*|[a-zA-Z\*]+\/?.*)

    Misalnya, arn:aws:glue:us-west-2:account-id:* dan arn:aws:glue:us-west-2:account-id:database/default keduanya diperbolehkan, namun * 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": { ...... }, ...... } }