

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

# Memberikan akses fungsi ke organisasi
<a name="permissions-function-organization"></a>

Untuk memberikan izin ke semua akun dalam [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) organisasi, sebaiknya gunakan `put-resource-policy` untuk membuat kebijakan JSON lengkap dengan kunci `aws:PrincipalOrgID` kondisi.

**penting**  
Menggunakan `put-resource-policy` menggantikan kebijakan berbasis sumber daya yang ada pada sumber daya. Jika sumber daya sudah memiliki izin yang ditentukan dengan`add-permission`, tul `put-resource-policy` islah. Gunakan `get-resource-policy` untuk mengambil kebijakan yang ada sebelum membuat perubahan.

## Menggunakan kebijakan JSON lengkap (disarankan)
<a name="permissions-function-organization-json"></a>

Contoh hibah kebijakan berikut memanggil akses ke semua Akun AWS dalam organisasi: `o-a1b2c3d4e5f`

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "org-access",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:us-east-2:123456789012:function:my-function",
            "Condition": {
                "StringEquals": {
                    "aws:PrincipalOrgID": "o-a1b2c3d4e5f"
                }
            }
        }
    ]
}
```

Simpan kebijakan ke file bernama `policy.json` dan terapkan:

```
aws lambda put-resource-policy \
  --resource-arn arn:aws:lambda:{{us-east-2}}:{{123456789012}}:function:{{my-function}} \
  --policy file://policy.json
```

Dengan kebijakan JSON lengkap, Anda juga dapat menolak akses ke akun tertentu dalam organisasi:

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "allow-org",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:us-east-2:123456789012:function:my-function",
            "Condition": {
                "StringEquals": {
                    "aws:PrincipalOrgID": "o-a1b2c3d4e5f"
                }
            }
        },
        {
            "Sid": "deny-specific-account",
            "Effect": "Deny",
            "Principal": {
                "AWS": "arn:aws:iam::999888777666:root"
            },
            "Action": "lambda:InvokeFunction",
            "Resource": [
                "arn:aws:lambda:us-east-2:123456789012:function:my-function",
                "arn:aws:lambda:us-east-2:123456789012:function:my-function:*"
            ]
        }
    ]
}
```

## Menggunakan izin tambahan
<a name="permissions-function-organization-add-permission"></a>

Untuk kasus penggunaan sederhana, Anda dapat menggunakan `add-permission` dengan `principal-org-id` opsi. Perintah berikut memberikan akses pemanggilan ke semua pengguna dalam organisasi: `o-a1b2c3d4e5f`

```
aws lambda add-permission \
  --function-name my-function \
  --statement-id org-access \
  --action lambda:InvokeFunction \
  --principal * \
  --principal-org-id o-a1b2c3d4e5f
```

**catatan**  
Dalam perintah ini, `Principal` adalah`*`. Ini berarti bahwa semua pengguna dalam organisasi `o-a1b2c3d4e5f` mendapatkan izin pemanggilan fungsi. Jika Anda menentukan peran Akun AWS atau sebagai`Principal`, maka hanya prinsipal yang mendapatkan izin pemanggilan fungsi, tetapi hanya jika mereka juga merupakan bagian dari `o-a1b2c3d4e5f` organisasi.

Untuk informasi selengkapnya, lihat [ aws: PrincipalOrg ID ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid) di panduan * pengguna * IAM.